1

これは、WebSphereMQおよびAtomikosでの議論の続きの質問です-プロセス終了時に失われたメッセージ

JMSフィールドおよび対応するMQMDフィールドを持つプロパティに記載されているJMSDeliveryModeは、MQメッセージが永続的であるかどうかを決定しますか?

4

1 に答える 1

3

はい、IBMのJMSクラスを使用してメッセージがそこに配置されている限りです。クラスは、JMSDeliveryMode値をWebSphereMQ永続性値の1つに変換します。

ACプログラムは、メッセージヘッダーとは異なるようにメッセージのプロパティを設定または変更しようとする場合があり、その場合にWMQAPIが整合性を強制するかどうかはわかりません。

しかし、最初の部分を繰り返すと、答えはイエスです。リンクされたページでは、JMSプロパティがネイティブWMQヘッダーにどのようにマップされ、JMSDeliveryMode実際ににマップされるかについて説明していますMQMD.Persistence

V6.0インフォセンターへのリンクに気づきました。WMQ V6.0は数日でサービスを終了するため、まだ使用していないことを願っています。同じ情報に関する現在のInfocenterトピックはここにあり、再編成されていくつかのポイントが明確になっていることがわかります。少なくともV7.1クライアントとQMgr、できればV7.5、そしてもちろん対応するInfocenterに移行することを強くお勧めします。

更新:
コメントに応じて、優先順位は次のとおりです。

  1. ここで説明するように、管理対象オブジェクトオブジェクト定義で永続性が明示的に設定されている場合は、永続性が優先されます。
  2. 管理対象オブジェクトがPERSISTENCE=APP(デフォルト)に設定されている場合、アプリケーションの設定が優先されます。
  3. 管理対象オブジェクトもアプリも永続性を明示的に設定していない場合、デフォルトではキューの設定を確認してそれを使用します。

メッセージが最初に配置されるキューが送信キューである場合、リモートターゲットキューがに設定されている場合でも、永続性はその時点で決定され、メッセージが到達する場所に移動することに注意してくださいDEFPSIST(NO)

最初の箇条書きにリンクされているページをよく見ると、永続性の値がHIGHである可能性があります。その値の説明は本から外れているようです(私はそれを報告します)が、それはこのページにあります。これは、WMQの永続モードと非永続モードの間にあるJMSの「ベストエフォート」配信モードです。ネイティブに相当するものがないため、WMQは、リカバリのマークが付けられたキューで非永続メッセージを使用してこれを実装します。QMgrが起動すると、シャットダウンと起動が正常であり、キューファイルが破損していないと想定して、キュー上の非永続メッセージが保存されます。線形ロギングを備えたQMgrでも、これらのメッセージはメディア回復のためにログに記録されないため、それらのコピーは1つだけです。したがって、ほとんどの場合、これらのメッセージは再起動後も存続しますが、QMgrがそれらを削除することで解決できる条件がある場合は、解決します。

NPMCLASS(HIGH)これが機能するためには、メッセージが通過するすべてのキューをに設定する必要があるというページの警告に注意してください。メッセージがネットワークを経由する途中でキューに到着した場合、メッセージはどうなるかわかりませんが、NPMSPEED(NORMAL)おそらく非永続的なものとして扱う必要があります。

于 2012-09-25T19:18:22.243 に答える