3

私は現在 C# で作業しており、作成した JMS 接続の状態 (接続/切断されているかどうか) を確認する必要があります。正常に接続および切断できると確信しています.UIに接続のステータスを表示する必要があるだけです。

接続ステータスを示す JMS 接続のプロパティはありますか? または、接続状態を確認するために使用できる他の方法はありますか?

ご協力いただきありがとうございます。:)


現在、例外をリッスンするために ExceptionListener を使用しており、例外がキャッチされるとフラグが false に設定されます。接続するときはフラグを true に設定し、切断するときはフラグを false に設定します。

このフラグは、接続が確立されているかどうかを検出するために UI で使用されます。

ただし、接続の状態を示すために使用できるIBM接続のプロパティ/メソッドがあれば、はるかに優れたソリューションであると考えていました。SonicMQ の場合、接続がアクティブか非アクティブかを示す .getConnectedState() があります。IBM が SonicMQ に似たものを持っているかどうか疑問に思っていましたか?

4

1 に答える 1

1

Connection.setExceptionListener()メソッドを使用して、接続で検出された例外を非同期的に通知できます。問題が検出されると、onException()メソッドが呼び出されます。

管理者によってQMgrがシャットダウンされたときに接続が通知され、整然と閉じられるように、必ずファクトリと宛先にFAILIFQUIESCEプロパティを設定してください。

WMQのv7では可能であるため、トランスポートでセッションの再接続を有効にします。この場合、アプリケーションは接続が中断されたことを認識しない可能性がありますが、継続的に接続されているものとして扱うことができます。

ほとんどの場合、例外はアプリケーションのAPI呼び出しによって駆動されることに注意してください。そのため、接続が失われた場合、リアルタイムでそれを知ることはできませんが、API呼び出しがいつ行われたかを知ることができます。アプリケーションが長期間アイドル状態にあり、接続ステータスをリアルタイムで表示したい場合。このトピックの詳細については、「JMS接続が存在するかどうかを確認する方法」も参照してください。

WMQ v7には、クライアントを自動的に再接続するオプションがあります。これを機能させるには、クライアントとサーバーの両方でv7を使用している必要があります。v6は2011年9月の時点でサポートが終了しているため、このアプリをv7で開発するのが最適です。v7クライアントはSupportPacMQC7としてダウンロードできます。JMSクライアントの再接続が有効になっている場合、接続の再構築中にAPI呼び出しへの応答が遅れる場合を除いて、アプリケーションは接続アクティビティを認識しない場合があります。その遅延の長さは、管理者および接続ファクトリで設定されたチャネル調整によって異なります。

于 2010-07-26T12:02:29.190 に答える