JMSOutput 노드에서 메시지를 수신하거나 JMSInput 노드로 메시지를 제공하는 JMS 목적지는 메시지 플로우 전역 트랜잭션의 일부로 통합되는 동기점이 될 수 있습니다.
동기점 조정자와 관련된 트랜잭션
이 다이어그램에서, 메시지는 JMSInput 드에 의해 토픽에서 이용되고 JMS 큐나 JMSOutput 노드에 생성됩니다. 노드는 JMS 제공자로 연결되며 JMS 제공자가 있는 세션에 있습니다. 메시지 플로우 입력 노드는 메시지 플로우 트랜잭션이 시작하고 끝날 때, 그리고 플로우가 접촉한 자원을 확약 또는 롤백해야 하는지 여부를 외부 동기점 조정자에 알릴 수 있습니다.
동기점 조정자는 XA/Open 준수 요청을 참여하는 모든 자원 관리자에 송신하여 준비하도록 알립니다. 그런 다음, 변경사항이 커미트 또는 롤백됩니다. WebSphere MQ, DB2 및 XA 준수 JMS 제공자와 같은 자원 관리자가 전역 트랜잭션에 참여할 수 있습니다. 외부 동기점 조정자는 분산 플랫폼의 WebSphere MQ와 z/OS의 RRS(Resource Recovery Services)입니다.
JMSInput 노드와 JMSOutput 노드는 노드가 연결하는 JMS 제공자가 JMS XAResource Class를 통해 XA/Open 인터페이스를 지원할 경우에만 전역 트랜잭션에 참여할 수 있습니다. JMS 제공자의 예로 WebSphere MQ Java 클라이언트가 있습니다.
인다우트(In-doubt) 트랜잭션
인다우트(in-doubt) 트랜잭션은 호출이 자원을 확약하거나 롤백하는 동기점 관리자의 호출에 자원 관리자가 응답하지 않을 경우 발생할 수 있습니다. 브로커의 WebSphere MQ 큐 관리자를 시작하는 동안, 브로커 메시지 플로우가 새 입력 처리를 시작하기 전에 인다우트(in-doubt) 트랜잭션이 해석되도록 초기 복구 단계가 수행됩니다. 브로커 전역 트랜잭션에 참여하는 JMS 제공자는 이 복구 단계에 포함됩니다.
전역 트랜잭션 지원을 사용하는 구성
브로커의 WebSphere MQ 큐 관리자가 시작하면 스위치 파일이 로드됩니다. 스위치 파일은 동기점 조정자에서 JMS 제공자로 XA/Open 트랜잭션 호출을 전달합니다. 이로써 트랜잭션에 참여하는 JMS 자원은 동일 트랜잭션에 포함된 다른 자원 관리자와의 동기화에 통합될 수 있습니다.
XAResourceManager: Name=WBIWMQJMS SwitchFile=/<Installation Path>/lib/JMSSwitch.so XAOpenString=<Initial Context Factory>, <location of JNDI bindings>' <LDAP Principal>, <LDAP Credentials>, <Recovery Connection Factory Name> ThreadOfControl=THREAD여기서:
<Installation Path>는 WebSphere Message Broker 설치의 위치입니다. 이 값은 필수입니다.
사용하려는 JMS 제공자마다 브로커의 큐 관리자 .ini 파일에서 스탠자를 지정해야 합니다. 즉, JMS 제공자가 브로커에서 실행 중인 메시지 플로우에 포함된 JMSInput 또는 JMSOutput 노드에서 지정할 수 있는 새 JMS 제공자마다 하나의 스탠자가 있어야 합니다.
스탠자에 있는 JNDI 바인딩의 위치 및 초기 컨텍스트 팩토리 값은 메시지 플로우에서 JMSInput 또는 JMSOutput 노드에 지정한 값과 일치해야 합니다.
LDAP 매개변수는 mqsicreatebroker 또는 mqsichangebroker 명령을 사용하여 지정한 값과 일치해야 합니다.
복구 팩토리 이름은 JNDI 관리 대상 오브젝트에서 작성한 큐 연결 팩토리 이름과 일치해야 합니다. 생략하면 디폴트 팩토리인 recoverXAQCF가 사용됩니다. 어떠한 경우에든, 이 값은 이미 작성된 JNDI 관리 오브젝트를 참조해야 합니다.
다음은 스탠자 예입니다.
XAOpenString=com.sun.jndi.fscontext.RefFSContextFactory, /u/myJndiFileLocation, , , myRecoveryQCFName여기에서 LDAP 매개변수는 생략되어 있지만 복구를 위해 사용자가 정의한 큐 연결 팩토리가 지정되어 있습니다.
Linux 및 UNIX와 같이 Windows에서 동일한 정보가 필요하지만 사용 중인 WebSphere MQ 버전에 따라 WebSphere MQ 탐색기 또는 WebSphere MQ 서비스 스냅인을 사용하여 이 정보를 구성합니다. Windows에서, 스위치 파일은 JMSSwitch.dll입니다. qm.ini 파일을 갱신하는 방법에 대한 자세한 내용은 WebSphere MQ 시스템 관리 안내서를 참조하십시오. 추가 입력 항목(XACloseString)이 XAOpenString에 제공된 값과 일치해야 합니다.
WebSphere Message Broker에서 현재 유일하게 지원되는 JMS 제공자는 IBM WebSphere MQ Java Client입니다. 클라이언트에 대해 현재 지원되는 유일한 전송 모드는 BIND 모드입니다. 더 이상 추가 구성 단계는 필요없습니다.
트랜잭션 통합이 필요한 경우, JMS(Java Message Service) 스펙, 버전 1.1을 준수하고 JMS 세션을 통해 JMS XAResource API를 지원하는 모든 JMS 제공자를 사용할 수 있습니다.
메시지 설계자가 비 XA 준수 제공자를 지정한 경우에는 비 트랜잭션 모드만 지원됩니다. 이 경우, 모든 JMSInput 및 JMSOutput 노드에 대해 트랜잭션 모드 등록 정보를 아니오로 설정해야 합니다.