1 2 3 4 5 Previous Next 64 Replies Latest reply on Feb 25, 2008 9:23 AM by haagenhasle Go to original post
      • 15. Re: How to use exceptions
        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

          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

             

            "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

              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

                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

                  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

                    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

                      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

                        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

                          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

                            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

                               

                              "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

                                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

                                  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

                                    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