Friday, 11 March 2011
Wichtige Jcaps Fixes
- Emanager stopserver.sh - KB 1025330.1
- Emanager/Domain "access denied" - HF 2177794
- Emanager Alerts Refresher - HF 7003076
- Commandline codegen HL7 und BAPI - com.stc.otd.ud1runimpl.jar in compile\lib\ext\
Labels:
Jcaps
Thursday, 10 March 2011
Jcaps Migration
- für Oracle ist die Zukunft von Jcaps die Oracle SOA Suite
- Support Lifetime, see here: normaler Support bis Ende 2013, extended Support bis Ende 2016
- Lizenz für Jcaps ist auch Lizenz für die SOA Suite
- Als nächstes kommt Jcaps 6.3 und Oracle SOA Suite "Healthcare Fastpath 1.0/2.0"
- In der SOA Suite wird nicht mehr mit Netbeans sondern mit JDeveloper entwickelt
- Empfehlunbg von Oracle: bis "Fastpath 1.0" warten
- JCD werden migriert
Labels:
Jcaps
Wednesday, 9 March 2011
Wo ist stcms.exe konfiguriert (ports, memory limits ...)?
In stcms.default.properties.
Labels:
Jcaps
Warum braucht meine Domaine so viel mehr RAM als in Xmx definiert?
Die gebrauchte Memory in Java besteht aus heap und non-heap. Im non-heap Bereich gibt es vor allem:
- permanent space (MaxPermSize)
- thread stacks: für jeden Thread Xss - per Default auf HP-UX 64 bits 1 MB (siehe Punkt 21 unten)
Es ergibt sich also: Memory = Xmx + MaxPermSize + Anzahl Threads x Xss
- permanent space (MaxPermSize)
- thread stacks: für jeden Thread Xss - per Default auf HP-UX 64 bits 1 MB (siehe Punkt 21 unten)
Es ergibt sich also: Memory = Xmx + MaxPermSize + Anzahl Threads x Xss
Labels:
Jcaps
Hängender Thread bei jcdPutToFtpLargeFile
Der Service läuft, verarbeitet aber keine weiteren Jobs. Der Service lässt sich nicht stoppen. Keine Hinweise im server.log.
Lösung: Environment "Connection Pool Settings" anpassen: "Steady pool size" 0, "Max Idle Timeout in Seconds" 1. "Maximum pool size" kann auf default 10 bleiben.
Lösung: Environment "Connection Pool Settings" anpassen: "Steady pool size" 0, "Max Idle Timeout in Seconds" 1. "Maximum pool size" kann auf default 10 bleiben.
Labels:
Jcaps
Where does JCAPS store the Batch sequence number?
By default in <domain>\applicationdata\hostadapter\***\*.state. This value can be overridden in the Environment (State Persistence Base Location, by default blank).
Labels:
Jcaps
Warum arbeitet Emanager die ganze Zeit (high CPU in top oder ähnliches)?
Es kann mehrere Gründe haben.
Ein Grund kann das Archivieren von vielen Alerts sein.
Ein anderer Grund kann ständige Refreshs sein. "Disable Browser Auto Refresh" hilft bei Alerts nicht: auch wenn enabled wird refresht, und zwar anhand des "Browser Refresh Rates" (das sieht man im Emanager log deutlich).
Dieser Parameter sollte daher hoch gesetzt bzw. hoch gelassen werden, z.B. 3600 (1 Std.). Sonst werden die Alerts immer wieder angefragt, was zur Überbelastung führen kann.
Ein Grund kann das Archivieren von vielen Alerts sein.
Ein anderer Grund kann ständige Refreshs sein. "Disable Browser Auto Refresh" hilft bei Alerts nicht: auch wenn enabled wird refresht, und zwar anhand des "Browser Refresh Rates" (das sieht man im Emanager log deutlich).
Dieser Parameter sollte daher hoch gesetzt bzw. hoch gelassen werden, z.B. 3600 (1 Std.). Sonst werden die Alerts immer wieder angefragt, was zur Überbelastung führen kann.
Labels:
Jcaps
Wo sind die JCAPS Alerts?
Die Alerts sind in einer In-Prozess HSQL DB Version 1.8.0 gespeichert. Der Inhalt der Alert Datenbank kann anhand des MAX_AGE_OF_EVENTS Archiver Parameter konfiguriert werden (die anderen Parameter beeinflussen nur, wann der Archive Prozess läuft).
Notiz: MAX_AGE_OF_EVENTS funktioniert nur wenn GROUP_MAX_COUNT = 0.
Notiz: MAX_AGE_OF_EVENTS funktioniert nur wenn GROUP_MAX_COUNT = 0.
Labels:
Jcaps
Wie kann ich JMX für mein Domain aktivieren?
Folgende Parameter setzen und restarten:
- -Dcom.sun.management.jmxremote.authenticate=false
- -Dcom.sun.management.jmxremote.ssl=false
- -Dcom.sun.management.jmxremote.port=<JMX Port>
Labels:
Jcaps
JCO Shared Libraries unter HP-UX
Die nativen Shared Libraries, die JCO benötigt werden unter HP-UX mit der Variable SHLIB_PATH referenziert.
Wie kann man die Emanager Event Respository Db schneller machen?
Wir haben folgendes auf K geändert, um dis HSQL DB schneller zu machern:
- in EventRepositoryDb.script:
CREATE INDEX MSG_CODE_ARGS_IDX ON MSG_CODE_ARGS(ID)
CREATE INDEX NOTIFICATION_EVENT_IDX ON NOTIFICATION_EVENT(ID)
- in EventRepositoryDb.properties:
hsqldb.cache_size_scale=10 (statt 8)
hsqldb.cache_scale=18 (statt 14)
Vor allem das erste schien SEHR effektiv zu sein: der Prozess, der seit heute morgen unterwegs war ist innerhalb einiger Sekunden fertig gewesen. Somit hoffe ich, dass der Archiver schneller als unsere Alertproduktion sein wird.
- in EventRepositoryDb.script:
CREATE INDEX MSG_CODE_ARGS_IDX ON MSG_CODE_ARGS(ID)
CREATE INDEX NOTIFICATION_EVENT_IDX ON NOTIFICATION_EVENT(ID)
- in EventRepositoryDb.properties:
hsqldb.cache_size_scale=10 (statt 8)
hsqldb.cache_scale=18 (statt 14)
Vor allem das erste schien SEHR effektiv zu sein: der Prozess, der seit heute morgen unterwegs war ist innerhalb einiger Sekunden fertig gewesen. Somit hoffe ich, dass der Archiver schneller als unsere Alertproduktion sein wird.
Labels:
Jcaps
Why is the "Total message retained" of a JMS Server different from the sum of the message queues/topics?
The actual meaning of "Total messages retained" is the "how many 'DataIMessages' the stcms server is currently using".
A "DataIMessage" includes all the different types of message that the stcms server uses. Thus includes JMS messages (all destinations), and also "Control" messages. You have probably seen topics like STCMS.Control or STCTemporaryTopic.1051196711431.1051192422022.1, which can be used internally by stcms for Control messages.
Every time the server creates a DataIMessage it increments the counter. When it destroys a message it decrements the counter. It is this count of DataIMessage which is reported as "Total messages retained". A DataIMessage might not get destroyed until the stcms performs "cleanup", which means the count may also include JMS messages which have been consumed.
After all user JMS messages have been consumed, and the stcms server has performed cleanup, the value of "Total messages retained" will be close to 0, but never actually 0 (because to obtain the server status, a message is sent to the Control Topic which the server will treat as a DataIMessage).
A "DataIMessage" includes all the different types of message that the stcms server uses. Thus includes JMS messages (all destinations), and also "Control" messages. You have probably seen topics like STCMS.Control or STCTemporaryTopic.1051196711431.1051192422022.1, which can be used internally by stcms for Control messages.
Every time the server creates a DataIMessage it increments the counter. When it destroys a message it decrements the counter. It is this count of DataIMessage which is reported as "Total messages retained". A DataIMessage might not get destroyed until the stcms performs "cleanup", which means the count may also include JMS messages which have been consumed.
After all user JMS messages have been consumed, and the stcms server has performed cleanup, the value of "Total messages retained" will be close to 0, but never actually 0 (because to obtain the server status, a message is sent to the Control Topic which the server will treat as a DataIMessage).
Labels:
Jcaps
Wie kann ich Javadoc in eDesigner erweitern?
It’s not possible to use Javadoc as html files in eDesigner. The javadoc only works when the source code (with javadoc) is available. Thus, to extend Javadoc, you need to integrate the source code in a library (jar) and copy the source code in the following directory of edesigner:
edesigner\jdk\src
The source code of the Java virtual machine is available and certainly only used for the javadoc. If for example you add the Avintis framework, the javadoc will be available. Because the eways sources aren't available, it's not possible to have the javadoc of the connectors in eDesigner.
edesigner\jdk\src
The source code of the Java virtual machine is available and certainly only used for the javadoc. If for example you add the Avintis framework, the javadoc will be available. Because the eways sources aren't available, it's not possible to have the javadoc of the connectors in eDesigner.
Labels:
Jcaps
How to enable the JVM SNMP Agent in a domain, without getting start/stop errors
- copy launcher.xml in logicalhost\is\lib to logicalhost\is\domains\<domain name>\config
- add the jvm snmp agent arguments as <sysproperty> elements under <launch>. e.g.:
<sysproperty key="com.sun.management.snmp.interface" value="0.0.0.0" />
<sysproperty key="com.sun.management.snmp.port" value="8888" />
- append the following string after 'LauncherBootstrap' in logicalhost\is\domains\<domain name>\bin\startserv:
-launchfile "$INSTANCE_ROOT/config/launcher.xml"
This allows e.g. to monitor the JVM heapsize via Spectrum.
Labels:
Jcaps
Wieviele Instanzen meiner JCD gibt es denn?
See here:
"When you create a JCD that implements an existing web service (ie a JCD that is started by a connector), eDesigner will create a message driven bean that is triggered by the connector and a stateless session bean that will be called from the message driven bean. This stateless session bean will call your JCD web service method, the receive or the start method.
Because your JCD is hosted in a stateless session bean it will receive all the benefits of the J2EE thread and instance management. If there are multiple JMS messages to process, the application server can create multiple instances of the stateless session bean that hosts your JCd and thereby multiple instances of your JCD class will be created. If these are no longer needed, the application server can destroy them.
...
When your JCD's are started by a JMS message (this is when your JCD's implement the JMS receive web service), you can configure in the connectivity map how many instances of your JCD can be started concurrently by the application server. When double clicking the configuration block on the JMS inbound connection you can specify two options:
...
If you Java collaboration is exposed as an external callable web service, the stateless session bean will be called by the servlet, if your collaboration is called from en eInsight business process, the stateless session bean will be called by a message driven bean that is triggered from the eInsight BPEL engine."
Daher können 1 oder mehrere Instanzen einer JCD existieren, sogar 0 wenn die Aktivität sehr niderig ist.
"When you create a JCD that implements an existing web service (ie a JCD that is started by a connector), eDesigner will create a message driven bean that is triggered by the connector and a stateless session bean that will be called from the message driven bean. This stateless session bean will call your JCD web service method, the receive or the start method.
Because your JCD is hosted in a stateless session bean it will receive all the benefits of the J2EE thread and instance management. If there are multiple JMS messages to process, the application server can create multiple instances of the stateless session bean that hosts your JCd and thereby multiple instances of your JCD class will be created. If these are no longer needed, the application server can destroy them.
...
When your JCD's are started by a JMS message (this is when your JCD's implement the JMS receive web service), you can configure in the connectivity map how many instances of your JCD can be started concurrently by the application server. When double clicking the configuration block on the JMS inbound connection you can specify two options:
- Connection Consumer or Serial mode: multiple instances can be started when multiple messages are available or not
- Server session pool size: how many instances can be created.
...
If you Java collaboration is exposed as an external callable web service, the stateless session bean will be called by the servlet, if your collaboration is called from en eInsight business process, the stateless session bean will be called by a message driven bean that is triggered from the eInsight BPEL engine."
Daher können 1 oder mehrere Instanzen einer JCD existieren, sogar 0 wenn die Aktivität sehr niderig ist.
Labels:
Jcaps
Welcher Prozess braucht diese Socket?
lsof -i TCP
Und welche Netzwerkkarten gibt es?
lanscan
Und welche Netzwerkkarten gibt es?
lanscan
Labels:
OS
HTTPS access denied
wenn folgender Fehler beim Zugriff auf einen HTTPS-Server auftritt (Ausschnitt):
Failed to add the JSSE provider
com.sun.net.ssl.internal.ssl.Provider; Exception :
java.lang.Exception: Failed to add provider
com.sun.net.ssl.internal.ssl.Provider; Exception :
java.security.AccessControlException: access denied
(java.security.SecurityPermission insertProvider.SunJSSE)
at
com.stc.connector.httpadapter.eway.HTTPEwayConnecti on.initialize
liegt das daran dass die Domain das nicht zulässt. Dies kann man ändern indem man die server.policy ergänzt:
/caps/JCAPS513/logicalhost/is/domains/<DOMAIN>/config/server.policy
// ICAN HTTP eWay
permission java.security.SecurityPermission "insertProvider.SunJSSE";
Dies ist eine Domain - spezifische Einstellung.
Failed to add the JSSE provider
com.sun.net.ssl.internal.ssl.Provider; Exception :
java.lang.Exception: Failed to add provider
com.sun.net.ssl.internal.ssl.Provider; Exception :
java.security.AccessControlException: access denied
(java.security.SecurityPermission insertProvider.SunJSSE)
at
com.stc.connector.httpadapter.eway.HTTPEwayConnecti on.initialize
liegt das daran dass die Domain das nicht zulässt. Dies kann man ändern indem man die server.policy ergänzt:
/caps/JCAPS513/logicalhost/is/domains/<DOMAIN>/config/server.policy
// ICAN HTTP eWay
permission java.security.SecurityPermission "insertProvider.SunJSSE";
Dies ist eine Domain - spezifische Einstellung.
Labels:
Jcaps
Wie kann man JCAPS mit einem neuen Repository verbinden?
Als erstes muss man die neue Repository URL in folgenden Dateien eintragen:
runed.bat
repositoryadmin.bat
Dann muss man folgendes Kommando ausführen, um die URL des Update Centers zu ändern:
runed.bat <host> <port> <repo>
Dies sollte mit folgendem Output quittiert werden:
BUILD SUCCESSFUL
Total time: 0 seconds
Starting Enterprise Designer...
Dann muss die URL im Login Screen geändert werden (einmal).
runed.bat
repositoryadmin.bat
Dann muss man folgendes Kommando ausführen, um die URL des Update Centers zu ändern:
runed.bat <host> <port> <repo>
Dies sollte mit folgendem Output quittiert werden:
BUILD SUCCESSFUL
Total time: 0 seconds
Starting Enterprise Designer...
Dann muss die URL im Login Screen geändert werden (einmal).
Labels:
Jcaps
DNS-Switch
Bei DNS-Switch bekommt ein Hostname eine neue IP Adresse. JCAPS speichert aber die IP Adresse, und scheitert wenn Daten übermittelt werden müssen. Das JCAPS Domain muss neu gestartet werden, um das Problem zu lösen.
Das Problem betrifft sicherlich die Oracle Verbindungen vom Oracle eWay, und vielleicht andere Bereiche:
HL7, TCPIP ...
Dies muss bei "DNS Switch" mit Oracle Datenbankverbingungen geplant werden.
Dies scheint ein allgemeins Java Problem zu sein, wie hier erklärt. Möglicherweise kann man das Probelm beim Setzen von networkaddress.cache.ttl lösen.
Das Problem betrifft sicherlich die Oracle Verbindungen vom Oracle eWay, und vielleicht andere Bereiche:
HL7, TCPIP ...
Dies muss bei "DNS Switch" mit Oracle Datenbankverbingungen geplant werden.
Dies scheint ein allgemeins Java Problem zu sein, wie hier erklärt. Möglicherweise kann man das Probelm beim Setzen von networkaddress.cache.ttl lösen.
Labels:
OS
HP-UX Cluster
K und P sind auf HP-UX Cluster installiert, die so aufgesetzt sind:
K: ccakx02 = scakx01 + scakx02
P: ccapx02 = scapx01 + scapx02
Beide Clusternodes, z.B. scakx01 und scakx02 sind gestartet aber JCAPS läuft auf nur ein Node.
Auf diesem Node ist das Shared-Verzeichnis /caps montiert. Das / Verzeichnis ist dagegen Nodespezifisch.
Bei "Nodeswitch" wird JCAPS mittels Skripte in /caps/script gestoppt (stopCaps.sh) und gestartet (startCaps.sh). Das Ergebnis des Skriptes kann man so verfolgen:
tail -f /etc/cmcluster/capsP/capsP.cntl.log
Die Clusteradresse (z.B. ccakx02) zeigt dann auf dem neuen Host (z.B. scakx02 statt scakx01).
Beim Nodeswitch gab es ein Problem mit Spectrum, das ein Clusternode aber nicht das andere abgefragt hat.
Beim Switchen war dann die Load in Emanager auf dem neuen Host viel höher.
Dies liess sich mit einer Portänderung beim SNMP Agent lösen.
K: ccakx02 = scakx01 + scakx02
P: ccapx02 = scapx01 + scapx02
Beide Clusternodes, z.B. scakx01 und scakx02 sind gestartet aber JCAPS läuft auf nur ein Node.
Auf diesem Node ist das Shared-Verzeichnis /caps montiert. Das / Verzeichnis ist dagegen Nodespezifisch.
Bei "Nodeswitch" wird JCAPS mittels Skripte in /caps/script gestoppt (stopCaps.sh) und gestartet (startCaps.sh). Das Ergebnis des Skriptes kann man so verfolgen:
tail -f /etc/cmcluster/capsP/capsP.cntl.log
Die Clusteradresse (z.B. ccakx02) zeigt dann auf dem neuen Host (z.B. scakx02 statt scakx01).
Beim Nodeswitch gab es ein Problem mit Spectrum, das ein Clusternode aber nicht das andere abgefragt hat.
Beim Switchen war dann die Load in Emanager auf dem neuen Host viel höher.
Dies liess sich mit einer Portänderung beim SNMP Agent lösen.
Labels:
OS
Subscribe to:
Posts (Atom)