PDA

View Full Version : korrupte message queue



Seiten : [1] 2

Matthias182
05-07-10, 09:16
Hallo zusammen,

ich beschäftige mich gerade mit einem Thema, dass mir einiges an Kopfzerbrechen bereitet.

Wir hatten auf einer unserer Maschinen einen Zwischenfall bedingt durch eine korrupte message queue.

Um das Ganze zukünftig zu vermeiden, suche ich nun nach einer Lösung, um eine korrupte message queue rechtzeitig erkennen zu können.

Ich weiß, dass man bei einer data queue über DSPOBJD sehen kann, ob sie korrupt ist oder nicht. Würde das auch mit einer message queue funktionieren?

Bei Dateien kann man ja soweit ich weiß mit RCLSTRGarbeiten, aber das funktioniert dann nicht für message queues.

Zuletzt die merkwürdigste meiner Fragen. Ich würde das Ganze natürlich gerne nochmal nachstellen. Dazu benötige ich allerdings eine korrupte message queue. Hat jemand eine Idee, wie man das System austricksen kann, um eine solche message queue zu erzeugen?

Ich hoffe, ihr habt hier mehr gute Ideen als ich bisher.


Gruß
Matthias

Pikachu
05-07-10, 09:41
Beschädigte Nachrichtenwarteschlangen sind ja kein Normalzustand und sowas kommt ja auch nicht alle Tage vor. Welche Nachrichtenwarteschlange war es denn und was waren die Auswirkungen?

Matthias182
05-07-10, 11:12
Ja, das stimmt natürlich, jedoch sollten Anwendungen natürlich so robust wie möglich sein.

Es handlete sich um eine eigene Warteschlange, keine des Systems.

Der zugehörige Job hat versucht Nachrichten zu empfangen, konnte dies jedoch nicht. Es war auch nicht möglich den Job zu beenden. Nur das Beenden des Subsystems half hier (IBM war da auch involviert).

Wie gesagt, jetzt möchte ich an dieser Stelle in der Entwicklung besser werden und den Fehler vorher erkennen.

Fuerchau
05-07-10, 16:00
Beschädigte Objekte können nur per RCLSTG wiederhergestellt bzw. entfernt werden. Dies betrifft leider das gesamte System.

Du kannst es ggf. mit RCLLIB versuchen, aber die Doku gibt da nicht viel her.

Du kannst auch versuchen per CHKOBJ das Objekt einfach zu prüfen, wobei ich nicht weiß, wie der Befehl auf beschädigte Objekte reagiert. Allerdings kann das Objekt dann auch nur per RCLSTG entfernt werden.

Pikachu
05-07-10, 16:08
Manchmal kann man ein beschädigtes Objekt auch selber löschen.

Der Befehl SAVOBJ prüft Objekte auch darauf, ob sie beschädigt sind. Vielleicht kannst du versuchen, das Objekt mit SAVOBJ PRECHK(*YES) in eine Sicherungsdatei zu sichern und dann prüfen ob das funktioniert hat.

Matthias182
06-07-10, 10:32
Hallo,

wenn ich das aber richtig verstehe, dann handhabt RCLSTG jedoch nur database files, libraries, device descriptions, directories, stream files und user profiles.

Es scheint hier keine Möglichkeit zu geben, um eine message queue zu korrigieren.

Habt ihr eine Idee, wie ich eine korrupte message queue erzeugen kann, um ein paar Tests zu machen? Ansonsten können wir nur spekulieren.


Dnake und Gruß
Matthias

Pikachu
06-07-10, 11:50
Der RCLSTG prüft eigentlich noch mehr Objekte, näheres siehe diese Beschreibung (http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/topic/rzarm/rzarmrclstg.htm).

Objekte mutwillig zu beschädigen ist möglich, aber willst du das wirklich? Es kann sicher auch verschiedene Arten von Beschädigungen geben und ob man alle prüfen kann? Ist die Maschine denn im produktiven Einsatz?

Wie oft war die betreffende Nachrichtenwarteschlange denn schon beschädigt?

Matthias182
06-07-10, 15:21
Ich habe hier verschiedene Systeme zur Verfügung (Entwicklung-, Test und Produktionssysteme).

Bisher ist das noch nicht vorgekommen. Es handelt sich nicht um eine System-Warteschlange, sondern um eine eigene.
Das Problem ist durch einen Stromausfall entstanden, der nicht rechtzeitig erkannt wurde.

Und nach dem Wiederanlauf, haben wir nicht erkannt, dass diese Warteschlange beschädigt war. Für solche sehr seltenen Fälle müssen wir jetzt aber eine Routine haben, die in der Lage ist diesen Fehler vorher zu erkenen, ohne die Produktion zu beeinträchtigen.

Fuerchau
06-07-10, 15:58
Da hilft dann für das nächste Mal halt ein RCLSTG, wenn das System abnormal beendet wurde, und das weiß man doch hoffentlich.

Matthias182
07-07-10, 08:04
Hallo Fuerchau,

der RCLSTG ist bekannt und wurde nach dem Absturz auch angewendet.

Jedoch hat das für die message queue nichts gebracht. Ich bin nach wie vor der Ansicht, dass der Befehl bei Nachrichtenwarteschlangen nichts bringt bzw. nicht funktioniert.


Gruß
Matthias