You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "Suchitha Koneru (sukoneru)" <su...@cisco.com> on 2007/08/02 03:34:18 UTC

RE: Need help regarding ActiveMQ with Tomcat

In our application , there are two web apps and the inter web app
communication is via the active mq broker. Out application uses active
mq 4.1.1 , java 1.6 and  Tomcat5.5.20

1) The jndi resources for active mq can be specified in
Tomcat/conf/context.xml
           
<!-- active mq connection factory -->
<Resource
                 name="jms/ConnectionFactory"
                 auth="Container"
                 type="org.apache.activemq.ActiveMQConnectionFactory"
                 description="JMS Connection Factory"
                 factory="org.apache.activemq.jndi.JNDIReferenceFactory"

 
brokerURL="tcp://ipaddress:61616?trace=true&wireFormat.maxInactivityDura
tion=-1"    
  /> 


 the flag  wireFormat.maxInactivityDuration should be set to -1 because
, if there is no activity (exchange os messages via the broker for some
period of Time) , the broker automatically closes down the connection.



<!-- topics -->


 <Resource name="jms/TopicOne" 
    		  auth="Container" 
    		  type="org.apache.activemq.command.ActiveMQTopic" 
    		  description="the topic against which the client back
end will publish and server back end would subscribe"
 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
  	          physicalName="FOO1.BAR"/>        
        
        
      <Resource name="jms/TopicTwo" 
    		  auth="Container" 
    		  type="org.apache.activemq.command.ActiveMQTopic" 
    		  description="the topic against which the server back
end will publish and client back end would subscribe"
 
factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
  	          physicalName="FOO2.BAR"/>      
        
2) I have used broker configuration URI for the broker.  The alternative
approache  is using an activemq.xml file . If you use active.xml file ,
the broker url would be 
brokerURL="tcp://localhost?brokerConfig=xbean:file:../../activemq.xml  ,
provide the relative path to the activemq.xml file , starting from the
bin directory of Tomcat. I am assuming that you are using "startup.bat"
present in the bin directory to start the tomcat server.


 The pseudo code for starting the broker is 
     
         BrokerService broker = new BrokerService();
// the connector should have the same contents as the broker url
	
broker.addConnector("tcp://ipaddress:61616?trace=true&wireFormat.maxInac
tivityDuration=-1");

	broker.start();

3) You can place the code for starting the broker in a singleton class .
The Constructor of the singleTonClass should create the broker. There
should also be a  synchronized method  for shutting down the broker.
For reference let us call this class as ActiveMQBroker.java .Place this
class under shared/classes folder  and  also place  , the active mq jars
in shared/lib;

When your web app needs to communicate with the broker, it will Create
an instance of  single Ton class ActiveMQBroker  . The pseudo code to be
placed in web apps to connect to the broker is 


                 SingleTonClass.getInstance();
                  Ictx = new javax.naming.InitialContext();
			envContext = (Context)
Ictx.lookup("java:comp/env");
                TopicConnectionFactory  topicfactory
=(TopicConnectionFactory) conContext.lookup("jms/ConnectionFactory");
 
TopicConnection tConnection = topicfactory.createTopicConnection();

    // create session 

ActiveMQSession topicSession = (ActiveMQSession )
HConn.createSession(false, Session.AUTO_ACKNOWLEDGE);

	// create Topic 
Topic topic = (Topic)envContext.lookup(jms/TopicTwo);


                    // create either  a publisher or subscriber 
 
      topicSession.createSubscriber(topic);  

//In case of the subscriber , please implement the  MessageListner
Interface () 


4) You can also connect to the broker without using jndi resources.


Also these urls would be useful.
http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.h
tml

http://activemq.apache.org/broker-configuration-uri.html

http://fabien.carrion.free.fr/tomcat/jndi-jms-examples-howto.xml

http://activemq.apache.org/setting-up-activemq-with-tomcat-559.html

Thanks,
Suchitha.










  






 



 

-----Original Message-----
From: shubhendu_kumar@msn.com [mailto:shubhendu_kumar@msn.com] 
Sent: Wednesday, August 01, 2007 2:08 AM
To: Suchitha Koneru (sukoneru)
Subject: Need help regarding ActiveMQ with Tomcat

Hi,

Hope you are doing fine. Let me introduce myself first I am Shubhendu
Kumar Paul working on Java Platfrom. In my current project I am using
ActiveMQ, and able to run a simple console based application but when I
tried to implement the same at Tomcat 5.5, I am unable to configure it.
At ActiveMQ forum I saw your message, if you don't have any problem,
could you please tell me every configuration step by step or suggest me
from where I can found any sample web based active mq application? Or if
you have a small web based ActiveMQ Hello World! kind of application
could you please send it to me?

Thanks in Advance.

Regards,
Shubhendu Kumar Paul
e-mail: shubhendu_kumar@msn.com

RE: Need help regarding ActiveMQ with Tomcat

Posted by sediga <ar...@exmidxe.com>.
Thank you for this instruction - i wanted to clear a couple of things up if
that is ok. 

I have question mainly on ActiveMQBroker.java class.  Is this a standalone
class?  does it inherite from any class?  Do i need to follow a specific
interface?  

Do you have a complete example that you can share?

Let's say that I am getting a SOAP request, and I want to simply forward
that, how does I specify the topic?  There seems to be 2 topics that you
mention here, but how do i choose from one of these two or maybe many others
that I may want to publish to?  

for example: I get 10 SOAP requests, message1 goes to topic1, message2 to
topic2, etc...  Where can i embed this logic?

Thanks
Art




