これは、構成マネージャー・プロキシー (CMP) アプリケーションの開発という、より大きなタスクの一部です。
以下の例では、キュー・マネージャー QMB2 で実行している、B2 というブローカーをドメインに追加し、それを default という実行グループに関連付けます。 最終的に、この構成はブローカーにデプロイされます。
import com.ibm.broker.config.proxy.*; public class AddBroker { public static void main(String[] args) { ConfigManagerProxy cmp = null; try { ConfigManagerConnectionParameters cmcp = new MQConfigManagerConnectionParameters( "localhost", 1414, ""); cmp = ConfigManagerProxy.getInstance(cmcp); } catch (ConfigManagerProxyException cmpex) { System.out.println("Error connecting: "+cmpex); } if (cmp != null) { System.out.println("Connected to Config Manager!"); addBroker(cmp, "B2", "QMB2", "default"); cmp.disconnect(); } } private static void addBroker(ConfigManagerProxy cmp, String bName, String bQMgr, String egName) { TopologyProxy topology = null; try { topology = cmp.getTopology(); } catch(ConfigManagerProxyPropertyNotInitializedException ex) { System.err.println("Comms problem! "+ex); } if (topology != null) { try { BrokerProxy b2 = topology.createBroker(bName, bQMgr); ExecutionGroupProxy e = b2.createExecutionGroup(egName); b2.deploy(); } catch (ConfigManagerProxyException ex) { System.err.println("Could not perform an action: "+ex); } } } }
この例の重要なステートメントは、addBroker() メソッドの最後の方にある try ブロック内の 3 行です。 最初のステートメントはブローカーを構成マネージャーのトポロジーに追加します。2 番目のステートメントは、デフォルトの実行グループを作成します。また、3 番目のステートメントは構成 (つまり、新規の実行グループ) をブローカーにデプロイします。
createBroker() メソッドは、mqsicreatebroker コマンドを使用して、「物理」ブローカー・コンポーネントがすでに作成されていることを前提としています。
要求は構成マネージャーによって非同期に処理されるため、createBroker() メソッドから戻される BrokerProxy オブジェクトは、アプリケーションから戻されるときには「スケルトン」オブジェクトです。これは、構成マネージャーにまだ存在していないオブジェクトを指します。
このことは、createExecutionGroup() メソッドから戻される ExecutionGroupProxy オブジェクト e にも当てはまります。 どちらの場合も、基礎となるオブジェクトがしばらくの間、実際に作成されていないとしても、構成マネージャーに存在するかのようにして、アプリケーションはオブジェクトを取り扱うことができます。
スケルトンで表されるオブジェクトが構成マネージャーで作成されると、そのオブジェクトを参照する要求を処理することができます。 この例では、実際にブローカーが構成マネージャーのトポロジーに追加されると、構成マネージャーは実行グループを作成する要求を果たすことができます。
何らかの理由で、スケルトンによって記述されたオブジェクトを作成する要求が失敗した場合、そのスケルトンを使用する要求も失敗します。 そのため、ブローカー B2 を作成できない場合、スケルトン BrokerProxy オブジェクト b2 が関係する要求、つまり b2.createExecutionGroup() と b2.deploy() も失敗します。 しかし、成功したケースでは、CMP アプリケーションは動作するため、例外はスローされません。 このような問題を検出する方法について詳しくは、構成マネージャー・プロキシーを使用したブローカー・ドメイン管理の結果の検査を参照してください。