構成マネージャー・プロキシーを使用したブローカー・ドメインの管理

始める前に

このトピックの開始前に、構成マネージャー・プロキシーを使用した構成マネージャーへの接続を完了する必要があります。

CMP を使用して、ドメイン内のオブジェクトの状態を変更することができます。つまり、構成マネージャー内に保管されているオブジェクトの作成、削除、変更、およびデプロイを行うことができます。以下の例は、B1 というブローカーの詳細説明フィールドを設定しようとしています。
import com.ibm.broker.config.proxy.*;

public class SetLongDescription {

  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!");
      describeBroker(cmp, "B1", "this is my broker");
      cmp.disconnect();
    }
  }

  private static void describeBroker(ConfigManagerProxy cmp,
                                     String brokerName,
                                     String newDesc)
  {
  BrokerProxy b = null;
    try {
      TopologyProxy topology = cmp.getTopology();
      if (topology != null) {
        b = topology.getBrokerByName(brokerName);
      }
    } catch(ConfigManagerProxyPropertyNotInitializedException
                                                      ex) {
        System.err.println("Comms problem! "+ex);
    }
    
    if (b != null) {
      try {
      b.setLongDescription(newDesc);
      } catch (ConfigManagerProxyException ex) {
      System.err.println("Could not send request to CM: "+ex);
      }
    } else {
      System.err.println("Broker "+brokerName+" not found");
    }  
  }
}
setLongDescription() メソッドは、構成マネージャーにブローカー B1 の (key, value) プロパティーを変更するように指示します。ここで、key 名は詳細説明タグを表し、value は新規の詳細説明です。 したがって、setLongDescription() を呼び出す代替策は以下のようになります。
Properties p = new Properties();

p.setProperty(AttributeConstants.LONG_DESCRIPTION_PROPERTY,
              newDesc);

b.setProperties(p);
プロパティーの変更要求が構成マネージャーに送信されると、構成マネージャーが属性のコピーが正常に変更されたことを報告するまで、CMP の内部プロパティー・テーブルは更新されません。 これは、情報のすべてのコピーの整合性を保つために行われます。 このプロセスは以下に示されています。


現行ユーザーが必要な許可を持っていない場合、SetLongDescription.java が動作すると、要求が構成マネージャーによってリジェクトされるかどうか判断できません。 操作を実行するメッセージを構成マネージャーに送信できない場合に限り、詳細説明フィールドを設定するための CMP メソッドは、ConfigManagerProxyException をスローします。 これは、構成マネージャーが必要なプロパティーを変更できないとしても、プログラムからの出力が全く同じであることを意味します。

この理由は、構成マネージャーが CMP からの要求を非同期で処理するため、構成マネージャーでアクションが実行されるまで、理論上、相当の時間がかかることになるからです。 このトピックで説明されているメソッドが、完了コードが使用可能になるまでプログラムに制御を戻さない場合、CMP アプリケーションのパフォーマンスは構成マネージャーのパフォーマンスに完全に依存しています。

次に行う事柄:

そのため、ほとんどの状態変更 CMP メソッドの設計は、呼び出し側アプリケーションに要求の結果を通知しないで、即時に戻ることです。 この情報を見つけるには、構成マネージャー・プロキシーを使用したブローカー・ドメイン管理の結果の検査を参照してください。

関連タスク
構成マネージャー・プロキシー・アプリケーションの開発および実行用の環境の構成
構成マネージャー・プロキシーを使用した構成マネージャーへの接続
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ae33050_