Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  •  Add the JMS Implementaiton libraries under your Wildfly classpath : under directory [wildfly installation]\modules\system\layers\base\custom, add a directory bridge. Inside bridge add directory main. Inside main, add module.xml document bearing information on the jar you intend to include. In our case, we are having a bridge between ActiveMQ and Weblogic JMS brokers. Hence we will add the following jars : activemq-all-5.11.1.jar (you can find it under ActiveMQ 5.11.1 directory), and wlthint3client.jar (you can find it under [Oracle Weblogic 12.1.3 installation]\Middleware\Oracle_Home\wlserver\server\lib).

...

</resources>   

<dependencies>       

        <module name="javax.api"/>       

        <module name="sun.jdk" export="false" services="import">            <exports> 

             <exports>               

                  <include-set>                   

                      <path name="sun/security/acl"/>                 

                      <path name="META-INF/services"/>   

              <   </include-set>           

            </exports>       

        </module>       

        <module name="com.sun.xml.bind" />   

        <module name="org.omg.api"/>   

    <module    <module name="javax.ejb.api" export="false"   />     

    <module    <module name="javax.transaction.api"  export="false" /> 

      <module  <module name="javax.jms.api"  export="false" />        <module

       <module name="javax.xml.stream.api" export="false"  />     

      <module  <module name="org.picketbox" optional="true"/>     

  <module      <module name="javax.servlet.api" optional="true"/>        <module

       <module name="org.jboss.logging" optional="true"/>       

      <module  <module name="org.jboss.as.web" optional="true"/>        <module

       <module name="org.jboss.as.ejb3" optional="true"/>       

<module        <module name="org.hornetq" /> 

  </dependencies></module>dependencies>


