You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by denez <ib...@yahoo.fr> on 2007/08/16 11:26:56 UTC

Error on starting QueueConnection

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.maxInactivityDuration=-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.html#a12178078
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
in the Tomcat console when i pass on the line :
ActiveMQQueueReceiver aqr =  (ActiveMQQueueReceiver)qs.createReceiver(q) ;
i've got the error :
SERIOUS : error starting context /jms an that all ??

Could you help me to deal with this error ???

Thanks in advance,
Regards,

Denez


denez wrote:
> 
> 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.maxInactivityDuration=-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.maxInactivityDuration=-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.html#a12182222
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
Finally, i build a simple sample who works.
Then i include my entire old project in it step by step.
So, the main problem i think was due to a classpath eror.
Indeed, i have try a lot a thing in my project so include a lot of libraries
in the classpath.
No the problem is solved.
Thanks you for your help and answers.

Regards,
Denez



denez wrote:
> 
> New test done ! I have put this code into my first project.
> If i try to create a Connection, a Session and a Consumer there is no
> problem at all.
> But if i create a QueueConnection, a QueueSession and a QueueReceiver i
> got the "error".
> the QueueConnection is corretly create but the QueueSession not.
> What is the difference between Connection and QueueConnection ?
> What is the difference between Consumer and QueueReceiver ?
> 
> thanks in advance,
> Regards,
> 
> Denez
> 
> 
> denez wrote:
>> 
>> Here is my new investigation :
>> I create a new project!
>> I only implement one class which implements ServletContextListener and
>> MessageListener, and wrote this so simple code : 
>> 
>> public class ActiveMQBrokerStartListener implements
>> ServletContextListener, MessageListener {
>> 	BrokerService broker = new BrokerService();
>> 	private String url="tcp://localhost:61616";
>> 	private Connection connection;
>> 	private Session session;
>> 	private Queue aQueue ;
>> 	
>> 	public void contextInitialized(ServletContextEvent arg0) {
>> 		try {
>> 			broker.addConnector(url) ;
>> 			broker.start();
>> 			
>> 			ActiveMQConnectionFactory factory = new
>> ActiveMQConnectionFactory(url);
>> 			connection = factory.createConnection();    	
>> 			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
>> 			aQueue = session.createQueue("test") ;
>> 			MessageConsumer consumer = session.createConsumer(aQueue);
>> 			consumer.setMessageListener(this) ;
>> 			
>> 			connection.start();
>> 			
>> 			Thread.sleep(10000) ;
>> 			
>> 			consumer = null ;
>> 			connection.stop() ;
>> 			
>> 		} catch (Exception e) {
>> 			System.err.println(e.getMessage());
>>         	e.printStackTrace();
>>         	throw new RuntimeException(e);
>> 		}
>> 	}
>> 
>> 	public void contextDestroyed(ServletContextEvent arg0) {
>> 		try {
>> 			broker.stop();
>> 			System.out.println("Connetor is stopped !");
>> 		} catch (Exception e) {
>> 			System.err.println(e.getMessage());
>> 			e.printStackTrace();
>> 			throw new RuntimeException(e);
>> 		}
>> 	}
>> 
>> 	public void onMessage(Message arg0) {
>> 		// TODO Auto-generated method stub
>> 		
>> 	}
>> }
>> 
>> I have no error at all.
>> therefore, there is it somebody who could tell me what occurs with my
>> jndi file because it seems that it is the cause of the problem.
>> Indeed, i probably miss to tell you that in the first version of my code
>> i can't put :
>> 
>> ActiveMQConnectionFactory cf =
>> ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory");
>> Conenction conn = cf.createQueueConnection();
>> 
>> This code produce a ClassCastException.
>> Could you give a explanation or something.
>> Probably too many time spent on this problem to have a clear and precise
>> vision of it.
>> Thanks in advance,
>> Regards,
>> 
>> Denez
>> 
>> 
>> denez wrote:
>>> 
>>> 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)" <su...@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#a12269051
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
New test done ! I have put this code into my first project.
If i try to create a Connection, a Session and a Consumer there is no
problem at all.
But if i create a QueueConnection, a QueueSession and a QueueReceiver i got
the "error".
the QueueConnection is corretly create but the QueueSession not.
What is the difference between Connection and QueueConnection ?
What is the difference between Consumer and QueueReceiver ?

