activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From denez <iboud...@yahoo.fr>
Subject RE: Error on starting QueueConnection
Date Mon, 20 Aug 2007 07:52:17 GMT

I try your both sample, but it still doesn't work.
I try to move my project directory because originally contains space. but
still have the same error.
I probaly miss something in my configuration or someting is wrong in my
code.
I don't understand.
So, could you give me or send me a sample web application that use ActiveMQ
?
Thanks in advance.
Regards,

Denez


Suchitha Koneru (sukoneru) wrote:
> 
> The JMS  documentation suggests that we start the connection after
> creating the receiver and registering it with a message listener. Please
> look at point no: 6 in the section "Client to Consume Messages"
> http://java.sun.com/developer/technicalArticles/Ecommerce/jms/index.html
>  
> 
> -----Original Message-----
> From: Dave Carlson [mailto:gshpsrule@charter.net] 
> Sent: Friday, August 17, 2007 7:58 AM
> To: users@activemq.apache.org
> Cc: Suchitha Koneru (sukoneru)
> Subject: RE: Error on starting QueueConnection
> 
> Are you sure about the ordering? It seems odd that you would want to
> start the flow of messages across the connection before you have created
> a receiver. Looking at ActiveMQ example code in ConsumerTool, they are
> creating the receiver first...
> 
> 			ActiveMQConnectionFactory connectionFactory =
> new ActiveMQConnectionFactory(user, password, url);
> 			Connection connection =
> connectionFactory.createConnection();
> 			if (durable && clientId != null &&
> clientId.length()>0 && !"null".equals(clientId) ) {
> 				connection.setClientID(clientId);
> 			}
> 			connection.setExceptionListener(this);
> 			connection.start();
> 
> 			session = connection.createSession(transacted,
> ackMode);
> 			if (topic) {
> 				destination =
> session.createTopic(subject);
> 			} else {
> 				destination =
> session.createQueue(subject);
> 			}
> 
> 			replyProducer = session.createProducer(null);
> 	
> replyProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
> 
> 			MessageConsumer consumer = null;
> 			if (durable && topic) {
> 				consumer =
> session.createDurableSubscriber((Topic) destination, consumerName);
> 			} else {
> 				consumer =
> session.createConsumer(destination);
> 			}
> 
> ---- "Suchitha Koneru (sukoneru)" <sukoneru@cisco.com> wrote: 
>> Start the queue connection after creating the receiver .  Change the 
>> order and see. It is always recommended that the connection is started
> 
>> after creating the receiver . The following should be the order. Give 
>> it a try.
>> 
>>   ActiveMQQueueReceiver aqr =
>>  (ActiveMQQueueReceiver)qs.createReceiver(q) ; 
>>                 aqr.setMessageListener(new
>>  BatchReceiverTechnicalService()) ;
>>   aqc.start() ;
>> 
>> Also I noticed that in the jndi resource for jms/Connectionfactory  
>> you are not using max.Inactivity flag for the broker url.
>> But while adding connector to the broker you are using this flag, 
>> please use the same broker url through out for consistency.
>> 
>> 
>> -----Original Message-----
>> From: denez [mailto:ibouddha@yahoo.fr]
>> Sent: Thursday, August 16, 2007 7:03 AM
>> To: users@activemq.apache.org
>> Subject: Re: Error on starting QueueConnection
>> 
>> 
>> Do you already have this type of error ?
>> Do i forget something in my configuration.
>> I use :
>> apache-activemq-4.1.1.jar
>> Tomcat 5.5.23
>> jdk1.5.0_07
>> 
>> Could you tell me if something is wrong !
>> Here is my context declaration in Tomcat :
>> 
>> <Context path="/jms" reloadable="true" docBase="C:\myJMSApp"
>> workDir="C:\myJMSApp\work" >
>> 	<Resource
>>         	name="jms/ConnectionFactory"
>>         	auth="Container"
>>         	type="org.apache.activemq.ActiveMQConnectionFactory"
>>         	description="JMS Connection Factory"
>>         	factory="org.apache.activemq.jndi.JNDIReferenceFactory"
>>         	brokerURL="tcp://localhost:61616"
>>         	brokerName="LocalActiveMQBroker"
>> 	        useEmbeddedBroker="true"/>
>> 
>>     	<Resource name="jms/batch"
>>         	auth="Container"
>>         	type="org.apache.activemq.command.ActiveMQQueue"
>>         	factory="org.apache.activemq.jndi.JNDIReferenceFactory"
>>         	physicalName="batch"/>
>> </Context>
>> 
>> Thanks in advance for all reply, help / answer.
>> Regards,
>> 
>> Denez
>> 
>> 
>> denez wrote:
>> > 
>> > Hi all,
>> > 
>> > I got the same error trying to create a sender !
>> > A very strange thing appear because there is no exception throw ! 
>> > Just
>> 
>> > nothing happened and the rest of my code is never (i suspect)
>> excecuted.
>> > 
>> > Could you help me, or ask me if something is not clear.
>> > Thanks in advance,
>> > Regards,
>> > 
>> > Denez
>> > 
>> > 
>> > denez wrote:
>> >> 
>> >> I search around to find my error and find that you should use 
>> >> ActiveMQConnection.
>> >> Now i can start the connection but have a same problem will trying 
>> >> to
>> 
>> >> createReceiver.
>> >> See the code below (previous + modification) :
>> >> 
>> >> public class ActiveMQBrokerStartListener implements 
>> >> ServletContextListener {
>> >> 	
>> >>      BrokerService broker = new BrokerService();
>> >>      ActiveMQConnection aqc = null ;
>> >> 	
>> >>      public void contextInitialized(ServletContextEvent arg0) {
>> >>         try{
>> >>               
>> >>
>> broker.addConnector("tcp://localhost:61616?trace=true&wireFormat.maxIn
>> ac
>> tivityDuration=-1");
>> >>                broker.start();
>> >>                InitialContext ic = new InitialContext();
>> >>                Context ctx = (Context) ic.lookup("java:comp/env");
>> >>                ActiveMQConnectionFactory acf =
>> >>                    
>> >> (ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory");
>> >>                aqc =
> (ActiveMQConnection)acf.createQueueConnection();
>> >>                aqc.start() ;
>> >>                ActiveMQQueueSession qs =
>> >>                     
>> >> (ActiveMQQueueSession)aqc.createQueueSession(false,
>> >> Session.CLIENT_ACKNOWLEDGE) ;
>> >>                ActiveMQQueue q =
>> (ActiveMQQueue)ctx.lookup("jms/batch");
>> >>                ActiveMQQueueReceiver aqr =
>> >> (ActiveMQQueueReceiver)qs.createReceiver(q) ; // ERROR LINE
>> >>                aqr.setMessageListener(new
>> >> BatchReceiverTechnicalService()) ;
>> >>         }catch(Exception e){
>> >>                System.err.println(e.getMessage());
>> >>                e.printStackTrace();
>> >>                throw new RuntimeException(e);
>> >>         }
>> >>      }
>> >> 
>> >>      public void contextDestroyed(ServletContextEvent arg0) {
>> >>                try{
>> >>                               aqc.close() ;
>> >>                               //qc.close() ;
>> >>                               broker.stop();
>> >>                }catch(Exception e){
>> >>                               System.err.println(e.getMessage());
>> >>                               e.printStackTrace();
>> >>                               throw new RuntimeException(e);
>> >>                }
>> >>      }
>> >> }
>> >> 
>> >> What is wrong ??
>> >> Why i can not create a Receiver ?
>> >> 
>> >> Thanks in advance
>> >> Regards,
>> >> Denez
>> >> 
>> >> 
>> >> 
>> >> 
>> >> denez wrote:
>> >>> 
>> >>> Hi all,
>> >>> 
>> >>> I would like to start a broker and Activate a MessageListener on 
>> >>> startup of my webApp.
>> >>> I made all the needed configuration to have a
>> ServletContextListener.
>> >>> I can debug inside my ServletContextListener implementation named
> :
>> >>> ActiveMQBrokerStartListener.
>> >>> You can see the code of it below :
>> >>> 
>> >>> public class ActiveMQBrokerStartListener implements 
>> >>> ServletContextListener {
>> >>>      BrokerService broker = new BrokerService();
>> >>>      QueueConnection qc = null ;
>> >>> 	
>> >>>      public void contextInitialized(ServletContextEvent arg0) {
>> >>>         try{
>> >>>        	      
>> >>>
>> broker.addConnector("tcp://localhost:61616?trace=true&wireFormat.maxIn
>> ac
>> tivityDuration=-1");
>> >>>                broker.start();
>> >>>                InitialContext ic = new InitialContext();
>> >>>                Context ctx = (Context) ic.lookup("java:comp/env");
>> >>>                ActiveMQConnectionFactory cf =
>> >>>                            
>> >>> ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory");
>> >>>                qc = (QueueConnection) cf.createQueueConnection();
>> >>>                qc.start() ;
>> >>>                QueueSession qs = qc.createQueueSession(false,
>> >>> Session.CLIENT_ACKNOWLEDGE) ;
>> >>>                Queue q = (Queue)ctx.lookup("jms/batch");
>> >>>                QueueReceiver qr = qs.createReceiver(q) ;
>> >>>                qr.setMessageListener(new Receiver()) ;
>> >>>         }catch(Exception e){
>> >>>                System.err.println(e.getMessage());
>> >>>                e.printStackTrace();
>> >>>                throw new RuntimeException(e);
>> >>>         }
>> >>>      }
>> >>> 
>> >>>      public void contextDestroyed(ServletContextEvent arg0) {
>> >>>         try{
>> >>>                qc.close() ;
>> >>>                broker.stop();
>> >>>         }catch(Exception e){
>> >>>                System.err.println(e.getMessage());
>> >>>                e.printStackTrace();
>> >>>                throw new RuntimeException(e);
>> >>>         }
>> >>>      }
>> >>> }
>> >>> 
>> >>> I place a breakpoint on the line that should create a
> QueueSession.
>> >>> But never enter in it. If i place a breakpoint on the ligne that 
>> >>> createQueueConnection i have it.
>> >>> So the problem is on the qc.start() ; If i inspect the 
>> >>> QueueConnection i can see that the started=false as normal.
>> >>> 
>> >>> What is wrong on my code ?
>> >>> Could you help me, or tell me what you think about this ?
>> >>> 
>> >>> Regards,
>> >>> Denez
>> >>> 
>> >> 
>> >> 
>> > 
>> > 
>> 
>> --
>> View this message in context:
>> http://www.nabble.com/Error-on-starting-QueueConnection-tf4278515s2354
>> .h
>> tml#a12182022
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> 
> 

-- 
View this message in context: http://www.nabble.com/Error-on-starting-QueueConnection-tf4278515s2354.html#a12231481
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message