web-dev-qa-db-ja.com

MQシリーズバインディングファイルについて

Javaアプリは、Weblogic JMSメッセージブリッジを介してMQシリーズキューに書き込みます。実際のMQシリーズ接続/キューの詳細は、アプリサーバー上のMQシリーズ.bindingsファイルに保存されます。バインディングファイルとすべてのエントリの意味について本当に頭を悩ませました。誰かがこのファイルを理解するためのガイダンスを提供できますか?

15
Marcus Leon

.bindingsファイルをアドレス指定する前に、少し戻ってJNDI(Java Naming and Directory Interface)とJMSでの使用方法)を確認する必要があります。キュー、トピック、およびさまざまなタイプConnection Factoryはすべて、メソッドと属性を持つランタイムJMSオブジェクトですが、事前に定義してレジストリに格納し、JMSアプリケーションがJNDIルックアップを使用してそれらを取得できるようにすることができます。

オブジェクトはJMS側とプロバイダー固有の側を持っているという点でコインに似ているため、これは便利です。 JMS側では、管理対象オブジェクトはほぼ同じように見えます。基盤となるトランスポートプロバイダーに関係なく、ConnectionFactoryには同じメソッドと属性があります。ただし、プロバイダー固有の側面では、管理対象オブジェクトは、トランスポートプロバイダーごとに大きく異なります。たとえば、WebSphere MQトランスポートで使用されるConnectionFactoryには、キュー・マネージャーの属性があります。他のトランスポートプロバイダーには「キューマネージャー」がないため、この属性はWMQコンテキストでのみ有効です。

管理対象オブジェクトの2つの側面は、JMSがトランスポートプロバイダーから独立して機能できるようにする「接着剤」です。コードでは、ConnectionFactoryを検索するだけで、メソッド呼び出しを実行するのに適したオブジェクトを取得できます。裏では、プロバイダーのJMSクラスは、プロバイダー固有のオブジェクト属性を使用してコンテキストを提供し、汎用のJMSAPI呼び出しをプロバイダー固有の呼び出しに変換します。したがって、インスタンス化する接続オブジェクトは、QMgr名、ホスト、ポート、チャネル、およびその他のさまざまなパラメーターを指定するWMQCONNECT呼び出しになります。

OK、.bindingsファイルにアクセスすることを約束しました。 JNDIルックアップは「レジストリ」に対するものであり、通常はLDAPなどを意味します。しかし、Sunは、プログラムが使用するAPIとレジストリによって使用されるSPIまたはサービスプロバイダーインターフェイスがあるという点で、JMSのようなJNDIを設計しました。したがって、JNDI can = LDAPで実装され、それを言うものは何もありません必須 LDAPで実装されます。Sunがすぐに提供した基本実装の1つは、ローカルファイルシステムをレジストリとして使用することでした。実装では、ルートコンテキストはファイルフォルダです。各コンテキストは、別のサブコンテキスト(別のファイルフォルダ)またはオブジェクト定義のいずれかを格納できます。通常、ルートコンテキスト用のフォルダが1つあり、すべてのオブジェクトがそのレベルで定義されます。ファイルオブジェクト定義を保持するのは...ご想像のとおり.... bindingsファイルです。

.bindingsファイル内のオブジェクトは、名前/タイプ/値のトリプレットで表されます。したがって、各.bindingsファイルには通常多くのオブジェクトがあります。各オブジェクトには多くの属性があります。各属性には、名前、値、および値を保持する変数のタイプがあります。 .bindingsファイルのハンドルを取得する最良の方法は、すべてのオブジェクトとその属性をまとめて人間が読める形式にするファイルを並べ替えることです。可能なプロパティのリストについては、 マニュアル を参照してください。

もちろん、.bindingsファイルはコンパイルされたアーティファクトであると想定されており、人間が読める形式ではありません。 IBMは、.bindingsファイルを生成して読み取るためのJMSAdminツールを提供しています。 WMQエクスプローラーを使用して、.bindingsファイル内の管理対象オブジェクトを管理することもできます。これらについては、上記のリンク先のマニュアルでも説明されています。また、developerWorksに(一部の人は)良いチュートリアルがあります ここ

40
T.Rob