thanks in advance,
Regards,

Denez


denez wrote:
> 
> Here is my new investigation :
> I create a new project!
> I only implement one class which implements ServletContextListener and
> MessageListener, and wrote this so simple code : 
> 
> public class ActiveMQBrokerStartListener implements
> ServletContextListener, MessageListener {
> 	BrokerService broker = new BrokerService();
> 	private String url="tcp://localhost:61616";
> 	private Connection connection;
> 	private Session session;
> 	private Queue aQueue ;
> 	
> 	public void contextInitialized(ServletContextEvent arg0) {
> 		try {
> 			broker.addConnector(url) ;
> 			broker.start();
> 			
> 			ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
> 			connection = factory.createConnection();    	
> 			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
> 			aQueue = session.createQueue("test") ;
> 			MessageConsumer consumer = session.createConsumer(aQueue);
> 			consumer.setMessageListener(this) ;
> 			
> 			connection.start();
> 			
> 			Thread.sleep(10000) ;
> 			
> 			consumer = null ;
> 			connection.stop() ;
> 			
> 		} catch (Exception e) {
> 			System.err.println(e.getMessage());
>         	e.printStackTrace();
>         	throw new RuntimeException(e);
> 		}
> 	}
> 
> 	public void contextDestroyed(ServletContextEvent arg0) {
> 		try {
> 			broker.stop();
> 			System.out.println("Connetor is stopped !");
> 		} catch (Exception e) {
> 			System.err.println(e.getMessage());
> 			e.printStackTrace();
> 			throw new RuntimeException(e);
> 		}
> 	}
> 
> 	public void onMessage(Message arg0) {
> 		// TODO Auto-generated method stub
> 		
> 	}
> }
> 
> I have no error at all.
> therefore, there is it somebody who could tell me what occurs with my jndi
> file because it seems that it is the cause of the problem.
> Indeed, i probably miss to tell you that in the first version of my code i
> can't put :
> 
> ActiveMQConnectionFactory cf =
> ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory");
> Conenction conn = cf.createQueueConnection();
> 
> This code produce a ClassCastException.
> Could you give a explanation or something.
> Probably too many time spent on this problem to have a clear and precise
> vision of it.
> Thanks in advance,
> Regards,
> 
> Denez
> 
> 
> denez wrote:
>> 
>> 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)" <su...@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#a12233305
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
Here is my new investigation :
I create a new project!
I only implement one class which implements ServletContextListener and
MessageListener, and wrote this so simple code : 

public class ActiveMQBrokerStartListener implements ServletContextListener,
MessageListener {
	BrokerService broker = new BrokerService();
	private String url="tcp://localhost:61616";
	private Connection connection;
	private Session session;
	private Queue aQueue ;
	
	public void contextInitialized(ServletContextEvent arg0) {
		try {
			broker.addConnector(url) ;
			broker.start();
			
			ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
			connection = factory.createConnection();    	
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			aQueue = session.createQueue("test") ;
			MessageConsumer consumer = session.createConsumer(aQueue);
			consumer.setMessageListener(this) ;
			
			connection.start();
			
			Thread.sleep(10000) ;
			
			consumer = null ;
			connection.stop() ;
			
		} catch (Exception e) {
			System.err.println(e.getMessage());
        	e.printStackTrace();
        	throw new RuntimeException(e);
		}
	}

	public void contextDestroyed(ServletContextEvent arg0) {
		try {
			broker.stop();
			System.out.println("Connetor is stopped !");
		} catch (Exception e) {
			System.err.println(e.getMessage());
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

	public void onMessage(Message arg0) {
		// TODO Auto-generated method stub
		
	}
}

I have no error at all.
therefore, there is it somebody who could tell me what occurs with my jndi
file because it seems that it is the cause of the problem.
Indeed, i probably miss to tell you that in the first version of my code i
can't put :

ActiveMQConnectionFactory cf =
ActiveMQConnectionFactory)ctx.lookup("jms/ConnectionFactory");
Conenction conn = cf.createQueueConnection();

This code produce a ClassCastException.
Could you give a explanation or something.
Probably too many time spent on this problem to have a clear and precise
vision of it.
Thanks in advance,
Regards,

Denez


denez wrote:
> 
> 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)" <su...@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#a12232778
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


