Exklusiver Zugriff auf den Datenspeicher

Eine Messaging-Engine setzt eine Sperre für ihren Datenspeicher, damit sie exklusiven Zugriff auf die darin gespeicherten Daten hat. Dieser Prozess gewährleistet die Integrität der Daten im Datenspeicher. Beachten Sie, dass in der Praxis mehrere Faktoren die exklusive Zugriffssperrung beeinflussen können.

Jede Messaging-Engine setzt eine exklusive Sperre für ihren Datenspeicher. Solange die Messaging-Engine aktiv ist, hält sie diese Sperre, um die Integrität der Daten im Datenspeicher zu gewährleisten.

Die Datenspeichersperre verwendet Datenbanksperren und ist damit eine interne Komponente des Datenspeichers selbst. Das Verwaltungssystem für relationale Datenbanken stützt sich auf die JDBC-Infrastruktur oder das zugrunde liegende Protokoll, um den Ausfall einer Messaging-Engine oder eines Anwendungsservers anzuzeigen. Das Verwaltungssystem für relationale Datenbanken kann anschließend die Datenspeichersperren in der Datenbank automatisch freigeben.

Die Häufigkeit, mit der die Vitalität der Netzverbindung zwischen einer Messaging-Engine und dem Datenbankserver für den Datenspeicher dieser Komponente überprüft wird, ist ein wichtiger Faktor für die Aktivierung einer sofortigen Ausfallsicherung für eine Messaging-Engine, die in einem Cluster ausgeführt wird. Wenn Messaging-Engines, die in einem Cluster ausgeführt werden, für das Failover zwischen Servern konfiguriert sind, müssen Sie unter Umständen die TCP/IP-Keepalive-Parameter auf dem Datenbankserver herabsetzen, um die Zeitspanne bis zur Entdeckung eines Ausfalls der Messaging-Engine zu minimieren.

Die Tabelle SIBOWNER im Datenspeicher enthält die Sperre in Form eines Paares eindeutiger Kennungen in einer Zeile. Beim Start verwendet eine Messaging-Engine diese beiden Kennungen, um ihre exklusive Sperre anzufordern und aufrechtzuerhalten.

MEUUID
Die eindeutige Kennung für eine Messaging-Engine, die sich bei einem Stopp und Neustart der Messaging-Engine nicht ändert.
INCUUID
Die Instanzkennung für eine Messaging-Engine, die sich bei jedem Start der Messaging-Engine ändert.

Diese Kennungen bestimmen, welche Messaging-Engine einen Datenspeicher verwendet. Sie bestimmen auch, ob eine aktive Instanz einer Messaging-Engine ihre exklusive Sperre für die gesamte Zeit ihrer Aktivität aufrechterhält.

Eine weitere Tabelle, die für das Sperren des Datenspeichers verwendet wird, ist die Tabelle SIBOWNERO. Diese Tabelle wird nur für das Sperren verwendet. In ihrer einzigen Spalte EMPTY_COLUMN werden keine Daten gespeichert.

Wenn eine Messaging-Engine gestartet wird, fordert sie zuerst eine exklusive Sperre für die Tabelle SIBOWNERO an. Anschließend fordert die Messaging-Engine eine exklusive Sperre für die Tabelle SIBOWNER an und fährt dann mit der Überprüfung des Inhalts fort. Die Messaging-Engine erwartet, in der Tabelle eine Zeile mit Daten oder keine Daten vorzufinden. Wenn eine Zeile vorhanden ist, wird die Messaging-Engine nur gestartet, wenn die gefundene MEUUID mit der eindeutigen Kennung der Messaging-Engine übereinstimmt. Wenn die MEUUID nicht übereinstimmt, schreibt die Messaging-Engine eine Fehlernachricht CWSIS1535 in das Fehlerprotokoll des Servers, und die Messaging-Engine wird nicht gestartet.

Wenn die Tabelle SIBOWNER keine Zeilen enthält, fügt die Messaging-Engine eine einzige Zeile mit ihrer eigenen MEUUID und INCUUID ein. Falls die Tabelle eine Zeile enthält und die MEUUID mit der eindeutigen Kennung für die Messaging-Engine übereinstimmt, aktualisiert die Engine die INCUUID, indem sie ihre eigene Instanz-ID angibt. Anschließend versucht sie, eine neue gemeinsame Sperre für die Tabelle "SIBOWNER" anzufordern. Die Messaging-Engine überprüft erneut, ob die INCUUID noch mit ihrer eigenen Instanz-ID übereinstimmt, weil es möglich ist, dass eine andere Instanz derselben Messaging-Engine zur selben Zeit auf einem anderen Server gestartet wird. Sollte die INCUUID in der Tabelle nicht übereinstimmen, kann die Messaging-Engine nicht gestartet werden.

Die gemeinsame Sperre für die Tabelle SIBOWNER bleibt so lange bestehen, bis die Messaging-Engine gestoppt wird. Sie wird jedoch regelmäßig aktualisiert, um sicherzustellen, dass die Sperre noch in Kraft ist. Anschließend wird die exklusive Sperre der Tabelle SIBOWNERO aufgehoben. Wenn die Messaging-Engine die Sperre für die Tabelle SIBOWNER nicht aktualisieren kann oder anhand der Daten aus der Tabelle SIBOWNER feststellt, dass eine andere Instanz der Messaging-Engine den Datenspeicher verwendet, schreibt die Messaging-Engine die Nachrichten CWSIS1594 und CWSIS1519 in das Fehlerprotokoll des Servers und wird anschließend sofort gestoppt.

Wenn die Messaging-Engine für die Ausführung in einem Cluster konfiguriert ist und die Sperre nicht anfordern kann, wird die Messaging-Engine gestoppt und kann nicht von einem anderen Server im Cluster übernommen werden. In einem solchen Fall müssen Sie die Fehlerprotokolle überprüfen, weil das Stoppen der Messaging-Engine signalisiert, dass es ein Starten mit der aktuellen Datenspeicherkonfiguration nicht sicher bzw. nicht möglich ist. Eine Beschreibung der Situationen, in denen Fehler auftreten können, und die möglichen Fehlerlösungen finden Sie im Artikel Fehler bei exklusiven Zugriffssperren für Datenspeicher diagnostizieren.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjm0450_
Dateiname:cjm0450_.html