IBM MQ에 연결할 메시지 구동 Bean 배치

메시지 구동 Bean(MDB)를 사용하여 IBM MQ에 연결할 수 있습니다.

프로시저

  1. 다음과 같이 MDB 기능을 구성하십시오.

    server.xml 파일에서 jmsMdb-3.2wmqJmsClient-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 기능을 사용하도록 선택할 수 있습니다.
  2. server.xml 파일에 다음 항목을 추가하여 IBM MQ 자원 어댑터의 위치를 지정하십시오.
    <variable name="wmqJmsClient.rar.location" value="/path/to/wmq/rar/wmq.jmsra.rar"/>
    여기서, value 속성은 IBM MQ 자원 어댑터 파일, wmq.jmsra.rar에 대한 절대 경로를 지정합니다.

    지원되는 버전 및 wmq.jmsra.rar 파일 확보 방법에 대한 세부사항은 IBM MQ 기술 노트 1633761을 참조하십시오. Fix central에서 wmq.jmsra.rar 파일을 얻어서 설치하십시오.

  3. MDB가 특정 JMS 대상에 대해 리스너로 작동할 수 있도록 JMS 자원 어댑터를 사용하는 JCA 활성화 스펙을 구성하십시오. 다음은 MDB가 메시징 엔진과 상호작용하도록 구성할 수 있는 다른 방법입니다.
    1. 활성화 스펙 특성을 사용하여 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 파일의 경우)의 module-name 요소를 사용하여 대체될 수 있습니다.
      • bean name은 엔터프라이즈 Bean의 ejb-name입니다. 어노테이션을 통해 정의된 엔터프라이즈 Bean의 경우, Bean 이름은 기본값으로 세션 Bean 클래스의 규정되지 않은 이름이 됩니다(MessageDriven 어노테이션의 name() 속성의 컨텐츠에 지정되지 않은 경우). ejb-jar.xml을 통해 정의된 엔터프라이즈 Bean의 경우, 이는 <ejb-name> 배치 디스크립터 요소에 지정됩니다.
    2. server.xml 파일에 정의된 활성화 스펙 특성과 함께 어노테이션을 사용합니다.

      Libertyserver.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) {
      	 }
      }
    3. 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 값을 가리켜야 합니다.

주제의 유형을 표시하는 아이콘 태스크 주제

파일 이름: twlp_dep_msg_mdbwmq.html