임베디드 메시징 서버에 연결할 메시지 구동 Bean 배치

메시지 구동 Bean(MDB)를 사용하여 임베디드 메시징 서버에 연결하십시오.

이 태스크 정보

MDB는 다음과 같은 두 가지 시나리오에서 Liberty 서버에 구성될 수 있습니다.
  • MDB 및 메시징 엔진 모두 동일한 Liberty 서버에 있는 경우.
  • MDB가 다른 Liberty 서버에서 실행 중인 원격 메시징 엔진에 연결되어 있는 경우.
    다이어그램은 MDB에 대한 두 가지 구성 시나리오를 묘사합니다.
첫 번째 시나리오는 메시징 엔진과 MDB 모두 동일한 Liberty 서버에 있는
경우입니다. 두 번째 시나리오는 다른 서버에 상주하는 메시징 엔진에 MDB가
연결되어 있는 경우입니다.

프로시저

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

    server.xml 파일에서 jmsMdb-3.1wasJmsClient-2.0 기능을 구성하여 Liberty 서버에서 MDB 지원을 사용으로 설정하십시오. JNDI 검색을 수행하려면, 다른 두 기능과 함께 jndi-1.0 기능도 추가해야 합니다.

    <featureManager>
         <feature>jmsMdb-3.1</feature>
         <feature>wasJmsClient-2.0</feature>
         <feature>jndi-1.0</feature>
    </featureManager>

    wasJmsClient-2.0 기능을 구성하여 사용자가 필수 JMS 자원을 정의하고 MDB가 메시징 엔진과 상호작용할 수 있도록 합니다.

    중요사항: wasJmsClient-2.0 기능은 JMS 1.1과 JMS 2.0 스펙 모두의 기능을 지원합니다. 그러나 JMS 1.1 스펙을 준수하는 기능만 사용하려는 경우 wasJmsClient-1.1 기능을 사용하도록 선택할 수 있습니다.
  2. MDB가 특정 JMS 대상에 대해 리스너로 작동할 수 있도록 JMS 자원 어댑터를 사용하는 JCA 활성화 스펙을 구성하십시오. 다음은 MDB가 메시징 엔진과 상호작용하도록 구성할 수 있는 다른 방법입니다.
    1. 활성화 스펙 특성을 사용하여 MDB를 구성하십시오.
      MDB가 특성을 사용하여 특정 JMS 대상에 대해 청취할 수 있도록 server.xml 파일에서 특성을 정의할 수 있습니다.
      <jmsActivationSpec id="JMSSample/JMSSampleMDB">
           <properties.wasJms destinationRef="jndi/MDBQ"  />
      </jmsActivationSpec>
      
      <jmsQueue id="jndi/MDBQ" jndiName="jndi/MDBQ">
           <properties.wasJms queueName="Q1"/>
      </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> 배치 디스크립터 요소에 지정됩니다.
    2. 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) {
      	 }
      }
    3. EJB 바인딩 파일(ibm-ejb-jar-bnd.xml)을 사용합니다.

      또한 이 바인딩 파일을 사용하여 메시징 엔진 연결을 위해 MDB에 필요한 자원 정보를 정의할 수 있습니다. EJB 바인딩 파일을 사용하는 경우, 활성화 스펙 특성 ID는 1단계에서 언급한 대로 application name/module name/bean name 형식일 필요는 없습니다.

      server.xml에서 활성화 스펙 특성 정보를 추가하십시오.
      <jmsActivationSpec id="PriceChangeAS">
           <properties.wasJms destinationRef="jms/TriggerQ" />
      </jmsActivationSpec>
      
      <jmsQueue id="jms/TriggerQ" jndiName="jms/TriggerQ">
           <properties.wasJms queueName="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 값을 가리켜야 합니다.

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



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dep_msg_mdbsib
파일 이름: twlp_dep_msg_mdbsib.html