임베디드 메시징 서버에 연결할 메시지 구동 Bean 배치
메시지 구동 Bean(MDB)를 사용하여 임베디드 메시징 서버에 연결하십시오.
이 태스크 정보
MDB는 다음과 같은 두 가지 시나리오에서 Liberty 서버에 구성될 수 있습니다.
- MDB 및 메시징 엔진 모두 동일한 Liberty 서버에 있는 경우.
- MDB가 다른 Liberty 서버에서 실행 중인 원격 메시징 엔진에 연결되어
있는 경우.
프로시저
- 다음과 같이 MDB 기능을 구성하십시오.
server.xml 파일에서 jmsMdb-3.1 및 wasJmsClient-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 기능을 사용하도록 선택할 수 있습니다. - MDB가 특정 JMS 대상에 대해 리스너로 작동할 수 있도록 JMS 자원 어댑터를 사용하는 JCA 활성화 스펙을
구성하십시오. 다음은 MDB가 메시징 엔진과 상호작용하도록 구성할 수 있는 다른 방법입니다.
- 활성화 스펙 특성을 사용하여 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> 배치 디스크립터 요소에 지정됩니다.
- 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.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 값을 가리켜야 합니다.
- 활성화 스펙 특성을 사용하여 MDB를 구성하십시오.
상위 주제: Liberty 내에 메시지 구동 Bean 배치


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