2 Stimmen

Websphere MQ Nachricht lesen

Im Moment habe ich einen C#-Dienst, der Nachrichten aus der Warteschlange (Websphere MQ) liest und sie in eine Datenbank schreibt. Jedes Mal, wenn ich einen GET ausführe, verschwindet die Nachricht aus der Warteschlange. Ich hätte aber gerne eine zusätzliche Funktionalität. Ich würde es vorziehen, eine Nachricht aus der Warteschlange zu lesen und sie erst dann aus der Warteschlange zu entfernen, wenn das Schreiben in die Datenbank erfolgreich war. Bitte beachten Sie, dass ich all dies in einer Multithreading-Anwendung ausführe. Ich weiß, dass es eine Möglichkeit gibt, die Warteschlange zu durchsuchen, aber das bietet nicht wirklich die Funktionalität, die ich brauche.

0voto

Fabio Punkte 2905

Ich schreibe meine erste WMQ-Anwendung und weiß, dass ich sehr bald auf dieses Problem stoßen werde, daher habe ich Ihre Frage gefunden.

Ich habe dies gefunden http://www.mqseries.net/phpBB2/viewtopic.php?t=43043&sid=11ad2d587dbd19056836ccc3f8943e5f (Angabe der Option MQOO_BROWSE beim Öffnen der Warteschlange) in einem anderen Forum, ich habe es noch nicht ausprobiert, aber ich denke, es ist einen Versuch wert...

[]'s

0voto

FeatureShock Punkte 118

Ich habe eine ähnliche Funktionalität in C++ implementiert. Hoffentlich hilft das Ihnen oder jemandem.

Sie können Nachrichten durchsuchen, ohne sie aus der Warteschlange zu entfernen, indem Sie die Optionen MQGMO_BROWSE_FIRST y MQGMO_BROWSE_NEXT . Wie kann ich eine Websphere MQ-Nachricht durchsuchen, ohne sie zu entfernen?

Speichern Sie die Nachrichtenidentifikatoren in einer Liste oder in einer anderen geeigneten Datenstruktur. Schreiben von Nachrichten in die Datenbank.

Holen Sie dann Nachrichten aus der Warteschlange ganz normal ohne die Option BROWSE. ImqQueue::Get benötigt zwei Parameter: options und ImqMessage. Setzen Sie den Nachrichtenbezeichner auf ImqMessage-class, bevor Sie get aufrufen. ImqMessage dient als Filter. Sie können auswählen Sie können nur solche Nachrichten auswählen, die erfolgreich in die Datenbank geschrieben wurden.

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.amqzan.doc%2Fuc10330_.htm

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X