activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nusa <setianus...@yahoo.co.uk>
Subject Re: Problem with failover and consumer
Date Tue, 26 Sep 2006 11:30:54 GMT

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 <setianusa07@yahoo.co.uk> 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 <setianusa07@yahoo.co.uk> 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.


Mime
View raw message