始める前に
このトピックの開始前に、構成マネージャー・プロキシーを使用した構成マネージャーへの接続を完了する必要があります。
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"); } } }
Properties p = new Properties(); p.setProperty(AttributeConstants.LONG_DESCRIPTION_PROPERTY, newDesc); b.setProperties(p);
現行ユーザーが必要な許可を持っていない場合、SetLongDescription.java が動作すると、要求が構成マネージャーによってリジェクトされるかどうか判断できません。 操作を実行するメッセージを構成マネージャーに送信できない場合に限り、詳細説明フィールドを設定するための CMP メソッドは、ConfigManagerProxyException をスローします。 これは、構成マネージャーが必要なプロパティーを変更できないとしても、プログラムからの出力が全く同じであることを意味します。
この理由は、構成マネージャーが CMP からの要求を非同期で処理するため、構成マネージャーでアクションが実行されるまで、理論上、相当の時間がかかることになるからです。 このトピックで説明されているメソッドが、完了コードが使用可能になるまでプログラムに制御を戻さない場合、CMP アプリケーションのパフォーマンスは構成マネージャーのパフォーマンスに完全に依存しています。
次に行う事柄:
そのため、ほとんどの状態変更 CMP メソッドの設計は、呼び出し側アプリケーションに要求の結果を通知しないで、即時に戻ることです。 この情報を見つけるには、構成マネージャー・プロキシーを使用したブローカー・ドメイン管理の結果の検査を参照してください。