Zu den Funktionen von InterChange Server Express gehört unter anderem ein Thread für die Hauptspeicherprüfung, mit dem Sie die Verarbeitung von Ereignissen durch das System und somit den Einsatz des Systemspeichers regulieren können. Dies kann die Gefahr von Systemabstürzen aufgrund von Speicherknappheiten verringern.
Der Thread für die Hauptspeicherprüfung misst in regelmäßigen Abständen die von InterChange Server Express verwendete Speicherkapazität und ermittelt, ob der Wert innerhalb eines akzeptablen konfigurierten Bereichs liegt. Falls die Speicherbelegung den akzeptablen Bereich überschreitet, verwaltet der Thread für die Hauptspeicherprüfung die Systemkomponenten, um die Speicherbelegung zu reduzieren.
Überschreitet die Speicherbelegung einen angegebenen unteren Schwellenwert, inaktiviert der Thread für die Hauptspeicherprüfung die Ereignislistener der Connector-Controller im System für einen konfigurierbaren Höchstzeitraum. Die Dauer variiert hierbei abhängig davon, wie stark die Speicherbelegung den unteren Schwellenwert überschreitet, ist jedoch nie länger als der Zeitraum, der durch die Eigenschaft Pausezeit des Connectors bei Schwellenwert definiert ist. Durch eine derartige Inaktivierung der Threads für die Ereignislistener verringert der Thread für die Hauptspeicherprüfung die Geschwindigkeit, in der die Ereignisse an InterChange Server Express zugestellt werden, und reduziert so die Gefahr, dass der obere Schwellenwert für den Hauptspeicher überschritten wird.
Falls die Speicherbelegung den oberen Schwellenwert überschreitet, der durch die Eigenschaft Oberer Schwellenwert des Speichers (in Prozent) angegeben ist, hält der Thread für die Hauptspeicherprüfung die Connectors im System an. Angehaltene Connectors setzen die Verarbeitung der Geschäftsobjekte fort, die sich gegenwärtig in der Warteschlange befinden, fragen jedoch keine neuen Ereignisse ab. Daher verringern die Connectors die Anzahl der in die Warteschlange gestellten Geschäftsobjekte und reduzieren somit die belegte Speicherkapazität, ohne weiteren Hauptspeicher für die Verarbeitung neuer Geschäftsobjekte zu verwenden. Die Connectors bleiben für einen Mindestzeitraum angehalten, der durch die Eigenschaft Pausezeit des Connectors bei Schwellenwert angegeben ist. Sobald das durch diese Eigenschaft angegebene Intervall verstrichen ist, nimmt der Thread für die Hauptspeicherprüfung eine erneute Ermittlung der Speicherbelegung vor. Falls die Speicherbelegung den oberen Schwellenwert nicht mehr überschreitet, werden die Connectors vom Thread für die Hauptspeicherprüfung erneut gestartet. Liegt die Speicherbelegung immer noch über dem oberen Schwellenwert, belässt der Thread für die Hauptspeicherprüfung die Connectors im angehaltenen Zustand.
Der Thread für die Hauptspeicherprüfung ist zwischen der Überprüfung und den Statusverwaltungsoperationen für eine gewisse Dauer, die durch die Eigenschaft "Ruhezeit für Hauptspeicherprüfung" angegeben ist, inaktiv.
Zur Verwendung des Threads für die Hauptspeicherprüfung müssen Sie die Anweisungen in den folgenden Abschnitten befolgen:
Sie müssen den Java-Parameter CW_MEMORY_MAX im Startscript von InterChange Server Express festlegen, damit der maximale Heapspeicher definiert ist, der von InterChange Server Express verwendet werden kann. Der Thread für die Hauptspeicherprüfung tritt gemäß den Werten der konfigurierbaren Eigenschaften in Aktion, die Prozentsätze dieses maximalen Heapspeichers angeben.
Sie sollten den Parameter CW_MEMORY_MAX auf den gleichen Wert setzen, der für den Parameter -mx definiert ist. Dieser Parameter definiert die maximale Größe des Heapspeichers für InterChange Server Express. In der Standardeinstellung ist der Parameter CW_MEMORY_MAX auf den gleichen Wert wie der Parameter -mx gesetzt. Falls Sie jedoch den Parameter -mx ändern, müssen Sie auch den Parameter CW_MEMORY_MAX entsprechend anpassen.
Das folgende Beispiel stammt aus einem nicht geänderten Startscript start_server.bat für InterChange Server Express auf einem Windows-Computer:
REM This is the -mx param value for the InterChange Server Express's memory heap set CW_MEM_HEAP=512 REM Start the InterChange Server Express %CWJAVA% -Djava.ext.dirs=%JRE_EXT_DIRS%;"%MQ_LIB%";"%DB2_LIB%" -Duser.home="%CROSSWORLDS%" -mx%CW_MEM_HEAP%m -DTEAgent=1200 -DCW_MEMORY_MAX=%CW_MEM_HEAP% %ORB_PROPERTY% -classpath %JCLASSES% ServerWrapper -s%SERVERNAME% %2 %3
Die Variable CW_MEM_HEAP ist auf den Wert 512 gesetzt und wird zum Festlegen des Parameters -mx verwendet. Daher sind 512 Megabyte für den Java-Heapspeicher reserviert. Der Parameter CW_MEMORY_MAX ist auf den gleichen Wert gesetzt, ebenfalls unter Verwendung der Variablen CW_MEM_HEAP. Bitte beachten Sie, dass dem Parameter CW_MEMORY_MAX die Angabe -D vorangestellt sein muss.
Sie müssen die Konfigurationsdatei von InterChange Server Express bearbeiten, um die Eigenschaften des Threads für die Hauptspeicherprüfung festzulegen. Diese Eigenschaften sind auf der Registerkarte "Erweitert" in der Konfigurationsschnittstelle von InterChange Server Express zugänglich. Weitere Informationen zur Konfiguration von InterChange Server Express können Sie unter Erweiterte Eigenschaften mit System Manager konfigurieren nachlesen. Gehen Sie wie folgt im Teilfenster "Hauptspeicher des Servers" auf der Registerkarte "Erweitert" vor, um den Thread für die Hauptspeicherprüfung zu konfigurieren:
Abb. 94 zeigt die Registerkarte "Erweitert" und die Eigenschaften im Teilfenster "Hauptspeicher des Servers", mit denen der Thread für die Hauptspeicherprüfung konfiguriert wird.
Bei der Verwendung des Threads für die Hauptspeicherprüfung sollten die folgenden Aspekte bedacht werden: