0

Websphere MQ にメッセージがあります。メッセージを読み、メッセージを入力キューにバックアウトしようとしています。再試行のしきい値にまだ達していません。例外が発生した場合、MQ メッセージは自動的に入力 Q に入れられますか? これは私のコードです:

MQQueueManager qm = new MQQueueManager("");
MQQueue q = qm.accessQueue("");
MQMessage message = new MQMessage();
q.get(message);
System.out.println("Retry Count"+ message.backoutCount);
throw new NullPointerException;

上記のコードは、メッセージを再び入力キューに入れますか? この場合、メッセージを入力キューに戻していません。メッセージが失われました。

4

1 に答える 1

1

最初にトランザクションの一部であった場合にのみ、メッセージを取り消すことができます。あなたのコードはトランザクションを使用していません。

MQGMO オプションを確認してくださいMQGMO_SYNCPOINT(以下の 2 つのリンクでMQGMO_SYNCPOINT_IF_PERSISTENT文字列を検索してください)。MQGMO_SYNCPOINT

MQ Java クラス CMQC 定数

MQGMO_SYNCPOINT の MQ API の説明 - すべての言語に適用可能

また、 の commit() および backout() メソッドMQQueueManager:

MQQueueManager クラス

このトランザクションの一般的な説明を読むことをお勧めします

作業単位のコミットとバックアウト

于 2016-01-18T21:38:10.763 に答える