-
15. Re: How to use exceptions
haagenhasle Nov 14, 2007 5:44 AM (in response to haagenhasle)"tfennelly" wrote:
As a test, try adding the following config property to the "core" section of your jbossesb-properties.xml (in jbossesb.sar)
I'll try that - thank you!
Regards, Haagen -
16. Re: How to use exceptions
marklittle Nov 14, 2007 5:53 AM (in response to haagenhasle)As Tom pointed out, the Dead Letter Service will try to resend failed messages periodically. Which is why I said that you either need to increase your timeout (set it really large and see if that helps) or disable the DLS as Tom mentioned. The problem with disabling it currently is that it is an all-or-nothing. If you have services that are idempotent then this wouldn't necessarily be the best thing for everything, but it's a start.
-
17. Re: How to use exceptions
haagenhasle Nov 14, 2007 6:46 AM (in response to haagenhasle)"tfennelly" wrote:
As a test, try adding the following config property to the "core" section of your jbossesb-properties.xml (in jbossesb.sar)
Like this?<properties name="core"> <property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/> <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/> <property name="org.jboss.soa.esb.persistence.connection.factory" value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/> <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/> <property name="org.jboss.soa.esb.dls.redeliver" value="false"/> </properties>
It doesn't seem to have an effect.. I've restarted the server, but do I have to do anything else as well? Are the values cached somewhere perhaps?
Regards, Haagen -
18. Re: How to use exceptions
tfennelly Nov 14, 2007 6:50 AM (in response to haagenhasle)That looks right.
Try turning on some debug logging on the ServiceInvoker class. With debug logging on this class, you should see a message to the effect "not delivering to the Dead Letter Service". -
19. Re: How to use exceptions
kconner Nov 14, 2007 7:16 AM (in response to haagenhasle)Just to add some clarification on the delivery mechanism.
There are two cases we support, each with a different way of handling errors; these are the Sync and Async cases.
The Sync case will attempt to deliver to the first member of the EPR set retrieved from the registry (how this is chosen depends on the policy in effect). If there is no reply within the specified timeout then it will choose another; this continues until the set is exhausted.
In the Async case the delivery is only attempted once; if the delivery fails the message is sent to the DLQ. The DLQ will then attempt to redeliver the message at specified intervals until the maximum retry has been exceeded.
HTH -
20. Re: How to use exceptions
haagenhasle Nov 14, 2007 8:07 AM (in response to haagenhasle)Thank you for the clarification Kevin!
I am always (so far) using the Sync case. So if I understand this correctly, the messages are never sent to the DLQ. That means I'm back to wondering why I get a lot of redeliveries.. The only reason I can see is that I must have several EPRs under the same name in the registry. This however, is not intentional, so I guess my next question wold be how do I make sure I only have one EPR/Service registered per name? (Or perhaps: how do I make sure the Registry is cleared completely at startup?)
Regards, Haagen -
21. Re: How to use exceptions
marklittle Nov 14, 2007 8:21 AM (in response to haagenhasle)As Kev said, in both cases the Dead Letter Service will be used, but only in the async case will a redelivery be attempted later.
Delete your registry database and try again?
And if that doesn't work, send me a test case. -
22. Re: How to use exceptions
haagenhasle Nov 14, 2007 9:20 AM (in response to haagenhasle)It isn't really a viable option to delete the juddidb every time I start the server.. But if it's only necessary to delete it every time I redeploy the application, then it could be possible.
To determine if there really are several EPRs registered under the same name, can't I just run a few SQL-statements against the database to find out? Does anyone know which tables to look in/what SQL to run?
Regards, Haagen -
23. Re: How to use exceptions
haagenhasle Nov 14, 2007 10:10 AM (in response to haagenhasle)I haven't created a testcase from my own code yet, but I have tried to recreate this with the quickstart "native_client". What I did was to put a breakpoint in MyAction.playWithMessage, and just wait for it to time out.
When it did time out, the message was not redelivered (immediately). But what I do see is that when I restart the server it is redelivered. At least I get a lot of MyAction-output in the log at startup:HbmBinder] Mapping class: org.jbpm.taskmgmt.def.Task -> JBPM_TASK Configuration] Reading mappings from resource : org/jbpm/taskmgmt/def/TaskController.hbm.xml HbmBinder] Mapping class: org.jbpm.taskmgmt.def.TaskController -> JBPM_TASKCONTROLLER STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&& STDOUT] Body: Heisann sveisann! STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&& STDOUT] Body: Hello From ESB MyAction: Heisann sveisann! STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Configuration] Reading mappings from resource : org/jbpm/module/def/ModuleDefinition.hbm.xml HbmBinder] Mapping class: org.jbpm.module.def.ModuleDefinition -> JBPM_MODULEDEFINITION Configuration] Reading mappings from resource : org/jbpm/bytes/ByteArray.hbm.xml HbmBinder] Mapping class: org.jbpm.bytes.ByteArray -> JBPM_BYTEARRAY HbmBinder] Mapping collection: org.jbpm.bytes.ByteArray.byteBlocks -> JBPM_BYTEBLOCK Configuration] Reading mappings from resource : org/jbpm/file/def/FileDefinition.hbm.xml HbmBinder] Mapping subclass: org.jbpm.file.def.FileDefinition -> JBPM_MODULEDEFINITION Configuration] Reading mappings from resource : org/jbpm/scheduler/def/CreateTimerAction.hbm.xml HbmBinder] Mapping subclass: org.jbpm.scheduler.def.CreateTimerAction -> JBPM_ACTION Configuration] Reading mappings from resource : org/jbpm/scheduler/def/CancelTimerAction.hbm.xml HbmBinder] Mapping subclass: org.jbpm.scheduler.def.CancelTimerAction -> JBPM_ACTION Configuration] Reading mappings from resource : org/jbpm/graph/exe/Comment.hbm.xml HbmBinder] Mapping class: org.jbpm.graph.exe.Comment -> JBPM_COMMENT Configuration] Reading mappings from resource : org/jbpm/graph/exe/ProcessInstance.hbm.xml HbmBinder] Mapping class: org.jbpm.graph.exe.ProcessInstance -> JBPM_PROCESSINSTANCE Configuration] Reading mappings from resource : org/jbpm/graph/exe/Token.hbm.xml HbmBinder] Mapping class: org.jbpm.graph.exe.Token -> JBPM_TOKEN Configuration] Reading mappings from resource : org/jbpm/graph/exe/RuntimeAction.hbm.xml HbmBinder] Mapping class: org.jbpm.graph.exe.RuntimeAction -> JBPM_RUNTIMEACTION Configuration] Reading mappings from resource : org/jbpm/module/exe/ModuleInstance.hbm.xml HbmBinder] Mapping class: org.jbpm.module.exe.ModuleInstance -> JBPM_MODULEINSTANCE Configuration] Reading mappings from resource : org/jbpm/context/exe/ContextInstance.hbm.xml STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&& STDOUT] Body: Heisann sveisann! HbmBinder] Mapping subclass: org.jbpm.context.exe.ContextInstance -> JBPM_MODULEINSTANCE STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Configuration] Reading mappings from resource : org/jbpm/context/exe/TokenVariableMap.hbm.xml STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&& STDOUT] Body: Hello From ESB MyAction: Heisann sveisann! STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& HbmBinder] Mapping class: org.jbpm.context.exe.TokenVariableMap -> JBPM_TOKENVARIABLEMAP Configuration] Reading mappings from resource : org/jbpm/context/exe/VariableInstance.hbm.xml
The native_client uses a Sync call, so why does this happen? Shouldn't the message just be put in the DLQ and stay there?
For completeness, I include the output I get when I timeout at my breakpoint as well:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 15:57:23,765 INFO [STDOUT] Body: Heisann sveisann! 15:57:23,765 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 15:57:43,719 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:58:03,782 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:58:23,845 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:58:44,346 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:59:04,409 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:59:24,472 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory. initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:Refere nceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceP roperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/qu eue/quickstart_native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.ur l : localhost/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : C onnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms /> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:Referen ceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specifica tion-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a 490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ] 15:59:24,488 INFO [STDOUT] org.jboss.soa.esb.listeners.message.MessageDeliverException: Failed to deliver message [header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart _native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/ >, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFacto ry/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ReplyTo : JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties j bossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ]] to Service [MyServiceCategory:MyNativeClientService]. Check for errors. 15:59:24,488 INFO [STDOUT] org.jboss.soa.esb.listeners.message.MessageDeliverException: Failed to deliver message [header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart _native_client_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/ >, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFacto ry/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ReplyTo : JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/quickstart_native_client_esb_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost/>, <wsa:ReferenceProperties j bossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='d9209ad7-80fe-439b-bb63-a2a490d464cf'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ]] to Service [MyServiceCategory:MyNativeClientService]. Check for errors. 15:59:24,488 INFO [STDOUT] at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:279) 15:59:24,488 INFO [STDOUT] at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:155) 15:59:24,488 INFO [STDOUT] at org.jboss.soa.esb.samples.quickstart.nativeclient.webservice.HelloWorldWS.sayHello(HelloWorldWS.java:53) 15:59:24,488 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 15:59:24,488 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 15:59:24,488 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 15:59:24,488 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:585) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.spi.invocation.InvocationHandlerJSE.invoke(InvocationHandlerJSE.java:74) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.stack.jbws.ServiceLifecycleInvocationHandler.invoke(ServiceLifecycleInvocationHandler.java:59) 15:59:24,488 INFO [STDOUT] at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:206) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:396) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:260) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:177) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:110) 15:59:24,488 INFO [STDOUT] at org.jboss.wsf.spi.invocation.EndpointServlet.service(EndpointServlet.java:72) 15:59:24,488 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 15:59:24,488 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 15:59:24,488 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 15:59:24,488 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 15:59:24,488 INFO [STDOUT] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 15:59:24,488 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) 15:59:24,488 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 15:59:24,488 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) 15:59:24,488 INFO [STDOUT] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 15:59:24,488 INFO [STDOUT] at java.lang.Thread.run(Thread.java:595)
Regards, Haagen -
24. Re: How to use exceptions
marklittle Nov 14, 2007 11:13 AM (in response to haagenhasle)As Tom suggested, try setting org.jboss.soa.esb.dls.redeliver to false in the "core" section of your jbossesb-properties.xml
If that does not make a difference then it's possible this is JMS redelivering the message. -
25. Re: How to use exceptions
haagenhasle Nov 15, 2007 4:17 AM (in response to haagenhasle)I don't get it, wasn't redelivery only supposed to happen in Async calls?
As Kev said, in both cases the Dead Letter Service will be used, but only in the async case will a redelivery be attempted later.
I did set the org.jboss.soa.esb.dls.redeliver-option to false in jbossesb-properties.xml in jbossesb.sar, as Tom suggested. The native_client exmpale was run with that option in place.
I see there is also a jbossesb-properties files in the quickstart-example, I haven't touched that one.
I don't quite understand your last sentence. What do you mean it is possible this is JMS redelivering the message? Because of a persistent queue, is that it?
I would have thought that when a Service picks up a message from an incoming queue, that would imply that the message gets removed from the queue? Or am I mistaken, is the message removed from the incoming queue at a later time, for example when the Service is done processing it?
Regards, Haagen -
26. Re: How to use exceptions
marklittle Nov 16, 2007 4:04 PM (in response to haagenhasle)"haagenhasle" wrote:
I don't get it, wasn't redelivery only supposed to happen in Async calls?
In theory yes. But bugs aren't unknown ;-)As Kev said, in both cases the Dead Letter Service will be used, but only in the async case will a redelivery be attempted later.
I did set the org.jboss.soa.esb.dls.redeliver-option to false in jbossesb-properties.xml in jbossesb.sar, as Tom suggested. The native_client exmpale was run with that option in place.
Whch section did you place it in?
I see there is also a jbossesb-properties files in the quickstart-example, I haven't touched that one.
I don't quite understand your last sentence. What do you mean it is possible this is JMS redelivering the message? Because of a persistent queue, is that it?
Yes.
I would have thought that when a Service picks up a message from an incoming queue, that would imply that the message gets removed from the queue? Or am I mistaken, is the message removed from the incoming queue at a later time, for example when the Service is done processing it?
If it happens within a transaction then the message does not get removed from the queue until the transaction commits. I assume you're not using transactions though? -
27. Re: How to use exceptions
haagenhasle Nov 19, 2007 4:20 AM (in response to haagenhasle)I put it in the core-section. I cant't paste it into this post, as I'm not at work right now.
You are right in assuming I'm not using transactions, and the quickstart is (I guess) not using them either. Thank you for the explanation about transactional behaviour, that was interesting! I might have use for that later.
I have turned off the persistence in my queues (in jboss-esb.xml), but the native_client example is still using persistent queues. Could this lead to different behaviour between the quickstart and my own code? I experience redelievery at once, while for the quickstart the redelivery happened after a restart of the server.
Regards, Haagen -
28. Re: How to use exceptions
marklittle Nov 21, 2007 4:06 PM (in response to haagenhasle)Can you create a stand-alone example that illustrates the problem? If so, email it to me and I'll look into it here.
-
29. Re: How to use exceptions
haagenhasle Dec 5, 2007 4:42 AM (in response to haagenhasle)Hi!
I'm sorry for the long delay since my last post, but I've been away for a couple of weeks because of the birth of my first child. :)
As I wrote earlier - I haven't created a testcase from my own code yet, but I have tried to recreate this with the quickstart "native_client". What I did was to put a breakpoint in MyAction.playWithMessage, and just wait for it to time out. Is this sufficient to illustrate the problem, or do you need anything else?
Regards, Haagen