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, beliebig viele neue Service-Listener hinzuzufügen oder zu entfernen, ohne den anderen Listener zu beeinflussen.
Remove protocol writer bundle
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 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.
Ein entfernen hat zur Folge, dass die Werte bei Applikationsstart mit Default-Werten neu geschrieben werdenThese 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.