JNDI 상호 운용성 고려사항
추가 단계를 사용하여 사용자 프로그램이 비-제품 JNDI 클라이언트와 상호운용하고 MQSeries®에서 네임스페이스로 바인드되게 해야 합니다.
제품 서버에서 실행 중인 EJB 애플리케이션에 액세스하는 WebSphere Application Server 외의 환경에서 실행 중인 EJB 클라이언트
WebSphere® Application Server에서 실행 중인 엔터프라이즈 Bean(EJB) 애플리케이션이 비-제품 EJB 클라이언트에서 액세스되면, JNDI 초기 컨텍스트 팩토리는 비-제품 구현이 될 것으로 추정됩니다. 이 경우 기본 초기 컨텍스트는 셀 루트입니다. 사용 중인 JNDI 서비스 제공자가 CORBA 오브젝트 URL을 지원하는 경우, corbaname 포맷을 사용하여 EJB 홈을 검색하는 데 사용될 수 있습니다.
stringified 이름의 구현은 오브젝트가 단일 서버나 클러스터에 설치되는지 여부에 따라 다릅니다.
- 단일 서버
- 다음은 부트스트랩 호스트 myHost,
포트 2809 및 노드 node1의 서버 server1에 설치된 엔터프라이즈 Bean이 있으며
이름 myEJB 하의 해당 서버에서 바인드되는 URL입니다.
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/nodes/node1/servers/server1/myEJB");
- 서버 클러스터
- 다음은 부트스트랩 호스트 myHost,
포트 2809 및 myCluster라는 서버에 설치된 엔터프라이즈 Bean이 있으며
이름 myEJB 하의 클러스터에서 바인드되는 URL입니다.
initialContext.lookup( "corbaname:iiop:myHost:2809#cell/clusters/myCluster/myEJB");
검색은 동일 셀에서 구성된 이름 서버 부트스트랩 호스트 및 포트와 동작합니다.
부트스트랩 호스트와 포트가 클러스터 자체의 구성원에 속하는 경우에도 검색이 동작합니다. 단일 실패 지점을 피하려면, 각 클러스터 구성원에 대해 부트스트랩 서버 호스트와 포트는 다음과 같이 URL에 나열될 수 있습니다.
initialContext.lookup( "corbaname:iiop:host1:9810,:host2:9810#cell/clusters/myCluster/myEJB");
클러스터 자체에 대한 부트스트래핑인 경우 이름 접두부 cell/clusters/myCluster/가 필요하지 않지만, 동작합니다. 그러나 다른 클러스터에서 엔터프라이즈 Bean 검색 시 접두부가 필요합니다. clusters 컨텍스트 하의 이름 바인딩은 이름 서버에서 구현되어 검색 중 실행 중인 클러스터 구성원의 서버 루트로 해석합니다. 그러므로 단일 장애점을 방지합니다.
- CORBA 오브젝트 URL 지원 없음
- 사용 중인 JNDI 초기 컨텍스트 팩토리가 CORBA 오브젝트 URL을 지원하지 않는 경우, 초기 컨텍스트를 서버에서 얻을 수 있으며
다음과 같이 초기 컨텍스트에서 검색을 수행할 수 있습니다.
Hashtable env = new Hashtable(); env.put(CONTEXT.PROVIDER_URL, "iiop://myHost:2809"); Context ic = new InitialContext(env); Object o = ic.lookup("cell/clusters/myCluster/myEJB");
MQSeries 5.2에서 자원 바인딩
WebSphere Application Server 버전 5.0 이전의 릴리스에서, MQSeries jmsadmin 도구는 자원을 네임스페이스로 바인드하는 데 사용될 수 있습니다. WebSphere Application Server 네임스페이스와 함께 사용하는 경우, 자원은 네임스페이스의 임시 파티션 내에 바인드되며 서버 프로세스의 수명을 넘어 지속되지 않습니다. jmsadmin 도구를 사용하여 MQSeries 자원을 바인딩하지 않고, 콘솔 탐색 트리의 자원 아래 관리 콘솔에서 바인드하십시오.