![[z/OS]](../images/ngzos.gif)
Enterprise Java Bean 대상의 WebSphere Optimized Local Adapter(WOLA) 원격 작업 요청
이 기능을 사용하면 일괄처리, CICS® 등의 클라이언트 애플리케이션이 비즈니스 로직 실행 및 결과가 클라이언트에서 필요한 애플리케이션을 호스트하는 원격 WebSphere® Application Server 서버 인스턴스에 접속할 수 있습니다. 원격 호출은 BBOA1INV/BBGA1INV 및 BBOA1SRQ/BBGA1SRQ API와 WebSphere Application Server for z/OS®에서 제공되는 프록시 애플리케이션(RemoteEJBProxy)을 사용하여 수행합니다.
- 원격 WebSphere Application Server 인스턴스 이름 공간을 로컬 z/OS WebSphere Application Server에 연합하여 로컬 서버가 원격 서버의 애플리케이션을 검색할 수 있도록 하십시오. 원격 애플리케이션은 com.ibm.websphere.ola.Execute 인터페이스에 정의된 대로 바이트 배열을 입력으로 허용하고 바이트 배열을 출력으로 리턴하는 execute() 메소드를 구현하는 Stateless Enterprise Java™ Bean이어야 합니다. EJB 2.1 이하 스펙을 사용하는 경우 EJB 홈 인터페이스에 대해 이름 com.ibm.websphere.ola.ExecuteHome을 지정하고 원격 인터페이스에 대해 com.ibm.websphere.ola.Execute도 지정하거나 EJB 3.0 스펙을 사용하는 경우 어노테이션 com.ibm.websphere.ola.ExecuteHome을 지정하는 @RemoteHome을 정의해야 합니다. 이 인터페이스는 런타임 시에 WebSphere Application Server for z/OS 및 분산 플랫폼용 WebSphere Application Server 모두에서 사용할 수 있습니다. 원격 애플리케이션 개발을 위해 언급된 인터페이스가 WebSphere Application Server for z/OS에서 ola_apis.jar 어셈블리 도구의 파트로 제공됩니다. 이 인터페이스는 애플리케이션 EAR 파일과 같이 패키지하지 마십시오.
- RemoteEJBProxy 애플리케이션이 포함된 최적화된 로컬 어댑터 프록시 EAR(ola_proxy.ear) 파일을
로컬 z/OS WebSphere Application Server 서버 인스턴스에 설치하십시오.
EAR 파일은 WebSphere Application
Server for z/OS 파일 시스템의 $(WAS_INSTALL_ROOT)/installableApps에
있습니다.
remoteEJBProxy 애플리케이션은 기본적으로 JNDI 이름 ejb/com/ibm/ws390/ola/jca/RemoteEJBProxyHome에 바인드됩니다. 어떤 이유로든 기본값이 변경되어야 하는 경우 프록시 애플리케이션의 대상 자원 JNDI 이름은 관리 콘솔의 애플리케이션 > ola_proxy > EJB JNDI 이름 > 모든 인터페이스의 JNDI 이름에서 사용자 정의해야 합니다. JNDI 이름이 업데이트되면 WebSphere 런타임은 최적화된 로컬 어댑터 환경 변수에서 설명한 대로 ola_remote_ejb_proxy_jndiname 환경 변수를 설정하여 변경을 인지해야 합니다.
remoteEJBProxy 애플리케이션의 기본 JNDI 이름 변경은 선택적 단계입니다. 반드시 변경해야 하는 경우가 아니라면 필요하지 않습니다.
- 서버를 다시 시작하십시오.
호출(BBOA1INV/BBGA1INV) 및 요청 전송(BBOA1SRQ/BBGA1SRQ) API의 호출 프로시저는 로컬 호출과 동일하며 호출 요청 유형 매개변수(requesttype)가 z/OS API용 최적화된 로컬 어댑터 API에서 설명하는 대로 2로 설정해야 하는 점만 다릅니다.
호출 또는 요청 전송 API 호출에 지정된 서비스 이름(JNDI 이름)은 로컬 WebSphere Application Server for z/OS가 원격 서버에 대해 연합 JNDI 네임스페이스를 사용하여 원격 애플리케이션을 검색하는 데 사용하는 이름이어야 합니다. 예를 들어, 원격 서버의 네임스페이스가 remote/server5 위치에서 연합되고 애플리케이션이 JNDI 이름 ejb/myRemoteApp을 사용하여 원격 서버에 설치되는 경우 호출 API 또는 요청 전송 API에 지정되는 서비스 이름은 remote/server5/ejb/myRemoteApp입니다.
이 기능은 클라이언트가 시작한 글로벌 트랜잭션 내에서 원격 애플리케이션을 호출하는 기능도 제공합니다. 글로벌 트랜잭션 내에서 CICS 클라이언트를 사용하는 경우, 출력은 CICS가 글로벌 트랜잭션 커미트 명령을 실행한 후 트랜잭션이 롤백된 것을 발견하는 경우 ABEND ASP3이 될 수 있습니다. 이런 시나리오를 CICS가 처리하는 경우 이는 예상된 결과입니다. 롤백 동작은 오류 조건이 EJB 호출 중에 발생하여 글로벌 트랜잭션의 출력이 롤백만 가능한 경우에는 예상된 동작입니다.