CMP アプリケーションを構成マネージャーに接続して、ブローカー・ドメイン中のリソースに関する要求を送信します。
始める前に
このステップの開始前に、構成マネージャー・プロキシー・アプリケーションの開発および実行用の環境の構成を完了する必要があります。
import com.ibm.broker.config.proxy.*; public class ConfigManagerRunStateChecker { public static void main(String[] args) { displayConfigManagerRunState("localhost", 1414, ""); } public static void displayConfigManagerRunState(String hostname, int port, String qmgr) { ConfigManagerProxy cmp = null; try { ConfigManagerConnectionParameters cmcp = new MQConfigManagerConnectionParameters(hostname, port, qmgr); cmp = ConfigManagerProxy.getInstance(cmcp); String configManagerName = cmp.getName(); System.out.println("Configuration Manager '"+configManagerName+ "' is available!"); cmp.disconnect(); } catch (ConfigManagerProxyException ex) { System.out.println("Configuration Manager is NOT available"+ " because "+ex); } } }
プログラムの最初の行は、CMP クラスをインポートするように Java に要求します。 すべての CMP クラスは com.ibm.broker.config.proxy パッケージにあります。
displayConfigManagerRunState() メソッドの try ブロック内の最初の行は、ConfigManagerConnectionParameters オブジェクトをインスタンス化します。 このメソッドは、インプリメントしているクラスが構成マネージャーに接続するためのパラメーターを提供できることを述べるインターフェースです。
このオブジェクトを定義したら、上記の特性を持つキュー・マネージャーに接続できます。この接続は、try ブロックの内部にある静的 getInstance() ファクトリー・メソッドによって実現されます。構成マネージャーへの有効なハンドルが取得されると、アプリケーションは構成マネージャーの名前を見付けて (cmp.getName())、それを表示しようとします。
getName() (および、構成マネージャーから情報を要求するその他のメソッド) は、情報が提供されるまでブロックされるか、タイムアウトが発生します。したがって、構成マネージャーが実行していない場合は、アプリケーションが一定の期間、停止します。ConfigManagerProxy.setRetryCharacteristics() メソッドを使用してタイムアウト期間を制御できます。一般に、アプリケーション内の指定されたリソースが初めてアクセスされるときにのみブロッキングが発生します。
最後に、disconnect() メソッドが呼び出されます。 このメソッドにより、CMP と構成マネージャーの両方で、接続に関連したリソースが解放されます。
ConfigManagerProxy ハンドルが getInstance() メソッドから初めて戻されるときに、構成マネージャー サービスが必ずしも実行しているわけではありません。 構成マネージャーを使用した両方向接続がアクティブになっていることをアプリケーションが保証されるのは、(この例では、getName() を呼び出して) アプリケーションがハンドルを使用しようとするときに限ります。