activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jigar Naik <jigarn...@interactcrm.com>
Subject Re: Consumer stops consuming messages from queue.
Date Fri, 29 Aug 2008 12:06:55 GMT



Yeah true.... i will be using auto_ack now onwards,

one more thing...Is the issue arising because of following pattern of method
calls... ???
 
       util.startConsume(queueName,connectionFactory);       
//startConsume(); will be called only in the beginning of the Thread's life.
startConsume() contains the line connection.start();

for(int i=0;i<this.numberOfMessageToConsume;i++){
//This will be in endless loop
	xmlText 						= util.consumeFromMessageQueue();
       ... store message to oracle database....

}
//endConsumer() will be executed once in the Thread's life.. 
util.endConsume(...);


James.Strachan wrote:
> 
> Have raised a JIRA to fail faster to avoid others hitting this one
> https://issues.apache.org/activemq/browse/AMQ-1919
> 
> but basically if you use a transacted session, you have to commit() at
> some point :)
> 
> 2008/8/29 James Strachan <james.strachan@gmail.com>:
>> 2008/8/29 Jigar Naik <jigarnaik@interactcrm.com>:
>>>
>>> I am using ActiveMQ version 5.1.0 with JDK 1.5
>>>
>>> "are you using transactions?"
>>>
>>> I didn't really get your quesion.
>>
>> Are you using JMS transactions to consume
>>
>>>  but after consuming each messages from
>>> activeMQ i am inserting it into oracle database table
>>>
>>> I am not acknowledging the messages  and i have only one consumer.
>>>
>>> which continuously reada messages from the queue, on activeMQ console i
>>> can
>>> see Number Of Pending Messages around  4000
>>>
>>> bellow is my startConsume method code, which will be called before the
>>> infinite loop.
>>>
>>> public void startConsume(String queueName,String queueConnectionFactory)
>>> {
>>>
>>>                try {
>>>                        String sms_connect = Utility.getSMSConnectHome();
>>>                        File jmsProp = new File((new
>>> StringBuilder(String.valueOf(sms_connect))).append(File.separator).append("config").append(File.separator).append("JMSConfig.properties").toString());
>>>                        props.load(new FileInputStream(jmsProp));
>>>                        JmsUtil.CONNECTION_FACTORY =
>>> queueConnectionFactory;
>>>                        JmsUtil.QUEUE_NAME = queueName;
>>>                        System.out.println("Queue Name : " +
>>> JmsUtil.QUEUE_NAME);
>>>                        connectionFactory = new
>>> ActiveMQConnectionFactory(JmsUtil.CONNECTION_FACTORY);
>>>                        connection =
>>> connectionFactory.createConnection();
>>>                        connection.setExceptionListener(this);
>>>                        session = connection.createSession(false,
>>> javax.jms.Session.SESSION_TRANSACTED);
>>
>> This is an error. We should probably throw an exception here.
>>
>> You are saying you want to use transacted session ack mode, but not
>> using the true parameter to indicate transacted consumption.
>>
>> Since you're not using session.commit() or message.acknowledge() to
>> acknowledge messages - I'd recommend using Session.AUTO_ACK
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
> 
> 
> 
> -- 
> James
> -------
> http://macstrac.blogspot.com/
> 
> Open Source Integration
> http://open.iona.com
> 
> 

-- 
View this message in context: http://www.nabble.com/Consumer-stops-consuming-messages-from-queue.-tp19217866p19218647.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message