IBM MQ에 연결할 메시지 구동 Bean 배치
메시지 구동 Bean(MDB)를 사용하여 IBM MQ에 연결할 수 있습니다.
프로시저
- 다음과 같이 MDB 기능을 구성하십시오.
server.xml 파일에서 jmsMdb-3.2 및 wmqJmsClient-2.0 기능을 구성하여 Liberty 서버에서 MDB 지원을 사용으로 설정하십시오. JNDI 검색을 수행하려면, 다른 두 기능과 함께 jndi-1.0 기능도 추가해야 합니다.
<featureManager> <feature>jmsMdb-3.2</feature> <feature>wmqJmsClient-2.0</feature> <feature>jndi-1.0</feature> </featureManager>
wmqJmsClient-2.0 기능을 구성하여 사용자가 필수 JMS 자원을 정의하고 MDB가 메시징 엔진과 상호작용할 수 있도록 합니다.
참고: wmqJmsClient-2.0 기능은 JMS 1.1 및 JMS 2.0 스펙의 기능을 모두 지원합니다. 그러나 JMS 1.1 스펙을 준수하는 기능만 사용하려는 경우에는 wmqJmsClient-1.1을 사용하도록 선택할 수 있습니다. - server.xml 파일에 다음 항목을 추가하여 IBM MQ 자원 어댑터의 위치를 지정하십시오.
여기서, value 속성은 IBM MQ 자원 어댑터 파일, wmq.jmsra.rar에 대한 절대 경로를 지정합니다.<variable name="wmqJmsClient.rar.location" value="/path/to/wmq/rar/wmq.jmsra.rar"/>
지원되는 버전 및 wmq.jmsra.rar 파일 확보 방법에 대한 세부사항은 IBM MQ 기술 노트 1633761을 참조하십시오. Fix central에서 wmq.jmsra.rar 파일을 얻어서 설치하십시오.
- MDB가 특정 JMS 대상에 대해 리스너로 작동할 수 있도록 JMS 자원 어댑터를 사용하는 JCA 활성화 스펙을
구성하십시오. 다음은 MDB가 메시징 엔진과 상호작용하도록 구성할 수 있는 다른 방법입니다.
- 활성화 스펙 특성을 사용하여 MDB를 구성하십시오. MDB가 특성을 사용하여 특정 JMS 대상에 대해 청취할 수 있도록 server.xml 파일에서 특성을 정의할 수 있습니다.
<jmsActivationSpec id="JMSSample/JMSSampleMDB"> <properties.wmqJms destinationRef="jndi/MDBQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/> </jmsActivationSpec> <jmsQueue id="jndi/MDBQ" jndiName="jndi/MDBQ"> <properties.wmqJms baseQueueName="MYQ" baseQueueManagerName="myQM"/> </jmsQueue>
<destinationRef>는 <jmsQueue>의 ID를 참조합니다. <jmsQueue>의 ID가 언급되지 않는 경우 <destinationRef>는 <jmsQueue>의 <jndiName>을 지시해야 합니다.
참고: ID 값은 application name/module name/bean name 형식이어야 합니다.- application name은 배치되는 애플리케이션의 이름입니다(예: JMSSample). Bean이 EAR 파일 내에 패키징되는 경우에만 애플리케이션 이름이 적용됩니다. application.xml 배치 디스크립터에 의해 지정되지 않으면 application은 기본값으로 파일 이름 확장자 없이 EAR 파일의 기본 이름이 됩니다.
- module name은 Bean이 패키징되는 모듈의 이름입니다. 독립형 ejb-jar 파일 또는 WAR 파일에서 <module-name>은 기본값으로 파일 이름 확장자가 제거된 모듈의 기본 이름이 됩니다. EAR 파일에서 <module-name>은 기본값으로 파일 이름 확장자가 제거되었지만 디렉토리 이름은 포함된 모듈의 경로 이름이 됩니다. 기본 <module-name>은 ejb-jar.xml(ejb-jar 파일의 경우) 또는 web.xml(WAR 파일의 경우)의 모듈 이름 요소를 사용하여 대체할 수 있습니다.
- bean name은 엔터프라이즈 Bean의 ejb-name입니다. 어노테이션을 통해 정의된 엔터프라이즈 Bean의 경우, Bean 이름은 기본값으로 세션 Bean 클래스의 규정되지 않은 이름이 됩니다(MessageDriven 어노테이션의 name() 속성의 컨텐츠에 지정되지 않은 경우). ejb-jar.xml을 통해 정의된 엔터프라이즈 Bean의 경우, <ejb-name> 배치 디스크립터 요소에 지정됩니다.
- server.xml 파일에 정의된 활성화 스펙 특성과 함께 어노테이션을 사용합니다.
Liberty는 server.xml 파일에 정의된 활성화 스펙 특성과 함께 사용할 수 있는 MDB에 대한 어노테이션 정의를 지원합니다. 어노테이션을 사용하려면, 먼저 이전 단계에서 언급한 것처럼 활성화 스펙 특성을 정의하십시오. 그리고 MDB 각각에 대해, 사용자는 다음 예제에 표시된 것처럼 어노테이션을 정의할 수 있습니다.
@MessageDriven( name = "JMSSampleMDB", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "userName", propertyValue = "user1"), @ActivationConfigProperty(propertyName = "password", propertyValue = "user1pwd"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "jndi_INPUT_Q") } ) public class JMSSampleMDB implements MessageListener{ @TransactionAttribute(value = TransactionAttributeType.REQUIRED) public void onMessage(Message message) { } }
- EJB 바인딩 파일(ibm-ejb-jar-bnd.xml)을 사용합니다.
또한 이 바인딩 파일을 사용하여 메시징 엔진 연결을 위해 MDB에 필요한 자원 정보를 정의할 수 있습니다. EJB 바인딩 파일을 사용하는 경우, 활성화 스펙 특성 ID는 1단계에서 언급한 대로 application name/module name/bean name 형식일 필요는 없습니다.
server.xml에서 활성화 스펙 특성 정보를 추가하십시오.<jmsActivationSpec id="PriceChangeAS"> <properties.wmqJms destinationRef="jms/TriggerQ" transportType="CLIENT" queueManager="myQM" hostName="myHost" port="1414"/> </jmsActivationSpec> <jmsQueue id="jms/TriggerQ" jndiName="jms/TriggerQ"> <properties.wmqJms baseQueueName="Q1"/> </jmsQueue>
ibm-ejb-jar-bnd.xml 파일에서 다음 MDB 바인딩 정보를 추가하십시오.<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd" (http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_1.xsd%27) version="1.1"> <message-driven name="PriceChangeMDBBean"> <jca-adapter activation-spec-binding-name="PriceChangeAS" destination-binding-name="jms/TriggerQ" /> </message-driven> </ejb-jar-bnd>
참고: EJB 바인딩 파일을 사용할 때, ibm-ejb-jar-bnd.xml 파일의 activation-spec-binding-name 속성이 server.xml 파일에 지정되는 활성화 스펙 특성 ID 값을 가리켜야 합니다.
- 활성화 스펙 특성을 사용하여 MDB를 구성하십시오.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dep_msg_mdbwmq
파일 이름: twlp_dep_msg_mdbwmq.html