WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


연결되지 않은 EIS 가져오기를 사용하는 동적 호출

연결되지 않은 EIS 데이터 바인딩 가져오기, 엔드포인트 및 속성 대체를 사용하여 동적인 엔드포인트의 호출을 사용 가능하게 하는 방법에 대해 보여줍니다.

소개

엔드포인트가 가져오기에 지정된 엔드포인트가 아닌 EIS 가져오기 바인딩을 사용하여 서비스를 호출할 수 있습니다. 가져오기가 JDBC 어댑터에 연결되는 EIS 바인딩의 경우 연결 팩토리의 JNDI 이름을 나타내는 URL을 사용하여 동적 엔드포인트를 지정할 수 있습니다.
그림 1. 연결되지 않은 가져오기를 사용하는 동적 호출을 통한 엔드포인트 대체에 대한 설명
메시지는 모듈 및 가져오기 바인딩을 통해 웹 서비스로 플로우됩니다. 메시지에 포함된 정보는 엔드포인트를 동적으로 대체할 수
있습니다.

WebSphere® Integration Developer를 사용하여 동적 엔드포인트를 포함하는 중개 모듈을 작성할 수 있습니다.

엔드포인트 주소의 프로그램화된 대체

SCA 공용 API를 사용하여 엔드포인트 주소를 대체할 수 있습니다. 다음 예제 코드에서 uri 값은 JCA URI 표준을 준수해야 합니다.
epr = EndpointReferenceFactory.INSTANCE.createEndpointReference();
epr.setAddress(uri);
epr.setBindingType(bindingType);
epr.setImport("Import1");
Service dynamicService = (Service) ServiceManager.INSTANCE.getService(refname, epr);
바인딩 유형 속성을 엔드포인트 참조에 추가하여 올바른 엔드포인트 유형을 식별하십시오.

JCA 엔드포인트 표시

SCA 엔드포인트 참조가 작성되고 동적 엔드포인트를 생성하는 연결 팩토리에 대해 JNDI가 저장됩니다. SCA 엔드포인트 참조가 SCA 메시지의 엔드포인트 참조에 저장됩니다. 메시지를 수신하면 EIS 가져오기 핸들러가 메시지에서 엔드포인트 참조를 식별하고 이를 사용하여 대상 주소를 생성하는 연결 팩토리의 JNDI를 찾습니다. EIS 바인딩은 연결 팩토리를 사용하여 동적 엔드포인트의 대상 주소를 가져옵니다. 대상 주소를 찾으면 메시지를 대상 주소로 전송합니다. 대상 주소를 찾지 못한 경우에는 메시지가 원래 엔드포인트로 전송됩니다.

JCA URI는 다음과 같은 형식으로 되어 있습니다.
구문 도표 읽기시각적 구문 도표 생략
>>-scheme--:--jca-variant--:--jndiName-------------------------><

scheme
JCA URI의 설계는 항상 jca입니다.
jca-variant
jca-variant는 JCA 연결에 대한 자세한 정보를 제공하고 항상 jndi입니다.
jndiName
메시지에 대한 동적 대상 주소를 제공하는 연결 팩토리를 식별합니다.

유효한 JCA URI 예제는 다음과 같습니다.

jca:jndi:dynamicTestJNDIUnwired

이 URI에서는 EIS 가져오기 핸들러가 JNDI에 정의된 연결 팩토리를 dynamicTestJNDIUnwired로 검색합니다.

EIS 엔드포인트가 포함된 동적 호출 작성

동적 엔드포인트를 포함한 중개 모듈을 작성하려면 다음 타스크를 수행하십시오.
  1. POJO 및 연결되지 않은 가져오기가 포함된 중개 모듈 1을 작성하십시오.
  2. POJO 2에 연결된 내보내기 2가 포함된 중개 모듈 2를 작성하십시오.
  3. POJO 3에 연결된 내보내기 3이 포함된 중개 모듈 3을 작성하십시오.
  4. 가져오기가 SCA-JCA 가져오기인지, 상호작용 스펙과 연결 스펙은 포함하지만 연결 팩토리는 전혀 설정되어 있지 않은 채로 정적으로 구성되어 있는지 확인하십시오.
  5. 메시지가 내보내기 2로 라우트되도록 가져오기가 구성되어 있는지 확인하십시오.
  6. 내보내기 2와 내보내기 3의 포트 유형이 동일한지 확인하십시오.
  7. 세 개의 모듈을 서버로 전개하십시오.

동적 호출 사용

연결 팩토리, 새 반복 스펙 및 새 연결 스펙의 JNDI 이름으로 POJO가 호출되는 경우 JDBC 어댑터의 동적 호출이 수행됩니다. POJO는 메시지에서 엔드포인트 정보 및 연결 속성을 추출합니다. POJO는 원격 서비스를 호출하는 데 SCA EPR API와 가져오기에 연결된 참조를 사용합니다. 상호작용 스펙과 연결 스펙 정보는 이후에 다시 사용할 수 있도록 EPR 특성에 유지됩니다. POJO에 대한 응답 플로우에서 모든 응답이 리턴됩니다.

JDBC를 사용하는 대신 어댑터는 CICS, IMS 또는 SAP용입니다. 가져오기에 연결되는 어댑터는 동일한 portType이어야 합니다. 예를 들어, 중개 모듈 2에 대해 JDBC를 사용하고 중개 모듈 3에 대해 CICS를 사용하는 것은 오류입니다.

단방향 호출 메시지는 응답 메시지가 리턴되지 않는 점을 제외하면 양방향 메시지와 동일하게 작동합니다.

다음 세 조건 중 하나라도 해당하는 경우에는 런타임 예외가 발생합니다.
  • 인수가 비어 있는 채로 POJO가 호출됩니다.
  • 대상 가져오기가 누락되었거나 없습니다.
  • EPR 정보가 누락되었거나 잘못되었습니다.
가져오기에서 예외가 발생하고 응답 플로우에서 리턴됩니다.

reference 참조 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 09 7월 2010


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/ref/rwesb_dynamicroutingwithUnwiredEISimport.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술로 구현됩니다. (http://www.eclipse.org)