I enqueue 1000 messages into a service which calls a second oneway service, and finally a third one service.
If left alone the messages work their way though the system just fine in minutes.
If I stop SOA-P via shutdown and restart it I experience message loss. Sometime 3-4, sometimes more.
I'm using oracle for a backend, all queues are transacted, and have tried both jms providers.
I see from the traces as each service is terminated, they become unavailable which means DLQ.
I suspect if I stop the listeners through twiddle and then shutdown I'd be okay.
This seems like a hastle, I prefer to it automatically protect against message loss.
How do I protect against loss?
If I use jms-jca-provider:
2010-08-10 23:46:21,353 519266 INFO [org.jboss.soa.esb.client.ServiceInvoker]
(WorkManager(2)-73:) Unresponsive EPR:
JMSEpr [ PortReference < <wsa:Address jms:127.0.0.1:1099#queue/DeadMessageQueue/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.initial :
org.jnp.interfaces.NamingContextFactory/>,
<wsa:ReferenceProperties jbossesb:java.naming.provider.url : 127.0.0.1:1099/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>,
<wsa:ReferenceProperties jbossesb:destination-type : queue/>,
<wsa:ReferenceProperties jbossesb:destination-name : queue/DeadMessageQueue/>,
<wsa:ReferenceProperties jbossesb:specification-version : 1.1/>,
<wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>,
<wsa:ReferenceProperties jbossesb:persistent : true/>,
<wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>,
<wsa:ReferenceProperties jbossesb:transacted : false/>,
<wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ]
for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms:127.0.0.1:1099#queue/eNullWork_esb/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.initial :
org.jnp.interfaces.NamingContextFactory/>,
<wsa:ReferenceProperties jbossesb:java.naming.provider.url : 127.0.0.1:1099/>,
<wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>,
<wsa:ReferenceProperties jbossesb:destination-type : queue/>,
<wsa:ReferenceProperties jbossesb:destination-name : queue/eNullWork_esb/>,
<wsa:ReferenceProperties jbossesb:specification-version : 1.1/>,
<wsa:ReferenceProperties jbossesb:connection-factory : XAConnectionFactory/>,
<wsa:ReferenceProperties jbossesb:persistent : true/>,
<wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>,
<wsa:ReferenceProperties jbossesb:transacted : true/>,
<wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ]
MessageID: 6a694265-74a8-4516-aa95-f10a53d3abb5
RelatesTo: jms:correlationID#6a694265-74a8-4516-aa95-f10a53d3abb5 ]
2010-08-10 23:46:21,376 519289 ERROR [org.jboss.soa.esb.client.MessageMulticaster]
(WorkManager(2)-73:) Failed to deliver message to Service 'Business Profile Services:SendResponse Service'.
Delivering message to Dead Letter Channel.
If I use jms-provider:
2010-08-10 23:03:35,291 442518 ERROR [org.jboss.soa.esb.client.MessageMulticaster]
(pool-33-thread-5:) Failed to deliver message to
Service 'Business Profile Services:SendResponse Service'. Delivering message to Dead Letter Channel.