이 작업은 구성 관리자 프록시(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 블록 안의 세 개 행이 이 예에서 핵심 명령문입니다. 첫 번째 명령문은 구성 관리자의 토폴로지로 브로커 추가를 시도하고 두 번째는 디폴트 실행 그룹의 작성을 시도하며 세 번째는 브로커로의 구성(즉, 새 실행 그룹) 전개를 시도합니다.
createBroker() 메소드에서는 mqsicreatebroker 명령을 사용하여 "물리적" 브로커 구성요소를 이미 작성한 것으로 가정한다는 점에 유의하십시오.
요청이 구성 관리자에서 비동기 방식으로 처리되기 때문에 createBroker() 메소드에서 리턴된 BrokerProxy 오브젝트는 응용프로그램으로 리턴될 때 구성 관리자에 아직 존재하지 않을 수도 있는 오브젝트를 참조함에 따라 "스켈레톤" 오브젝트가 됩니다.
이는 또한 createExecutionGroup() 메소드에서 리턴된 ExecutionGroupProxy 오브젝트 e에도 적용됩니다. 두 경우 모두 기본 오브젝트의 실제 작성이 일정 시간 동안 발생하지 않을 수도 있지만 구성 관리자에 존재하는 것처럼 오브젝트를 응용프로그램이 조작할 수 있습니다.
스켈레톤으로 표시된 오브젝트가 구성 관리자에서 작성되면 이 오브젝트를 참조하는 요청이 처리될 수 있습니다. 이 예에서 브로커가 실제로 구성 관리자의 토폴로지에 추가된 경우 구성 관리자가 요청을 승인하여 실행 그룹을 작성합니다.
이유로는 스켈레톤으로 설명된 오브젝트 작성 요청이 실패하면 스켈레톤 사용 요청 또한 실패합니다. 따라서 브로커 B2 작성이 불가능한 경우 스켈레톤 BrokerProxy 오브젝트 b2 즉, b2.createExecutionGroup() 및 b2.deploy()의 포함 요청이 실패합니다. 하지만 CMP 응용프로그램이 예외를 전달하지 않고 작동됩니다. 이런 문제의 감지 방법에 대한 추가 정보는 구성 관리자 프록시를 사용한 도메인 관리의 결과 점검을 참조하십시오.