[
https://issues.apache.org/jira/browse/AMQ-5650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14352683#comment-14352683
]
JaySenSharma commented on AMQ-5650:
-----------------------------------
Steps to reproduce the issue:
##########################
- Deploy the "activemq-rar-5.9.0.rar" on JBoss EAP 6.3.0
- in the standalone.xml file of EAP 6.3.0 add the following resource-adapter
detail to set the "InitialRedeliveryDelay" and "MaximumRedeliveries" :
{code}
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="activemq-ra.rar">
<archive>
activemq-ra.rar
</archive>
<transaction-support>XATransaction</transaction-support>
<config-property name="InitialRedeliveryDelay">
5000
</config-property>
<config-property name="MaximumRedeliveries">
4
</config-property>
<config-property name="Password">
admin
</config-property>
<config-property name="UserName">
admin
</config-property>
<config-property name="ServerUrl">
tcp://localhost:61616
</config-property>
<connection-definitions>
<connection-definition
class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory"
jndi-name="java:jboss/exported/activemq/ActiveMQQueueConnectionFactory"
enabled="true" use-java-context="false" pool-name="java:/jms/ActiveMQPool"
use-ccm="false">
<xa-pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>20</max-pool-size>
</xa-pool>
<recovery>
<recover-credential>
<user-name>admin</user-name>
<password>admin</password>
</recover-credential>
</recovery>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object
class-name="org.apache.activemq.command.ActiveMQQueue"
jndi-name="java:jboss/exported/TestQ" use-java-context="false"
pool-name="TestQ"/>
</admin-objects>
</resource-adapter>
</resource-adapters>
</subsystem>
{code}
- Start the JBoss EAP6
- Start JBoss A-MQ 6.1.0 locally (In the same box where the JBoss EAP6.3 is
running)
- Now send some messages to the A-MQ, destinationm TestQ
- Deploy the attached MDB 3 on EAP 6.3 to fetch messages from the JBoss A-MQ
queue.
{code}
package ejb30;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.ejb.ActivationConfigProperty;
import javax.naming.*;
import javax.annotation.*;
import javax.ejb.MessageDrivenContext;
import javax.annotation.Resource;
import org.jboss.ejb3.annotation.ResourceAdapter;
@MessageDriven(activationConfig =
{
@ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",
propertyValue="TestQ")
})
@ResourceAdapter("activemq-ra.rar") // Which is activemq-rar-5.9.0.rar
public class TestMDB implements MessageListener{
@Resource
private MessageDrivenContext mdc;
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("\n=> "+new java.util.Date()+"\tTestMDB
Received Message > "+textMessage.getText());
System.out.println("\tbefore mdc.setRollbackOnly()");
mdc.setRollbackOnly();
System.out.println("\tafter mdc.setRollbackOnly()");
} catch (JMSException e) {
e.printStackTrace();
}
}
}
{code}
- The output will be noticed in the log of EAP 6.3.0 as following:
{code}
20:04:57,768 INFO [org.apache.activemq.ra.ActiveMQEndpointWorker]
(default-threads - 1) Successfully established connection to broker
[tcp://localhost:61616]
20:05:00,726 INFO [stdout] (default-threads - 2)
20:05:00,727 INFO [stdout] (default-threads - 2) => Thu Mar 05 20:05:00 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:05:00 IST 2015
20:05:00,727 INFO [stdout] (default-threads - 2) before
mdc.setRollbackOnly()
20:05:00,727 INFO [stdout] (default-threads - 2) after
mdc.setRollbackOnly()
20:05:01,736 INFO [stdout] (default-threads - 3)
20:05:01,736 INFO [stdout] (default-threads - 3) => Thu Mar 05 20:05:01 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:05:00 IST 2015
20:05:01,737 INFO [stdout] (default-threads - 3) before
mdc.setRollbackOnly()
20:05:01,737 INFO [stdout] (default-threads - 3) after
mdc.setRollbackOnly()
20:05:02,744 INFO [stdout] (default-threads - 4)
20:05:02,744 INFO [stdout] (default-threads - 4) => Thu Mar 05 20:05:02 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:05:00 IST 2015
20:05:02,745 INFO [stdout] (default-threads - 4) before
mdc.setRollbackOnly()
20:05:02,745 INFO [stdout] (default-threads - 4) after
mdc.setRollbackOnly()
20:05:03,752 INFO [stdout] (default-threads - 5)
20:05:03,752 INFO [stdout] (default-threads - 5) => Thu Mar 05 20:05:03 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:05:00 IST 2015
20:05:03,752 INFO [stdout] (default-threads - 5) before
mdc.setRollbackOnly()
20:05:03,752 INFO [stdout] (default-threads - 5) after
mdc.setRollbackOnly()
20:05:04,758 INFO [stdout] (default-threads - 6)
20:05:04,758 INFO [stdout] (default-threads - 6) => Thu Mar 05 20:05:04 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:05:00 IST 2015
20:05:04,758 INFO [stdout] (default-threads - 6) before
mdc.setRollbackOnly()
20:05:04,758 INFO [stdout] (default-threads - 6) after
mdc.setRollbackOnly()
{code}
*NOTICE:* The redelivery is happening in 1 second rather than (5 seconds)
If rather than "activemq-rar-5.9.0.redhat-610379.rar" if we use the Old
resource adapter as the "activemq-rar-5.8.0.redhat-60024.rar" then the output
appears with 5 seconds interval as following:
{code}
20:21:23,310 INFO [stdout] (default-threads - 2)
20:21:23,311 INFO [stdout] (default-threads - 2) => Thu Mar 05 20:21:23 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:21:23 IST 2015
20:21:23,311 INFO [stdout] (default-threads - 2) before
mdc.setRollbackOnly()
20:21:23,311 INFO [stdout] (default-threads - 2) after
mdc.setRollbackOnly()
20:21:28,322 INFO [stdout] (default-threads - 3)
20:21:28,322 INFO [stdout] (default-threads - 3) => Thu Mar 05 20:21:28 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:21:23 IST 2015
20:21:28,323 INFO [stdout] (default-threads - 3) before
mdc.setRollbackOnly()
20:21:28,323 INFO [stdout] (default-threads - 3) after
mdc.setRollbackOnly()
20:21:33,329 INFO [stdout] (default-threads - 4)
20:21:33,329 INFO [stdout] (default-threads - 4) => Thu Mar 05 20:21:33 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:21:23 IST 2015
20:21:33,329 INFO [stdout] (default-threads - 4) before
mdc.setRollbackOnly()
20:21:33,329 INFO [stdout] (default-threads - 4) after
mdc.setRollbackOnly()
20:21:38,335 INFO [stdout] (default-threads - 5)
20:21:38,335 INFO [stdout] (default-threads - 5) => Thu Mar 05 20:21:38 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:21:23 IST 2015
20:21:38,336 INFO [stdout] (default-threads - 5) before
mdc.setRollbackOnly()
20:21:38,336 INFO [stdout] (default-threads - 5) after
mdc.setRollbackOnly()
20:21:43,344 INFO [stdout] (default-threads - 6)
20:21:43,344 INFO [stdout] (default-threads - 6) => Thu Mar 05 20:21:43 IST
2015 TestMDB Received Message > Message - Hello One !!!Thu Mar 05
20:21:23 IST 2015
20:21:43,344 INFO [stdout] (default-threads - 6) before
mdc.setRollbackOnly()
20:21:43,344 INFO [stdout] (default-threads - 6) after
mdc.setRollbackOnly()
{code}
> activemq-rar-5.9.0.rar does not respect InitialRedeliveryDelay when
> MaximumRedeliveries is defined.
> ---------------------------------------------------------------------------------------------------
>
> Key: AMQ-5650
> URL: https://issues.apache.org/jira/browse/AMQ-5650
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, RAR
> Affects Versions: 5.9.0, 5.9.1
> Environment: All
> Reporter: JaySenSharma
>
> - If we deploy the "activemq-rar-5.9..rar" (or higher to that release) on
> EAP6.3 and then define the resource adapter properties
> "InitialRedeliveryDelay" and "MaximumRedeliveries" together, then it is
> noticed that the InitialRedeliveryDelay is always set to 1 second.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)