2016-10-13 7 views
0

메시지를 모두 사용하기 위해 WMQ 및 Solace 메시징 프레임 워크에 연결하려고합니다. WMQ 용 리스너가 여러 개 있지만 다른 리스너를 연결 어댑터/응용 프로그램에 바인드하려고 할 때 응용 프로그램 단지 마지막 리스너가 위안리소스 어댑터 바인딩 Solace, WMQ, JBOSS EAP 6.4

참조 파일 JBOSS이 ListenerX이 wmq.jmra.rar과 실패에 연결하려고이 경우에 따라서

<?xml version="1.1" encoding="UTF-8"?> 
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:c="urn:clustering:1.0" xmlns:r="urn:resource-adapter-binding" 
    xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd" 
    version="3.1" impl-version="2.0"> 
    <enterprise-beans> 

     <message-driven> 
      <ejb-name>CoreMessageEventListener</ejb-name> 
      <ejb-class>com.slohiya.ListenerA</ejb-class> 
      <activation-config> 
       <activation-config-property> 
        . 
        . 
        . 
       </activation-config-property> 
      </activation-config> 
     </message-driven> 
     <message-driven> 
      <ejb-name>ListenerB</ejb-name> 
      <ejb-class>com.slohiya.ListenerB</ejb-class> 
      <activation-config> 
       <activation-config-property> 
        . 
        . 
        . 
       </activation-config-property> 
      </activation-config> 
     </message-driven> 


     <message-driven> 
      <ejb-name>ListenerX</ejb-name> 
      <ejb-class>com.slohiya.ListenerX</ejb-class> 

      <activation-config> 
       <activation-config-property> 
        . 
        . 
        . 
       </activation-config-property> 
      </activation-config> 

     </message-driven> 

     <message-driven> 
      <ejb-name>ListenerY</ejb-name> 
      <ejb-class>com.slohiya.ListenerY</ejb-class> 

      <activation-config> 
       <activation-config-property> 
        . 
        . 
        . 
       </activation-config-property> 
      </activation-config> 
     <message-driven> 

    </enterprise-beans> 

    <assembly-descriptor> 
     <r:resource-adapter-binding> 
      <ejb-name>ListenerA</ejb-name> 
      <r:resource-adapter-name>wmq.jmsra.rar</r:resource-adapter-name> 
     </r:resource-adapter-binding> 
    </assembly-descriptor> 
    <assembly-descriptor> 
     <r:resource-adapter-binding> 
      <ejb-name>ListenerB</ejb-name> 
      <r:resource-adapter-name>wmq.jmsra.rar</r:resource-adapter-name> 
     </r:resource-adapter-binding> 
    </assembly-descriptor> 

    <assembly-descriptor> 
     <r:resource-adapter-binding> 
      <ejb-name>ListenerX</ejb-name> 
      <r:resource-adapter-name>com.solacesystems.ra</r:resource-adapter-name> 
     </r:resource-adapter-binding> 
    </assembly-descriptor> 

    <assembly-descriptor> 
     <r:resource-adapter-binding> 
      <ejb-name>ListenerY</ejb-name> 
      <r:resource-adapter-name>com.solacesystems.ra</r:resource-adapter-name> 
     </r:resource-adapter-binding> 
    </assembly-descriptor> 

</jboss:ejb-jar> 

에 바인더 제본지고로서

을 시작하지 않습니다.

standalone.xml 기본 어댑터는 wmq이지만 stil입니다. jboss-ejb3.xml에서이를 대체 할 수 있어야하며 위의 어댑터에만 리스너를 사용하면 정상적으로 작동합니다.

<mdb> 
       <resource-adapter-ref resource-adapter-name="wmq.jmsra.rar"/> 
       <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> 
      </mdb> 

문제가 발생합니다. 리소스 어댑터로 solers를 사용하여 여러 수신기를 사용하려고 할 때만 문제가 발생합니다.

귀하의 도움에 감사드립니다. 감사.

+0

, 당신은 것을 시도 할 수 있습니다 ? 또한, ejb-jar.xml은 무엇이며 MDB 소스 안에 주석이 있습니까? –

+0

답장을 보내 주셔서 감사합니다. 나는 이것을 시도하고이 포럼에서 업데이트 할 것이다 –

+0

이것은 주석과도 잘 작동하지 않는다. 나는이 프로젝트 내에서 프로젝트의 jboss-ejb3.xml 파일에 solers와 adapter를위한 리스너를위한 별도의 프로젝트를 생성해야했다. 또한, 별도의 대기열을 청취하는 2 명의 solace 리스너에 대해 solace adapter를 연관/바인드 할 수 없습니다. –

답변

1

이제 어셈블리 설명자를 사용하여 작동하도록했습니다. 그 문제는 여러 개의 <assembly-descriptor> 섹션이있어 JBoss에서 이상한 동작이 발생한다고 생각합니다. 여기

이 샘플 JBoss에 ejb3.xml이다 : 나는 MDB 내부 "@ResourceAdapter (값 ="com.solacesystems.ra ")"주석 아무 문제도 없어

<?xml version="1.1" encoding="UTF-8"?> 
<jboss xmlns:jboss="http://www.jboss.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="urn:clustering:1.0" 
    xmlns:r="urn:resource-adapter-binding" 
    xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd" 
    version="3.1" impl-version="2.0"> 

    <enterprise-beans> 
     <message-driven> 
      <ejb-name>MDB1</ejb-name> 
      <ejb-class>com.test.MDB1</ejb-class> 
      <activation-config> 
       ... 
      </activation-config> 
     </message-driven> 
     <message-driven> 
      <ejb-name>MDB2</ejb-name> 
      <ejb-class>com.test.MDB2</ejb-class> 

      <activation-config> 
       ... 
      </activation-config> 
     </message-driven> 
    </enterprise-beans> 

    <assembly-descriptor> 
     <r:resource-adapter-binding> 
      <ejb-name>MDB1</ejb-name> 
      <r:resource-adapter-name>com.solacesystems.ra</r:resource-adapter-name> 
     </r:resource-adapter-binding> 

     <r:resource-adapter-binding> 
      <ejb-name>MDB2</ejb-name> 
      <r:resource-adapter-name>com.solacesystems.ra</r:resource-adapter-name> 
     </r:resource-adapter-binding> 
    </assembly-descriptor> 
</jboss> 
+0

감사합니다. Russel. 당신의 제안에 따라 작동했습니다. –