Thread für Hauptspeicherprüfung verwenden

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:

  1. Parameter CW_MEMORY_MAX festlegen
  2. Eigenschaften des Threads für die Hauptspeicherprüfung konfigurieren
  3. Weitere Überlegungen

Parameter CW_MEMORY_MAX festlegen

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.

Eigenschaften des Threads für die Hauptspeicherprüfung konfigurieren

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:

  1. Legen Sie im Feld Ruhezeit für Hauptspeicherprüfung fest, wie lange der Thread für die Hauptspeicherprüfung zwischen den einzelnen Operationen nicht aktiv sein soll. Setzen Sie das Feld Ruhezeit für Hauptspeicherprüfung auf den Wert 0 (Standardwert), um den Thread für die Hauptspeicherprüfung ganz zu inaktivieren.
  2. Geben Sie im Feld Oberer Schwellenwert des Speichers (in Prozent) den Prozentsatz des für InterChange Server Express verfügbaren Gesamtspeichers (definiert durch den Parameter CW_MEMORY_MAX) an, bei dessen Überschreitung der Thread für die Hauptspeicherprüfung die Connectors anhalten soll, damit diese keine neuen Ereignisse abrufen, bis die Speicherbelegung wieder unter den oberen Schwellenwert sinkt. Der Standardwert ist 90. Dies bedeutet, dass der obere Schwellenwert bei 90 Prozent des Gesamtspeichers liegt, der durch den Parameter CW_MEMORY_MAX definiert ist. Beispiel: Ist der Parameter CW_MEMORY_MAX mit 512 Megabyte definiert, liegt der obere Schwellenwert etwa bei 460 Megabyte.
  3. Geben Sie im Feld Unterer Schwellenwert des Speichers (in Prozent) den Prozentsatz des für InterChange Server Express verfügbaren Gesamtspeichers (definiert durch den Parameter CW_MEMORY_MAX) an, bei dessen Überschreitung der Thread für die Hauptspeicherprüfung die Geschwindigkeit verringern soll, mit der die Connectors Ereignisse an InterChange Server Express zustellen. Der Standardwert ist 80. Dies bedeutet, dass der untere Schwellenwert bei 80 Prozent des Gesamtspeichers liegt, der durch den Parameter CW_MEMORY_MAX definiert ist. Beispiel: Ist der Parameter CW_MEMORY_MAX mit 512 Megabyte definiert, liegt der untere Schwellenwert etwa bei 410 Megabyte.
  4. Geben Sie im Feld Pausezeit des Connectors bei Schwellenwert in Minuten einen Zeitraum an. Dieser Wert legt fest, wie lange die Geschwindigkeit, mit der die Connectors Ereignisse an InterChange Server Express zustellen, bei einer Überschreitung des unteren Schwellenwertes für den Hauptspeicher höchstens verringert wird. Gleichzeitig gibt er an, wie lange die Connectors mindestens angehalten werden, wenn der obere Schwellenwert für den Hauptspeicher überschritten wird. Der Standardwert ist 5.

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.

Abbildung 94. Eigenschaften des Threads für die Hauptspeicherprüfung konfigurieren

Weitere Überlegungen

Bei der Verwendung des Threads für die Hauptspeicherprüfung sollten die folgenden Aspekte bedacht werden:

Copyright IBM Corp. 2004, 2005