Führen Sie das IBM® MQ MQI client -Beispielprogramm amqsfhac parallel zu amqmfsck , um zu veranschaulichen, dass ein Warteschlangenmanager die Nachrichtenintegrität während eines Fehlers beibehält.
Vorbereitungen
Für diesen Test benötigen Sie vier Server. Zwei Server für den Warteschlangenmanager mit mehreren Instanzen, einer für das Dateisystem und einer für die Ausführung von amqsfhac als IBM MQ MQI client -Anwendung.
Folgen Sie Schritt 1 In Überprüfen des Verhaltens gemeinsam genutzter Dateisysteme auf mehreren Plattformen um das Dateisystem für einen Warteschlangenmanager mit mehreren Instanzen einzurichten.
Informationen zu dieser Task
Das IBM MQ MQI client Beispielprogramm amqsfhac prüft, ob ein Warteschlangenmanager, der Netzspeicher verwendet, die Datenintegrität nach einem Fehler beibehält. Führen Sie amqsfhac parallel zu amqmfsck aus, um zu demonstrieren, dass ein Warteschlangenmanager die Nachrichtenintegrität während eines Fehlers beibehält.
Verfahren
- Erstellen Sie einen Multi-Instanz-Warteschlangenmanager auf einem anderen Server.
QM1 , unter Verwendung des Dateisystems, das Sie in Schritt 1 In Verfahren .
- Starten Sie den Warteschlangenmanager auf beiden Servern, die ihn hoch verfügbar machen.
Auf Server 1:
strmqm -x QM1
Auf Server 2:
strmqm -x QM1
- Richten Sie die Clientverbindung für die Ausführung von amqsfhacein.
- Verwenden Sie die Prozedur im Abschnitt IBM MQ -Installation überprüfen für die Plattform oder Plattformen, die Ihr Unternehmen zum Einrichten einer Clientverbindung verwendet, oder die Beispielscripts in Beispiele für wiederverbindliches Client.
- Ändern Sie den Clientkanal so, dass er zwei IP-Adressen hat, die den beiden Servern entsprechen, auf denen
QM1ausgeführt wird.Ändern Sie im Beispielscript Folgendes:
DEFINE CHANNEL(CHANNEL1) CHLTYPE(CLNTCONN) TRPTYPE(TCP) +
CONNAME('LOCALHOST(2345)') QMNAME(QM1) REPLACE
An:
DEFINE CHANNEL(CHANNEL1) CHLTYPE(CLNTCONN) TRPTYPE(TCP) +
CONNAME('server1(2345),server2(2345)') QMNAME(QM1) REPLACE
Dabei sind
server1 und
server2 die Hostnamen der beiden Server, und
2345 ist der Port, an dem der Kanal-Listener empfangsbereit ist. Gewöhnlich ist dies der Standardwert
1414. Sie können
1414 mit der Standard-Listener-Konfiguration verwenden.
- Erstellen Sie zwei lokale Warteschlangen unter
QM1 für den Test.Führen Sie das folgende MQSC-Script aus:
DEFINE QLOCAL(TARGETQ) REPLACE
DEFINE QLOCAL(SIDEQ) REPLACE
- Konfiguration mit amqsfhac testen
amqsfhac QM1 TARGETQ SIDEQ 2 2 2
- Testen Sie die Nachrichtenintegrität, während Sie die Integrität des Dateisystems testen.
amqsfhac QM1 TARGETQ SIDEQ 10 20 0
Wenn Sie die aktive Warteschlangenmanagerinstanz stoppen, stellt amqsfhac die Verbindung zur anderen Warteschlangenmanagerinstanz wieder her, sobald sie aktiv geworden ist. Starten Sie die gestoppte WS-Manager-Instanz erneut, so dass Sie den Fehler beim nächsten Test rückgängig machen können. Sie müssen wahrscheinlich die Anzahl der Iterationen auf der Basis des Experiments mit Ihrer Umgebung erhöhen, damit das Testprogramm genügend Zeit für die Übernahme von Failover ausgeführt wird.
Ergebnisse
Im folgenden Beispiel wird gezeigt, wie
amqsfhac in Schritt
6 ausgeführt wird. In diesem Beispiel ist der Test ein Erfolg.
Sample AMQSFHAC start
qmname = QM1
qname = TARGETQ
sidename = SIDEQ
transize = 10
iterations = 20
verbose = 0
Iteration 0
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 6
Resolving MQRC_CALL_INTERRUPTED
MQGET browse side tranid=14 pSideinfo->tranid=14
Resolving to committed
Iteration 7
Iteration 8
Iteration 9
Iteration 10
Iteration 11
Iteration 12
Iteration 13
Iteration 14
Iteration 15
Iteration 16
Iteration 17
Iteration 18
Iteration 19
Sample AMQSFHAC end
Wenn der Test ein Problem festgestellt hat, würde die Ausgabe den Fehler melden. In einigen Testläufen kann MQRC_CALL_INTERRUPTED möglicherweise Resolving to backed out
melden. Es macht keinen Unterschied zum Ergebnis. Das Ergebnis hängt davon ab, ob der Schreibzugriff auf die Platte durch den Netzdateispeicher vor oder nach dem Fehlschlagen der Platte festgeschrieben wurde.