OK, so how to define that destination policy within applicationContext ?
James.Strachan wrote: > > <destinationPolicy> is for associating per-destination policies with > destinations. > > These pages should give you some background > http://incubator.apache.org/activemq/how-do-i-create-new-destinations.html > http://incubator.apache.org/activemq/per-destination-policies.html > > On 9/26/06, nusa <[EMAIL PROTECTED]> wrote: >> >> OF COURSE .... oh dear oh dear oh dear ... thanks James. Just put >> commit(), >> and that's it. Done. >> >> One last thing. >> I define in my activemq.xml the queue destination as follows : >> <!-- In ActiveMQ 4, you can setup destination policies --> >> <destinationPolicy> >> <policyMap> >> <policyEntries> >> <policyEntry queue="MYQUEUE.QUEUE"> >> <dispatchPolicy> >> <strictOrderDispatchPolicy /> >> </dispatchPolicy> >> </policyEntry> >> </policyEntries> >> </policyMap> >> </destinationPolicy> >> >> And it also defined in within applicationContext.xml : >> >> <bean id="destination" >> class="org.apache.activemq.command.ActiveMQQueue" >> autowire="constructor"> >> <constructor-arg> >> <value>org.apache.activemq.spring.Test.spring.queue</value> >> </constructor-arg> >> </bean> >> >> <!-- a sample POJO consumer --> >> <bean id="consumer" class="ae.marcurafze.scanning.jms.ConsumerBean" >> init-method="start" > >> <property name="template"> >> <ref local="myJmsTemplate"/> >> </property> >> <property name="destination"> >> <ref local="destination"/> >> </property> >> </bean> >> >> Looking at the log, it's only >> org.apache.activemq.spring.Test.spring.queue >> that is being used : >> ... >> 16:09:52,359 DEBUG [broker.region.AbstractRegion] Adding destination: >> topic://ActiveMQ.Advisory.Connection >> 16:09:52,375 DEBUG [broker.region.AbstractRegion] Adding destination: >> topic://ActiveMQ.Advisory.Topic >> 16:09:52,530 DEBUG [broker.region.AbstractRegion] Adding destination: >> topic://ActiveMQ.Advisory.Consumer.Queue.org.apache.activemq.spring.Test.spring.queue >> 16:09:52,645 DEBUG [factory.support.DefaultListableBeanFactory] Invoking >> BeanPostProcessors after initialization of bean 'consumer' >> ... >> >> What's the purpose of defining queue within <destinationPolicy> ? >> Should the <policyEntry queue="MYQUEUE.QUEUE"> points to >> org.apache.activemq.spring.Test.spring.queue, i.e : >> <policyEntry queue="org.apache.activemq.spring.Test.spring.queue"> ? >> >> Thanks James. >> >> >> James.Strachan wrote: >> > >> > You are creating a transactional consumer but never commit()ing the >> > transaction - so all messages will be redelivered on startup. >> > >> > On 9/26/06, nusa <[EMAIL PROTECTED]> wrote: >> >> >> >> The consumer java code : >> >> >> >> public class ConsumerBean implements MessageListener { >> >> >> >> private Logger log = Logger.getLogger(getClass()); >> >> >> >> private JmsTemplate template; >> >> private Destination destination; >> >> >> >> private Connection connection; >> >> private Session session; >> >> private MessageConsumer consumer; >> >> >> >> private String myId = "ABC"; >> >> >> >> public void start() throws JMSException { >> >> String selector = "next = '" + myId + "'"; >> >> >> >> try { >> >> ConnectionFactory factory = >> template.getConnectionFactory(); >> >> connection = factory.createConnection(); >> >> >> >> // we might be a reusable connection in spring >> >> // so lets only set the client ID once if its not set >> >> synchronized (connection) { >> >> if (connection.getClientID() == null) { >> >> connection.setClientID(myId); >> >> } >> >> } >> >> >> >> connection.start(); >> >> >> >> session = connection.createSession(true, >> >> Session.AUTO_ACKNOWLEDGE); >> >> consumer = session.createConsumer(destination, selector, >> >> false); >> >> consumer.setMessageListener(this); >> >> } >> >> catch (JMSException ex) { >> >> log.error("*** Error Starting Consumer !!!", ex); >> >> throw ex; >> >> } >> >> } >> >> >> >> /* (non-Javadoc) >> >> * @see javax.jms.MessageListener#onMessage(javax.jms.Message) >> >> */ >> >> public void onMessage(Message msg) { >> >> log.info("==> Receiving a msg to generate PDF ..."); >> >> ... >> >> } >> >> >> >> /** >> >> * @return the template >> >> */ >> >> public JmsTemplate getTemplate() { >> >> return template; >> >> } >> >> >> >> /** >> >> * @param template the template to set >> >> */ >> >> public void setTemplate(JmsTemplate template) { >> >> this.template = template; >> >> } >> >> >> >> /** >> >> * @return the destination >> >> */ >> >> public Destination getDestination() { >> >> return destination; >> >> } >> >> >> >> /** >> >> * @param destination the destination to set >> >> */ >> >> public void setDestination(Destination destination) { >> >> this.destination = destination; >> >> } >> >> >> >> } >> >> >> >> I think the message is consumed because the onMessage method is >> invoked. >> >> >> >> >> >> James.Strachan wrote: >> >> > >> >> > Could you post your consumer java code? >> >> > >> >> > If you browse the queues, do you see messages being consumed? >> >> > http://incubator.apache.org/activemq/jmx.html >> >> > >> >> > >> >> > On 9/26/06, nusa <[EMAIL PROTECTED]> wrote: >> >> >> >> >> >> James, >> >> >> >> >> >> OK, I'm going to ignore this failover. >> >> >> >> >> >> Back to my consumer, I'm using a queue ( I mean that what I >> expected >> >> ). >> >> >> I modified my activemq.xml into : >> >> >> ... >> >> >> <destinationPolicy> >> >> >> <policyMap> >> >> >> <policyEntries> >> >> >> <policyEntry queue="SCANNINGDA.QUEUE>"> >> >> >> <dispatchPolicy> >> >> >> <strictOrderDispatchPolicy /> >> >> >> </dispatchPolicy> >> >> >> </policyEntry> >> >> >> </policyEntries> >> >> >> </policyMap> >> >> >> </destinationPolicy> >> >> >> ... >> >> >> >> >> >> undeploy, then deploy the war file. >> >> >> Yet the onMessage got invoke again WITHOUT any message sent by the >> >> >> producer. >> >> >> Any idea James ? >> >> >> >> >> >> Thanks. >> >> >> >> >> >> >> >> >> >> >> >> James.Strachan wrote: >> >> >> > >> >> >> > On 9/26/06, nusa <[EMAIL PROTECTED]> wrote: >> >> >> >> Thanks James for a quick reply. >> >> >> >> >> >> >> >> failover: is only used on the client side. How and where to >> define >> >> it >> >> >> ? >> >> >> > >> >> >> > You only use it when configuring your JMS client - ignore it for >> >> using >> >> >> > networkConnectors (i.e. connecting brokers to each other) as they >> >> use >> >> >> > a failover mechanism by default >> >> >> > >> >> >> > >> >> >> >> >> >> http://incubator.apache.org/activemq/how-can-i-support-auto-reconnection.html >> >> >> > >> >> >> > >> >> >> >> OK, sorry for incomplete info. >> >> >> >> Everytime I startup my Tomcat, my consumer receveive a message, >> to >> >> be >> >> >> >> precised >> >> >> >> the onMessage method is invoked, WITHOUT the producer send any >> >> >> message. >> >> >> >> Would that help ? >> >> >> > >> >> >> > I can't explain it I'm afraid. Are you using topics or queues? >> From >> >> >> > your configuraiton you seem to be using queues with >> >> >> > lastImageRecoveryPolicy (which is only intended for topics). If >> you >> >> >> > are using last image recovery, then getting a message on startup >> is >> >> >> > the desired behaviour :) >> >> >> > >> >> >> > -- >> >> >> > >> >> >> > James >> >> >> > ------- >> >> >> > http://radio.weblogs.com/0112098/ >> >> >> > >> >> >> > >> >> >> >> >> >> -- >> >> >> View this message in context: >> >> >> >> >> >> http://www.nabble.com/Problem-with-failover-and-consumer-tf2337476.html#a6504817 >> >> >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> >> >> >> >> >> >> > >> >> > >> >> > -- >> >> > >> >> > James >> >> > ------- >> >> > http://radio.weblogs.com/0112098/ >> >> > >> >> > >> >> >> >> -- >> >> View this message in context: >> >> >> http://www.nabble.com/Problem-with-failover-and-consumer-tf2337476.html#a6504962 >> >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> >> >> >> > >> > >> > -- >> > >> > James >> > ------- >> > http://radio.weblogs.com/0112098/ >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Problem-with-failover-and-consumer-tf2337476.html#a6505811 >> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> > > > -- > > James > ------- > http://radio.weblogs.com/0112098/ > > -- View this message in context: http://www.nabble.com/Problem-with-failover-and-consumer-tf2337476.html#a6506108 Sent from the ActiveMQ - User mailing list archive at Nabble.com.