</module>

  • setup the embedded Hornet Broker under Wildfly 8.2.0. Setup the appropiate bridges. Under standalone.xml, the messaging subsystem :


        <subsystem xmlns="urn:jboss:domain:messaging:2.0">       

                          <hornetq-server>               

                          <journal-file-size>102400</journal-file-size>
                          <connectors>                   

                               <http-connector name="http-connector" socket-binding="http">   

                                     <param key="http-upgrade-endpoint" value="http-acceptor"/>                   

                               </http-connector>                   

                               <http-connector name="http-connector-throughput" socket-binding="http"> 

                                    <param key="http-upgrade-endpoint" value="http-acceptor-throughput"/>   

                                    <param key="batch-delay" value="50"/>     

                               </http-connector>                   

                               <in-vm-connector name="in-vm" server-id="0"/> 

                       </connectors>
                <acceptors>               

                <http-acceptor http-listener="default" name="http-acceptor"/>     

                <http-acceptor http-listener="default" name="http-acceptor-throughput">               

                       <param key="batch-delay" value="50"/>           

                       <param key="direct-deliver" value="false"/>             

                </http-acceptor>           

                <in-vm-acceptor name="in-vm" server-id="0"/>               

                </acceptors>
                <security-settings>         

                        <security-setting match="#">           

                              <permission type="send" roles="guest"/>   

                              <permission type="consume" roles="guest"/>               

                              <permission type="createNonDurableQueue" roles="guest"/>     

                              <permission type="deleteNonDurableQueue" roles="guest"/>       

                      </security-setting>           

               </security-settings>
                <address-settings>     

                       <address-setting match="#">                       

                       <dead-letter-address>

                         jms.queue.DLQ

                        </dead-letter-address>                       

                       <expiry-address>jms.queue.ExpiryQueue</expiry-address>                       

                       <max-size-bytes>10485760</max-size-bytes>                       

                       <page-size-bytes>2097152</page-size-bytes>                       

                        <message-counter-history-day-limit>10</message-counter-history-day-limit>                   

                 </address-setting>               

                </address-settings>
                <jms-connection-factories>                   

                           <connection-factory name="InVmConnectionFactory">                       

                                     <connectors>                           

                                           <connector-ref connector-name="in-vm"/>                       

                                     </connectors>                       

                                     <entries>                           

                                           <entry name="java:/ConnectionFactory"/>                       

                                      </entries>                   

                           </connection-factory>                   

                        <connection-factory name="RemoteConnectionFactory">                       

                                      <connectors>                           

                                            <connector-ref connector-name="http-connector"/>                       

                                      </connectors>                       

                                      <entries>                           

                                             <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>   

                                     </entries>                   

                         </connection-factory>                   

                         <pooled-connection-factory name="hornetq-ra"> 

                                        <transaction mode="xa"/>         

                                       <connectors>                           

                                             <connector-ref connector-name="in-vm"/>                       

                                       </connectors>                       

                                       <entries>                           

                                                    <entry name="java:/JmsXA"/>                           

                                                            <entry name="java:jboss/DefaultJMSConnectionFactory"/>                       

                                                     </entries>                   

                        </pooled-connection-factory>               

                 </jms-connection-factories>
                <jms-destinations>                   

                               <jms-queue name="ExpiryQueue">                       

                                            <entry name="java:/jms/queue/ExpiryQueue"/>                   

                               </jms-queue>                   

                              <jms-queue name="DLQ">                       

                                           <entry name="java:/jms/queue/DLQ"/>                   

                              </jms-queue>                   

                              <jms-queue name="dfQueue">                       

                                              <entry name="jms/dfQueue"/> 

                                             <entry name="java:jboss/exported/jms/dfQueue"/> 

                              </jms-queue>                   

                              <jms-queue name="bridge">                       

                                              <entry name="jms/queue/bridge"/>                       

                                               <entry name="java:jboss/exported/jms/queue/bridge"/>                   

                                </jms-queue>               

                  </jms-destinations>           

             </hornetq-server>
            <jms-bridge name="outgoing-msg-bridge" module="custom.bridge"> 

                          <source>                   

                                  <connection-factory name="ConnectionFactory"/>                   

                                  <destination name="jms/queue/bridge"/>                   

                                  <context>                       

                                         <property key="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>                       

                                         <property key="java.naming.provider.url" value="tcp://localhost:61616?jms.rmIdFromConnectionId=true"/>                   

                                  </context>               

                          </source>               

                          <target>                   

                                    <connection-factory name="ConnectionFactory"/>                   

                                              <destination name="jms/queue/bridge"/>                   

                                               <context>                       

                                                        <property key="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/>                       

                                                        <property key="java.naming.provider.url" value="t3://127.0.0.1:7001"/>                       

                                                        <property key="java.naming.provider.principal" value="xxx"/>                       

                                                        <property key="java.naming.provider.credential" value="xxx"/>                   

                                               </context>               

                             </target>               

                              <quality-of-service>AT_MOST_ONCE</quality-of-service>               

                              <failure-retry-interval>10000</failure-retry-interval>               

                              <max-retries>-1</max-retries>               

                              <max-batch-size>500</max-batch-size>               

                              <max-batch-time>500</max-batch-time>               

                              <add-messageID-in-header>true</add-messageID-in-header>           

                       </jms-bridge>           

                       <jms-bridge name="ingoing-msg-bride" module="custom.bridge">               

                                  <source>                   

                                          <connection-factory name="ConnectionFactory"/>                   

                                         <destination name="jms/dfQ"/>                   

                                         <context>                       

                                                   <property key="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/>                       

                                                              <property key="java.naming.provider.url" value="t3://127.0.0.1:7001"/>                       

                                                              <property key="java.naming.provider.principal" value="xxx"/>                       

                                                              <property key="java.naming.provider.credential" value="xxx"/>                   

                                                    </context>           

                                   </source>               

                                   <target>                   

                                             <connection-factory name="ConnectionFactory"/>                 

                                                 <destination name="jms/dfQ"/>                   

                                                  <context>           

                                                          <property key="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>                       

                                                          <property key="java.naming.provider.url" value="tcp://localhost:61616?jms.rmIdFromConnectionId=true"/>                   

                                                   </context>    

                                 </target>           

                        <quality-of-service>AT_MOST_ONCE</quality-of-service>               

                        <failure-retry-interval>10000</failure-retry-interval>   

                        <max-retries>-1</max-retries>               

                        <max-batch-size>500</max-batch-size>               

                        <max-batch-time>500</max-batch-time> 

                        <add-messageID-in-header>true</add-messageID-in-header>         

                  </jms-bridge>
          </subsystem>