ActiveMQ

From Resin 3.0

Jump to: navigation, search
40px-Edit-clear.png This article requires cleanup and may refer to a legacy version of Resin.

Please visit http://www.caucho.com/documentation/ for the most up-to-date documentation.

See Also

General documentation is available about Resin Messaging.

JCA

Resin, ActiveMQ and JCA

ActiveMQ can be configured in Resin using ActiveMQ's JCA adapter. The .rar file is in apache-activemq-5.0.0/lib/options/activemq-rar-5.0.0.rar

In the resin.conf, you'll need to add a <resource-deploy> tag to tell Resin where to look for resources:

  <resin xmlns="http://caucho.com/ns/resin">
    <cluster id="">
        <host id="">
           <resource-deploy path="deploy"/>
            ...
         </host>
     </cluster>
  </resin>

Then, in your resin-web.xml, you'll need to configure the connector. It will look like:

  <web-app xmlns="http://caucho.com/ns/resin">
    
     <resource-adapter uri="activemq:">
        <init server-url="vm://localhost"/>
     </resource-adapter>

     <connection-factory uri="activemq:" name="activemq"/>
 
     <jms-queue uri="activemq:" name="test">
         <init physical-name="queue.test"/>
     </jms-queue>
  </web-app>
  • The <resource-adapter> configures a JCA resource-adapter.
  • The uri="activemq:" is an alias for class="org.apache.activemq.ra.ActiveMQResourceAdapter" (contained in resin-support.jar)
  • The <init> block configures the resource adapter parameters.
  • The <connection-factory> configures the outbound factory
  • The <bean> configures the Queue (i.e. the adminobject)
package demo;

import javax.jms.*;
import javax.servlet.*;
import javax.webbeans.*;

public class DemoServlet extends GenericServlet {
  @In ConnectionFactory _factory;
  @Named("test") Queue _queue;

  public void service(...)
  {
    ...
    Connection conn = _factory.createConnection();
    Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    session.send(_queue, session.createTextMessage("test"));
    ...
  }
}
Personal tools