これは、WebSphereMQおよびAtomikosでの議論の続きの質問です-プロセス終了時に失われたメッセージ
JMSフィールドおよび対応するMQMDフィールドを持つプロパティに記載されているJMSDeliveryModeは、MQメッセージが永続的であるかどうかを決定しますか?
これは、WebSphereMQおよびAtomikosでの議論の続きの質問です-プロセス終了時に失われたメッセージ
JMSフィールドおよび対応するMQMDフィールドを持つプロパティに記載されているJMSDeliveryModeは、MQメッセージが永続的であるかどうかを決定しますか?
はい、IBMのJMSクラスを使用してメッセージがそこに配置されている限りです。クラスは、JMSDeliveryMode
値をWebSphereMQ永続性値の1つに変換します。
ACプログラムは、メッセージヘッダーとは異なるようにメッセージのプロパティを設定または変更しようとする場合があり、その場合にWMQAPIが整合性を強制するかどうかはわかりません。
しかし、最初の部分を繰り返すと、答えはイエスです。リンクされたページでは、JMSプロパティがネイティブWMQヘッダーにどのようにマップされ、JMSDeliveryMode
実際ににマップされるかについて説明していますMQMD.Persistence
。
V6.0インフォセンターへのリンクに気づきました。WMQ V6.0は数日でサービスを終了するため、まだ使用していないことを願っています。同じ情報に関する現在のInfocenterトピックはここにあり、再編成されていくつかのポイントが明確になっていることがわかります。少なくともV7.1クライアントとQMgr、できればV7.5、そしてもちろん対応するInfocenterに移行することを強くお勧めします。
更新:
コメントに応じて、優先順位は次のとおりです。
PERSISTENCE=APP
(デフォルト)に設定されている場合、アプリケーションの設定が優先されます。メッセージが最初に配置されるキューが送信キューである場合、リモートターゲットキューがに設定されている場合でも、永続性はその時点で決定され、メッセージが到達する場所に移動することに注意してくださいDEFPSIST(NO)
。
最初の箇条書きにリンクされているページをよく見ると、永続性の値がHIGHである可能性があります。その値の説明は本から外れているようです(私はそれを報告します)が、それはこのページにあります。これは、WMQの永続モードと非永続モードの間にあるJMSの「ベストエフォート」配信モードです。ネイティブに相当するものがないため、WMQは、リカバリのマークが付けられたキューで非永続メッセージを使用してこれを実装します。QMgrが起動すると、シャットダウンと起動が正常であり、キューファイルが破損していないと想定して、キュー上の非永続メッセージが保存されます。線形ロギングを備えたQMgrでも、これらのメッセージはメディア回復のためにログに記録されないため、それらのコピーは1つだけです。したがって、ほとんどの場合、これらのメッセージは再起動後も存続しますが、QMgrがそれらを削除することで解決できる条件がある場合は、解決します。
NPMCLASS(HIGH)
これが機能するためには、メッセージが通過するすべてのキューをに設定する必要があるというページの警告に注意してください。メッセージがネットワークを経由する途中でキューに到着した場合、メッセージはどうなるかわかりませんが、NPMSPEED(NORMAL)
おそらく非永続的なものとして扱う必要があります。