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