[
http://jira.jboss.com/jira/browse/JBAS-4328?page=comments#action_12359201 ]
Adrian Brock commented on JBAS-4328:
------------------------------------
And if you want more real time behaviour it is trivial to write an interceptor that does:
if (isExpired(message))
{
log.warn("I'm not processing this messasge because it expired between being
received from the jms server and delivery to the mdb instance");
ejbContext.setRollbackOnly(); // NACK The message
return;
}
Once the message is NACKed backed to the control of the jms server, it is eligible again
for expiry processing.
Message expiration doesn't work with a message listener on a
session
--------------------------------------------------------------------
Key: JBAS-4328
URL:
http://jira.jboss.com/jira/browse/JBAS-4328
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: JMS service
Affects Versions: JBossAS-4.2.0.CR1
Environment: JBoss MQ
Reporter: Carlo de Wolf
Assigned To: Adrian Brock
The JCA uses session.setMessageListener which creates a SpyMessageConsumer with
sessionConsumer = true.
Messages are received and added to the SpyMessageConsumer (addMessage).
If it's a sessionConsumer do special logic (excluding expiration) else
put it on queue and receive() does expiration logic.
--
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