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:[EMAIL PROTECTED] Sent: Friday, August 17, 2007 7:58 AM
To: [email protected]
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)" <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED]
Sent: Thursday, August 16, 2007 7:03 AM
To: [email protected]
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

Reply via email to