Suchitha Koneru (sukoneru) wrote:
> 
> In our application , there are two web apps and the inter web app
> communication is via the active mq broker. Out application uses active
> mq 4.1.1 , java 1.6 and  Tomcat5.5.20
> 
> 1) The jndi resources for active mq can be specified in
> Tomcat/conf/context.xml
>            
> <!-- active mq connection factory -->
> <Resource
>                  name="jms/ConnectionFactory"
>                  auth="Container"
>                  type="org.apache.activemq.ActiveMQConnectionFactory"
>                  description="JMS Connection Factory"
>                  factory="org.apache.activemq.jndi.JNDIReferenceFactory"
> 
>  
> brokerURL="tcp://ipaddress:61616?trace=true&wireFormat.maxInactivityDura
> tion=-1"    
>   /> 
> 
> 
>  the flag  wireFormat.maxInactivityDuration should be set to -1 because
> , if there is no activity (exchange os messages via the broker for some
> period of Time) , the broker automatically closes down the connection.
> 
> 
> 
> <!-- topics -->
> 
> 
>  <Resource name="jms/TopicOne" 
>     		  auth="Container" 
>     		  type="org.apache.activemq.command.ActiveMQTopic" 
>     		  description="the topic against which the client back
> end will publish and server back end would subscribe"
>  
> factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
>   	          physicalName="FOO1.BAR"/>        
>         
>         
>       <Resource name="jms/TopicTwo" 
>     		  auth="Container" 
>     		  type="org.apache.activemq.command.ActiveMQTopic" 
>     		  description="the topic against which the server back
> end will publish and client back end would subscribe"
>  
> factory="org.apache.activemq.jndi.JNDIReferenceFactory" 
>   	          physicalName="FOO2.BAR"/>      
>         
> 2) I have used broker configuration URI for the broker.  The alternative
> approache  is using an activemq.xml file . If you use active.xml file ,
> the broker url would be 
> brokerURL="tcp://localhost?brokerConfig=xbean:file:../../activemq.xml  ,
> provide the relative path to the activemq.xml file , starting from the
> bin directory of Tomcat. I am assuming that you are using "startup.bat"
> present in the bin directory to start the tomcat server.
> 
> 
>  The pseudo code for starting the broker is 
>      
>          BrokerService broker = new BrokerService();
> // the connector should have the same contents as the broker url
> 	
> broker.addConnector("tcp://ipaddress:61616?trace=true&wireFormat.maxInac
> tivityDuration=-1");
> 
> 	broker.start();
> 
> 3) You can place the code for starting the broker in a singleton class .
> The Constructor of the singleTonClass should create the broker. There
> should also be a  synchronized method  for shutting down the broker.
> For reference let us call this class as ActiveMQBroker.java .Place this
> class under shared/classes folder  and  also place  , the active mq jars
> in shared/lib;
> 
> When your web app needs to communicate with the broker, it will Create
> an instance of  single Ton class ActiveMQBroker  . The pseudo code to be
> placed in web apps to connect to the broker is 
> 
> 
>                  SingleTonClass.getInstance();
>                   Ictx = new javax.naming.InitialContext();
> 			envContext = (Context)
> Ictx.lookup("java:comp/env");
>                 TopicConnectionFactory  topicfactory
> =(TopicConnectionFactory) conContext.lookup("jms/ConnectionFactory");
>  
> TopicConnection tConnection = topicfactory.createTopicConnection();
> 
>     // create session 
> 
> ActiveMQSession topicSession = (ActiveMQSession )
> HConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
> 
> 	// create Topic 
> Topic topic = (Topic)envContext.lookup(jms/TopicTwo);
> 
> 
>                     // create either  a publisher or subscriber 
>  
>       topicSession.createSubscriber(topic);  
> 
> //In case of the subscriber , please implement the  MessageListner
> Interface () 
> 
> 
> 4) You can also connect to the broker without using jndi resources.
> 
> 
> Also these urls would be useful.
> http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.h
> tml
> 
> http://activemq.apache.org/broker-configuration-uri.html
> 
> http://fabien.carrion.free.fr/tomcat/jndi-jms-examples-howto.xml
> 
> http://activemq.apache.org/setting-up-activemq-with-tomcat-559.html
> 
> Thanks,
> Suchitha.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>   
> 
> 
> 
> 
> 
> 
>  
> 
> 
> 
>  
> 
> -----Original Message-----
> From: shubhendu_kumar@msn.com [mailto:shubhendu_kumar@msn.com] 
> Sent: Wednesday, August 01, 2007 2:08 AM
> To: Suchitha Koneru (sukoneru)
> Subject: Need help regarding ActiveMQ with Tomcat
> 
> Hi,
> 
> Hope you are doing fine. Let me introduce myself first I am Shubhendu
> Kumar Paul working on Java Platfrom. In my current project I am using
> ActiveMQ, and able to run a simple console based application but when I
> tried to implement the same at Tomcat 5.5, I am unable to configure it.
> At ActiveMQ forum I saw your message, if you don't have any problem,
> could you please tell me every configuration step by step or suggest me
> from where I can found any sample web based active mq application? Or if
> you have a small web based ActiveMQ Hello World! kind of application
> could you please send it to me?
> 
> Thanks in Advance.
> 
> Regards,
> Shubhendu Kumar Paul
> e-mail: shubhendu_kumar@msn.com
> 
> 

-- 
View this message in context: http://www.nabble.com/RE%3A-Need-help-regarding-ActiveMQ-with-Tomcat-tf4203615s2354.html#a12365971
Sent from the ActiveMQ - User mailing list archive at Nabble.com.