You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "calugaru.cristi" <ca...@gmail.com> on 2015/11/12 18:05:07 UTC

Non Transactional Individual poison-acking messages

Hi, 

I have a use case where I have to use a non-transactional activemq broker,
configured with ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE.

The broker is started and run locally, for a unit test, and it is configured
with persistence disabled, but with a sharedDeadLetterStrategy with
processNonPersistent set to true.

What I want is to be able to programmatically send a poison ack to the
broker, and expect that the message will be delivered automatically to the
DLQ queue:

MessageAck messageAck = new MessageAck(activeMQMessage,
MessageAck.POSION_ACK_TYPE, 1);
messageAck.setPoisonCause(new Throwable("Message " + msgId + "failed"));
            try {
                activeMQSession.asyncSendPacket(messageAck);
            } catch (JMSException e) {
                LOG.error("Error sending back the poison ack", e);
            }

Given my current setup , do i need to change something to get this to work?
(Did not manage to do it from within a unit test - messages do not get
"moved" to DLQ once I send the poison ack).

Thanks,
Cristian





--
View this message in context: http://activemq.2283324.n4.nabble.com/Non-Transactional-Individual-poison-acking-messages-tp4703912.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Non Transactional Individual poison-acking messages

Posted by Tim Bain <tb...@alumni.duke.edu>.
Based on Tim Bish's comments in
http://activemq.2283324.n4.nabble.com/How-to-use-INDIVIDUAL-ACKNOWLEDGE-mode-td4704793.html,
I believe it's not possible to do what you want.  If you want to be able to
in a future version, vote for https://issues.apache.org/jira/browse/AMQ-6098
.
On Nov 12, 2015 10:19 AM, "calugaru.cristi" <ca...@gmail.com>
wrote:

> Hi,
>
> I have a use case where I have to use a non-transactional activemq broker,
> configured with ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE.
>
> The broker is started and run locally, for a unit test, and it is
> configured
> with persistence disabled, but with a sharedDeadLetterStrategy with
> processNonPersistent set to true.
>
> What I want is to be able to programmatically send a poison ack to the
> broker, and expect that the message will be delivered automatically to the
> DLQ queue:
>
> MessageAck messageAck = new MessageAck(activeMQMessage,
> MessageAck.POSION_ACK_TYPE, 1);
> messageAck.setPoisonCause(new Throwable("Message " + msgId + "failed"));
>             try {
>                 activeMQSession.asyncSendPacket(messageAck);
>             } catch (JMSException e) {
>                 LOG.error("Error sending back the poison ack", e);
>             }
>
> Given my current setup , do i need to change something to get this to work?
> (Did not manage to do it from within a unit test - messages do not get
> "moved" to DLQ once I send the poison ack).
>
> Thanks,
> Cristian
>
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Non-Transactional-Individual-poison-acking-messages-tp4703912.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>