構成マネージャー・プロキシーを使用した構成マネージャーへの接続

始める前に

このステップの開始前に、構成マネージャー・プロキシー・アプリケーションの開発および実行用の環境の構成を完了する必要があります。

以下のプログラム、ConnectToConfigManager.java について考慮します。このプログラムは、ローカル・マシンのデフォルトのキュー・マネージャーで実行している構成マネージャーに接続しようとします。
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 オブジェクトをインスタンス化します。 これは、インプリメントしているクラスが構成マネージャーに接続するためのパラメーターを提供できることを述べるインターフェースです。

このインターフェースをインプリメントするクラスは MQConfigManagerConnectionParameters のみです。このクラスは、WebSphere MQ ベースの接続パラメーターのセットを定義します。 ここで使用されるコンストラクターは以下の 3 つのパラメーターを取ります。
  1. 構成マネージャー・マシンのホスト名。
  2. 構成マネージャーWebSphere MQ リスナー・サービスが listen するポート。
  3. 構成マネージャーWebSphere MQ キュー・マネージャーの名前。
このオブジェクトを定義したら、上記の特性を持つ構成マネージャーキュー・マネージャーに接続を試行することができます。 これは、try ブロックの内部にある静的 getInstance() ファクトリー・メソッドによって実現されます。 構成マネージャーへの有効なハンドルが取得されると、アプリケーションは構成マネージャーの名前を見付けて (cmp.getName())、それを表示しようとします。
注: getName() (および、構成マネージャーから情報を要求するその他のメソッド) は、情報が提供されるまでブロックされるか、タイムアウトが発生します。

これは、構成マネージャーが実行していない場合は、アプリケーションが一定の期間、停止することを意味します。 ConfigManagerProxy.setRetryCharacteristics() メソッドを使用してタイムアウト期間を制御できます。 しかし、一般に、アプリケーション内の指定されたリソースが初めてアクセスされるときにのみブロッキングが発生します。

最後に、disconnect() メソッドが呼び出されます。 このメソッドにより、CMP と構成マネージャーの両方で、接続に関連したリソースが解放されます。
注: ConfigManagerProxy ハンドルが getInstance() メソッドから初めて戻されるときに、構成マネージャー サービスが必ずしも実行しているわけではありません。 構成マネージャーを使用した両方向接続がアクティブになっていることをアプリケーションが保証されるのは、(この例では、getName() を呼び出して) アプリケーションがハンドルを使用しようとするときに限ります。
関連タスク
構成マネージャー・プロキシー・アプリケーションの開発および実行用の環境の構成
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 Last updated: 5 01, 2006
ae33030_