Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Remove protocol writer bundle

All KGS OSGi based productscontain the KGS ProtocolWriter plugin inside its delivered packet (war):

  • KGS Contentserver

  • KGS Webservice

  • KGS DocumentRouter (3.x & 4.x)

  • KGS Scanserver

  • KGS WriteCache

  • KGS ReadCache

Dieser erlaubt es in eine Datenbank diverse Aktionen (The plugin allows the using service to protocol several actions like create, put, get etc.) zu protokollieren. Dies kann in den Produkten explizit aktiviert bzw. deaktiviert werden.

Ist zusäzlich TiA Core (mit CMIS konformer Ablage) im Einsatz, so wird zusätzlich zum ProtocolWriter auch in das konfigurierte TiA Core Modul protokolliert (z.B. ElasticSearch).

Die Implementierung ist über Services realisiert wurden. Die einzelnen KGS Komponenten fungieren dabei als Service-Consumer. Sie “publishen” einen Protokolleintrag an den ein Interface (IProtocolWriter), welcher im KGS Core Bundle liegt.

Existieren nun Service-Listener im OSGi-Framework, so nehmen diese die Protokollnachricht entgegen und verarbeiten diese.

  • Der KGS ProtocolWriter ist ein Service-Listener

  • TiA Core ist ein Service-Listener

Diese Services sind losgelöst voneinander und kennen sich nicht. Dieses Konzept ermöglicht es uns, belieb viele neue Service-Listener hinzuzufügen oder zu entfernen, ohne den anderen Listener zu beeinflussen.

Möchte man nun z.B. nicht mehr in eine ProtocolWriter DB schreiben, so kann das Bundle “KGS ProtocolWriter” aus dem WAR entfernt werden. Es ist sogar möglich im laufenden Betrieb das Bundle zu stoppen. Ist TiA Core noch in dem WAr enthalten, wird hier weiterhin in Elastic protokolliert, nicht aber mehr in die konfigurierte Datenbank des ProtocolWriters.

Es ist ausreichend den KGS ProtocolWriter (com.software.kgs.plugin.protocol-x.x.x.jar) aus dem WAR zu entfernen. Dieses befindet sich unteret cetera.

The protocol feature can be activated respective deactivated inside product specific configuration.

In case TiA core is used together with a CMIS conform repository, in addition to the ProtocolWriter plugin a TiA Core Module is recording. (e.g. via ElasticSearch)

The implementation is realized as OSGi service. The consuming components are acting as OSGi service consumers. The publish an protocol entry against the IProtocolWrite interface, defines in KGS Core bundle.

If there are several OSGi service listeners, every listener will receive the protocol entry and treat it accordingly.

Currently there are to such listeners existing:

  • KGS ProtocolWriter plugin

  • TiA Core

These services (listener) are independently of each other. This concepts empowers us to add or remove new listeners without influence the protocol entry sender nor other protocol listeners.

Remove protocol writer bundle

This section describes how to remove KGS ProtocolWriter bundle from delivered WAR.

It is also possible to remove the bundle during runtime.

In case that TiA Core is still recording, so it is possible to deactivate and remove KGS ProtocolWriter recording.

It is sufficient to remove the KGS ProtocolWriter plugin from WAR file, berfore installing the app into Tomcat.

Inside the WAR it is located in:

<WAR>\WEB-INF\eclipse\plugins\

Eine weitere Anpassung ist nicht mehr notwendigFurther adaptions are not required.

Optional:

OSGi startet Bundles beim starten in einer speziellen Reihenfolge. Diese Reihenfolge ist in starts bundles in a special pre-configured order.

This order is configured inside the WAR in:

<WAR>\WEB-INF\eclipse\configuration\config.ini

festgelegt.

...

Diese kann entfernt werden. Dies muss aber nicht geschehen, da OSGi nur die Bundles in der Reihenfolge startet, die es auch finden kann. Existiert das Bundle “com.software.kgs.plugin.protocol-x.x.x.jar” nicht mehr im eclipse/plugins ordner, so überspringt OSGi den Startvorgang für dieses Bundle.

Sollte diese Datei modifiziert werden, so ist auf die Syntax zu achten. Jede Zeile (außer der letzten) endet mit einem Komma sowie ein Space und ein Backslash (für Zeilenumbruch). Für mehr [interne] Informationen gibt es hierzu mehr:

...

The marked line can be removed but is not required since OSGi starts only bundle which are available. If the bundle is not found, OSGi just skips the start sequence for these bundle.

If these file is change, pay attention to the syntax. Every line with exception the last one is terminated by a comma, an space and a back slash as line feed.

Further information about this can be found here: /wiki/spaces/WIKI/pages/6750661

...

Note

The config.ini

...

Zugehörige Konfigurationsdateien

Wird der ProtocolWriter gestartet und es ist noch keine Konfiguration im Vorfeld in dem WAR enthalten (Default-Auslieferung), so legt der ProtocolWriter selbstständig in seinem config-Ordner (…/protocol/) eine neue Konfiguration mit dem Namen “Protocol Service.cfg” an. Dies gilt für alle OSGi Bundles.

Wurde der WAR-Container aber bereits vorkonfiguriert (<WAR>\conf\protocol\Protocol Service.cfg), so kann dieser Ordner (ab inlusive “protocol”) entfernt werden. Diese Dateien sind ohne das Bundle / die JAR Datei verwaist.

Referenzen in anderen Konfigurationsdateien

...

is evaluated only once at deployment time. Therefore a change of config.ini required a complete redeployment of this WAR-File. Changing the file in already deployed applications does not have any effect.

Configuration files

Is there is no configuration file during first start of ProtocolWriter plugin (even not inside WAR), it will create one in its config folder. The config file name will be Protocol Service.cfg. It is valid for all OSGi bundles.

<TomcatFolder>/webapps/<appname>/conf/protocol/Protocol Service.cfg

Was the WAR-Container pre-configured and the bundle removed, the config can be deleted as well. Otherwise it would be a zombie.

Note

For an Oracle database, please see the following article .

References in other configuration files

The ProtocolWriter is used by several KGS products. (list see above)

Every of these using KGS products have settings regarding protocol. e.g. :

../contentserver/ContentServer.cfg

z.B.

...

Diese Einträge (KEYs) müssen behalten werden. Es ist erlaubt die Werte (true und false) zu ändern, der gesamte <entry>-Zeile muss aber in der Konfiguration weiterhin existieren.

Die Parameter in den KGS Produkten steuert, ob das Bundle (hier: KGS Contentserver) ein Protokolleintrag an das OSGi weitergibt und welche Art von Protokolleinträgen es weitergibt. Insofern ein zweiter Service-Listener (wie KGS TiA Core [AutoDigit]) im Framework existiert, so wird dieser nur ausgelöst, wenn Protokolle an das OSGi Framework weitergegeben werden.

...

These keys has to be maintained. It is allowed to change it but the whole entry must continue to exist.

The parameters in the KGS products are controlling if the corresponding bundle (in this case KGS ContentServer) is publishing an protocol entry against the core interface. There may exist another listener like KGS TiA Core (AutoDigit) listening on protocol events.

A deletion would cause a rewriting of the config values with default values during restart.