Sun Java System Message Queue 4.2 릴리스 노트

분산 트랜잭션에 대한 C-API 지원

X/Open 분산 트랜잭션 모델에 따르면 분산 트랜잭션에 대한 지원은 하나 이상의 자원 관리자에서 수행되는 작업을 추적 및 관리하는 분산 트랜잭션 관리자에 의해 결정됩니다. Message Queue 4.2에서 Message Queue C-API는 이제 XA 호환 자원 관리자로 분산 트랜잭션 관리자와 Message Queue 간에 XA 인터페이스를 지원하므로 분산 트랜잭션 처리 환경(예: BEA Tuxedo)에서 실행되는 Message Queue C-API 클라이언트는 분산 트랜잭션에 참가할 수 있습니다.

이 분산 트랜잭션 지원은 XA 인터페이스 사양을 구현하는 데 사용되는 다음과 같은 새로운 C-API 함수, 매개 변수 및 오류 코드로 구성됩니다.

MQGetXAConnection()
MQCreateXASession()

분산 트랜잭션 컨텍스트에서 C 클라이언트 응용 프로그램을 사용할 경우 MQGetXAConnection()을 사용하여 연결을 설정하고 MQCreateXASession()을 사용하여 메시지를 생성 및 사용하기 위한 세션을 작성해야 합니다. . 모든 분산 트랜잭션의 시작, 완결 및 롤백은 분산 트랜잭션 관리자에서 제공되는 API를 통해 관리됩니다.

공용 정보

X/Open XA 인터페이스 사양에는 Message Queue XA 호환 자원 관리자에 대한 다음과 같은 공용 정보가 필요합니다.

다음과 같은 이름/값 쌍이 지원됩니다.

표 1–6 Message Queue 자원 관리자 이름/값 쌍

이름 

값 

설명 

기본값 

address 

host:port

브로커 포트 매퍼 서비스의 호스트:포트 

localhost:7676

username 

문자열 

브로커 연결에 필요한 사용자 이름 

guest

password 

문자열 

사용자 이름의 비밀번호 

guest

conntype 

TCP 또는 SSL 

브로커 연결 시의 프로토콜 유형 

TCP

trustedhost 

true/false 

브로커 호스트가 신뢰되는 지의 여부(conntype=SSL에만 적용) 

true

certdbpath 

문자열 

NSS 인증서 및 키 데이터베이스 파일이 포함된 디렉토리의 전체 경로 

설정되지 않음 

clientid 

문자열 

JMS 영구 가입 시에만 필요 

설정되지 않음 

reconnects 

정수 

브로커에 대한 다시 연결 시도 횟수(0은 다시 연결 없음) 

0

프로그래밍 예

분산 트랜잭션을 사용하는 응용 프로그램을 프로그래밍하려면 트랜잭션 관리자 환경에서 실행되는 서버측 서비스와 트랜잭션 관리자 API를 호출하는 클라이언트측 코드를 작성합니다. Message Queue 4.2는 Tuxedo 트랜잭션 관리자에 기반한 프로그래밍 예를 제공합니다. 이러한 예는 각 플랫폼의 ./C/tuxedo 디렉토리에 있는 샘플 프로그램 디렉토리에 있습니다.

이 디렉토리에는 Message Queue 자원 관리자를 사용할 수 있도록 Tuxedo를 설정하고 Tuxedo 환경에 다음 샘플 프로그램을 구축하는 방법을 설명하는 README 파일이 포함되어 있습니다.

샘플 프로그램 

설명 

jmsserver.c

Message Queue를 사용하여 메시지를 보내고 받는 Tuxedo 서비스를 구현합니다. 

jmsclient_sender.c

jmsserver.c 프로그램에서 메시지 생성 서비스를 사용하는 Tuxedo 클라이언트입니다.

jmsclient_receiver.c

jmsserver.c 프로그램에서 메시지 수신 서비스를 사용하는 Tuxedo 클라이언트입니다.

async_jmsserver.c

Message Queue를 사용하여 비동기식으로 메시지를 사용하는 Tuxedo 서비스를 구현합니다. 

jmsclient_async_receiver.c

async_jmsserver.c 프로그램의 비동기식 메시지 사용 서비스를 사용하는 Tuxedo 클라이언트입니다.