[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