I've create a MDB that reads messages from ActiveMQ
@MessageDriven(name = "MessageReaderEJB",
activationConfig = {
@ActivationConfigProperty(propertyName = "acknowledgeMode",
propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination",
propertyValue = "archive.>")
})
@Slf4j
public class ArchiveMessageListenerBean implements MessageListener {
...
@Override
public void onMessage(Message inMessage) {
...
}
...
}
and my glassfish-ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-ejb-jar PUBLIC "-//GlassFish.org//DTD GlassFish
Application Server 3.1 EJB 3.1//EN"
"http://glassfish.org/dtds/glassfish-ejb-jar_3_1-1.dtd">
<glassfish-ejb-jar>
<enterprise-beans>
<ejb>
<ejb-name>MessageReaderEJB</ejb-name>
<mdb-connection-factory>
<jndi-name>jms/jms.connectionFactory</jndi-name>
</mdb-connection-factory>
<mdb-resource-adapter>
<resource-adapter-mid>ActiveMQ-Resource-Adapter-5.14.1</resource-adapter-mid>
</mdb-resource-adapter>
</ejb>
</enterprise-beans>
</glassfish-ejb-jar>
If there is an exception thrown in onMessage() there are some redeliveries and after max. redeliveries the message will be send to ActiveMQ.DLQ. How can I configure that the message will be send to my.error.queue instead of ActiveMQ.DLQ?
Thanks for help!