unregister

Posted by Nigel Leck <ni...@stsoftware.com.au>.

denez wrote:
> 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)" <su...@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.
>>>       
>>     
>
>   

-- 
Nigel Leck
System Architect
ST Software Pty Limited
Level 1, 14 Rodborough Rd
Frenchs Forest NSW 2086
National: 1300 78 73 78
International: +61 2 9975 4648
Fax: +61 2 9975 4652
www.stsoftware.com.au


RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
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)" <su...@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.


RE: Error on starting QueueConnection

Posted by "Suchitha Koneru (sukoneru)" <su...@cisco.com>.
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)" <su...@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.

RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
Hi all,

I try a lot of different solution today.
But for the moment without any success.
I try to create Producer, Receiver, Consumer, etc... but each time i have
the same "error".
Nothing happend.
Could it be possible that we can not make Tomcat working with AMQ ?
Could you tell me if i miss something in my configuration.
Why there is no exception throw ?
Could it be an error in AMQ ?

Thanks in advance,
Regards,

Denez


denez wrote:
> 
> Hi,
> 
> I follow your instruction regarding the order. I also modify the url in
> the jndi resource to have the same url.
> Notice that i can't place the complete url
> (tcp://localhost:61616?trace=true&wireFormat.maxInactivityDuration=-1) in
> the jndi resource.
> So i replace both by : (tcp://localhost:61616?trace=true)
> 
> But, with this all changes i still have the same problem while trying to
> create the receiver !
> I can't understand what's happen.
> Can i miss something in my configuration ?
> 
> Could you help me again to deal with this problem ?
> Thanks in advance,
> Regards,
> 
> Denez
> 
> 
> Suchitha Koneru (sukoneru) 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.maxInac
>> 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.maxInac
>> 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#a12199739
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


RE: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
Hi,

I follow your instruction regarding the order. I also modify the url in the
jndi resource to have the same url.
Notice that i can't place the complete url
(tcp://localhost:61616?trace=true&wireFormat.maxInactivityDuration=-1) in
the jndi resource.
So i replace both by : (tcp://localhost:61616?trace=true)

But, with this all changes i still have the same problem while trying to
create the receiver !
I can't understand what's happen.
Can i miss something in my configuration ?

Could you help me again to deal with this problem ?
Thanks in advance,
Regards,

Denez


Suchitha Koneru (sukoneru) 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.maxInac
> 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.maxInac
> 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#a12195089
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


RE: Error on starting QueueConnection

Posted by Dave Carlson <gs...@charter.net>.
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)" <su...@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.maxInac
> 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.maxInac
> 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.


RE: Error on starting QueueConnection

Posted by "Suchitha Koneru (sukoneru)" <su...@cisco.com>.
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.maxInac
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.maxInac
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.

Re: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
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.maxInactivityDuration=-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.maxInactivityDuration=-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.html#a12182022
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
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.maxInactivityDuration=-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.maxInactivityDuration=-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.html#a12180186
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Error on starting QueueConnection

Posted by denez <ib...@yahoo.fr>.
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.maxInactivityDuration=-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.maxInactivityDuration=-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.html#a12178653
Sent from the ActiveMQ - User mailing list archive at Nabble.com.