2009-06-08 2 views
13

Javaアプリケーションは、Weblogic JMSメッセージブリッジを介してMQシリーズキューに書き込みます。実際のMQ Series接続/キューの詳細は、アプリケーションサーバーのMQ Series .bindingsファイルに格納されています。私は実際にバインディングファイルの周りに頭を浮かべていないし、すべてのエントリの意味。誰でもこのファイルを理解するためのガイダンスを提供できますか?MQシリーズバインディングファイルの理解

答えて

35

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

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

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

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

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

もちろん、.bindingsファイルはコンパイル済みのアーティファクトであり、人間が読めるようにはなっていません。 IBMはJMSAdminツールを使用して、.bindingsファイルを生成して読み取ります。また、WMQ Explorerを使用して、管理対象オブジェクトを.bindingsファイルで管理することもできます。これらは上記のマニュアルにも記載されています。 developerWorksのhereにも良いチュートリアルがあります。

関連する問題