[jboss-jira] [JBoss JIRA] Updated: (JBMESSAGING-477) Messages are left in the Messages table after retry message is printed and are retried every time the server is restarted
Joel Lindheimer (JIRA)
jira-events at jboss.com
Thu Aug 3 01:13:11 EDT 2006
[ http://jira.jboss.com/jira/browse/JBMESSAGING-477?page=all ]
Joel Lindheimer updated JBMESSAGING-477:
----------------------------------------
Attachment: TestJMSClient.java
This client simply sends nine messages to the "queue/A" queue. If using JBoss server defaults you can just run the client and it should do its thing.
> Messages are left in the Messages table after retry message is printed and are retried every time the server is restarted
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: JBMESSAGING-477
> URL: http://jira.jboss.com/jira/browse/JBMESSAGING-477
> Project: JBoss Messaging
> Issue Type: Bug
> Components: Messaging Core
> Affects Versions: 1.0.1.CR2
> Environment: Windows XP
> Reporter: Joel Lindheimer
> Assigned To: Ovidiu Feodorov
> Attachments: TestConsumer.java, TestJMSClient.java
>
>
> I am testing Consumer.receive() with a userTransaction rollback scenario; the messages rollback and are retried. Eventually the follwoing message is printed:
> JBossMessage[49410]:PERSISTENT has exceed maximum delivery attempts and will be removed.
> However, the messages are never deleted from the messages table; it is therefore retried upon every subsequent server restart.
> To reproduce just send a simple message with a consumer that does the following:
> while (true) {
> log.warn("whileloop+");
> ut = (UserTransaction) getInitialContext().lookup("UserTransaction");
> ut.begin();
> conn = (QueueConnection) this.getQueueFactory().createQueueConnection();
> conn.start();
> session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
> receiver = session.createReceiver(getQueue());
> // Note: starting the ut here does causes other issues... so i moved it up
> // ut = (UserTransaction) getInitialContext().lookup("UserTransaction");
> // ut.begin();
>
> TextMessage msg = (TextMessage) receiver.receive(5000);
> receiver.close();
> session.close();
> conn.close();
> log.warn("msg: " + msg);
> if(msg!=null) {
> log.warn("msg.text: " +msg.getText());
> }
> ut.rollback();
> (...)
> Here is the server console print:
> 12:41:30,946 WARN [TestConsumer] msg: null
> 12:41:30,946 WARN [TestConsumer] whileloop-
> 12:41:30,946 WARN [TestConsumer] whileloop+
> 12:41:30,946 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,946 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,946 WARN [TestConsumer] whileloop-
> 12:41:30,946 WARN [TestConsumer] whileloop+
> 12:41:30,946 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,946 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,946 WARN [TestConsumer] whileloop-
> 12:41:30,946 WARN [TestConsumer] whileloop+
> 12:41:30,962 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,962 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,962 WARN [TestConsumer] whileloop-
> 12:41:30,962 WARN [TestConsumer] whileloop+
> 12:41:30,962 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,962 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,962 WARN [TestConsumer] whileloop-
> 12:41:30,962 WARN [TestConsumer] whileloop+
> 12:41:30,962 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,962 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,962 WARN [TestConsumer] whileloop-
> 12:41:30,962 WARN [TestConsumer] whileloop+
> 12:41:30,962 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,962 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,962 WARN [TestConsumer] whileloop-
> 12:41:30,962 WARN [TestConsumer] whileloop+
> 12:41:30,977 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,977 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,977 WARN [TestConsumer] whileloop-
> 12:41:30,977 WARN [TestConsumer] whileloop+
> 12:41:30,977 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:30,977 WARN [TestConsumer] msg.text: Payload #2
> 12:41:30,977 WARN [TestConsumer] whileloop-
> 12:41:30,977 WARN [TestConsumer] whileloop+
> 12:41:31,009 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:31,009 WARN [TestConsumer] msg.text: Payload #2
> 12:41:31,009 WARN [TestConsumer] whileloop-
> 12:41:31,009 WARN [TestConsumer] whileloop+
> 12:41:31,009 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:31,009 WARN [TestConsumer] msg.text: Payload #2
> 12:41:31,009 WARN [TestConsumer] whileloop-
> 12:41:31,009 WARN [TestConsumer] whileloop+
> 12:41:31,024 WARN [TestConsumer] msg: delegator->JBossMessage[49410]:PERSISTENT
> 12:41:31,024 WARN [TestConsumer] msg.text: Payload #2
> 12:41:31,024 WARN [TestConsumer] whileloop-
> 12:41:31,024 WARN [TestConsumer] whileloop+
> 12:41:31,024 WARN [ServerConsumerEndpoint] JBossMessage[49410]:PERSISTENT has exceed maximum delivery attempt
> s and will be removed
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list