소개
본 장에서는 AnyLink MQ 어댑터의 기본적인 동작방식에 대해서 설명한다.
1. 개요
MQ 어댑터는 IBM Websphere MQ(이하 MQ)와의 연계를 지원한다. MQ 버전 8을 기반으로 만들어졌으며, 하위 버전 호환성에 대해서는 MQ 라이브러리의 그것을 따른다.
2. 환경 구성
AnyLink에서 MQ 어댑터를 구동하기 위해서는 다음과 같은 환경 구성이 필요하다.
-
Java 버전 : 1.7(JDK 7.0)
-
MQ 라이브러리 : com.ibm.mq.allclient.jar(해당 라이브러리는 MQ 서버 설치 패키지와 함께 제공되며, AnyLink 배포판에 포함되지 않는다.)
필수 라이브러리는 다음의 폴더에 위치시킨다.
${DOMAIN_HOME}/lib/application/
3. 어댑터 동작방식
MQ 어댑터는 MQ 엔드포인트를 등록할 수 있으며, MQ 엔드포인트는 인바운드 엔드포인트와 아웃바운드 엔드포인트로 나뉜다.
각 엔드포인트의 동작 방식은 다음과 같다.
-
인바운드 엔드포인트
구분 설명 oneway
지정된 큐에 접근하여, 일정 간격으로 MQMessage를 polling한다. 이때 해당 MQMessage의 byte[] 영역이 입력 전문의 내용을 담고 있다. 해당 요청 전문은 엔드포인트에 지정 된 거래의 요청 메시지로 사용된다.
request-response
기본 동작 방식은 oneway와 동일하나, 지정된 거래에 응답 메시지가 있을 경우 request-response 모드를 사용할 수 있다.
해당 기능을 사용하기 위해서는 별도의 응답 큐를 설정해야 하며, 거래의 응답 메시지로 나가는 MQMessage의 correlation id는 요청으로 사용된 MQMessage의 correlation id와 동일하다.
-
아웃바운드 엔드포인트
구분 설명 oneway
거래에서 MQ 아웃바운드 룰이 호출될 때 해당 요청 메시지를 지정된 큐에 입력한다. 이때 입력되는 MQMessage의 correlation id는 거래의 GUID와 동일하다.
request-response
기본 동작 방식은 oneway와 동일하나 요청 메시지에 대한 응답 메시지를 받아야 할 경우에 request-response 모드를 사용한다.
request-response 모드로 동작할 경우 별도의 응답 큐를 설정해야 하며, 요청을 보낸 뒤 지속적으로 응답 큐에서 거래의 GUID를 메시지 아이디로 가지는 MQMessage를 일정 간격으로 polling한다.