use jms queue.
ejb sender :
@Resource(lookup = "jms/csPdvQueue")
private Queue csPdvQueue;
@Inject
private JMSContext jmsContext;
method send message :
public void asynchWatched(Pdv pdv, boolean pending) {
jmsContext.createProducer().setDeliveryMode(DeliveryMode.NON_PERSISTENT);
jmsContext.createProducer().send(csPdvQueue, pdv);
}
ejb consumer:
@MessageDriven(mappedName = "jms/csPdvQueue")
public class PdvProcessorMdb implements MessageListener {
@Override
public void onMessage(Message message) {
... execute some businesslogic...
}
}
if application server (payara) quits during message consuming (onMessage), the transaction correctly rollback.
When application server starts again the message is redelivered even if I've set DeliveryMode.NON_PERSISTENT.
I want to avoid the message redelivering.
Is it possible (and how) ?