|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
[jira] Created: (ODE-578) Better error reporting for WS clientsBetter error reporting for WS clients
------------------------------------- Key: ODE-578 URL: https://issues.apache.org/jira/browse/ODE-578 Project: ODE Issue Type: Improvement Reporter: Alexis Midon Assignee: Alexis Midon Fix For: 1.3.1, 2.0 Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. A good example of this can be seen in ticket http://support.intalio.com/deskpro//tech/tickets/ticketview.php?id=3412 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or execution error when waiting for response to MEX {MyRoleMex#632 [Client 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! at org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Updated: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Boisvert updated ODE-578: ------------------------------ Description: Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. Here is an example: 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or execution error when waiting for response to MEX {MyRoleMex#632 [Client 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! at org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. was: Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. A good example of this can be seen in ticket http://support.intalio.com/deskpro//tech/tickets/ticketview.php?id=3412 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or execution error when waiting for response to MEX {MyRoleMex#632 [Client 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a timed out when waiting for a response! at org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1, 2.0 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Commented: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698989#action_12698989 ] Alexis Midon commented on ODE-578: ---------------------------------- Now, in case of failure, the details passed to MessageExchangeImpl#setFailure are persisted in a message. In addition, BpelRuntimeContextImpl#registerActivityForRecovery releases all outstanding MyRoleMessageExchange and pass them the failure information received from ACTIVITYGUARD. Finally axis2.OdeService builds a fault based on the failure informaiton and send it to the WS client. For instance, if an invoke fails, the client will received a fault like: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail><Exception>org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:62) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:256) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:259) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595) </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> The details can be muted by setting the new endpoint property 'mex.failure.verbose' to false. If false, the returned fault becomes: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure</faultstring><detail><Exception>org.apache.ode.axis2.OdeFault: Message exchange failure </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1, 2.0 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Commented: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698990#action_12698990 ] Alexis Midon commented on ODE-578: ---------------------------------- committed in 1.X r765012 > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1, 2.0 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Issue Comment Edited: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698989#action_12698989 ] Alexis Midon edited comment on ODE-578 at 4/14/09 5:00 PM: ----------------------------------------------------------- Now, in case of failure, the details passed to MessageExchangeImpl#setFailure are persisted in a message. In addition, BpelRuntimeContextImpl#registerActivityForRecovery releases all outstanding MyRoleMessageExchange and pass them the failure information received from ACTIVITYGUARD. Finally axis2.OdeService builds a fault based on the failure informaiton and send it to the WS client. For instance, if an invoke fails, the client will received a fault like: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure due to: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail><Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">soapenv:Client</faultcode><faultstring xmlns="">The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail xmlns=""><Exception>org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:62) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:256) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:259) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595) </Exception></detail></Fault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> The details can be muted by setting the new endpoint property 'mex.failure.verbose' to false. If false, the returned fault becomes: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure</faultstring><detail><Exception>org.apache.ode.axis2.OdeFault: Message exchange failure </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> was (Author: alexismidon): Now, in case of failure, the details passed to MessageExchangeImpl#setFailure are persisted in a message. In addition, BpelRuntimeContextImpl#registerActivityForRecovery releases all outstanding MyRoleMessageExchange and pass them the failure information received from ACTIVITYGUARD. Finally axis2.OdeService builds a fault based on the failure informaiton and send it to the WS client. For instance, if an invoke fails, the client will received a fault like: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail><Exception>org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:62) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:256) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:259) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595) </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> The details can be muted by setting the new endpoint property 'mex.failure.verbose' to false. If false, the returned fault becomes: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure</faultstring><detail><Exception>org.apache.ode.axis2.OdeFault: Message exchange failure </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1, 2.0 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Issue Comment Edited: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12698989#action_12698989 ] Alexis Midon edited comment on ODE-578 at 4/14/09 5:07 PM: ----------------------------------------------------------- Now, in case of failure, the details passed to MessageExchangeImpl#setFailure are persisted in a message. In addition, BpelRuntimeContextImpl#registerActivityForRecovery releases all outstanding MyRoleMessageExchange and pass them the failure information received from ACTIVITYGUARD. Finally axis2.OdeService builds a fault based on the failure informaiton and send it to the WS client. For instance, if an invoke fails, the client will receive a fault like: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure due to: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail><Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">soapenv:Client</faultcode><faultstring xmlns="">The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail xmlns=""><Exception>org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:62) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:256) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:259) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595) </Exception></detail></Fault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> The details can be muted by setting the new endpoint property 'mex.failure.verbose' to false. If false, the returned fault becomes: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure</faultstring><detail><Exception>org.apache.ode.axis2.OdeFault: Message exchange failure </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> was (Author: alexismidon): Now, in case of failure, the details passed to MessageExchangeImpl#setFailure are persisted in a message. In addition, BpelRuntimeContextImpl#registerActivityForRecovery releases all outstanding MyRoleMessageExchange and pass them the failure information received from ACTIVITYGUARD. Finally axis2.OdeService builds a fault based on the failure informaiton and send it to the WS client. For instance, if an invoke fails, the client will received a fault like: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure due to: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail><Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">soapenv:Client</faultcode><faultstring xmlns="">The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService</faultstring><detail xmlns=""><Exception>org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) 127.0.0.1/processes/DummyService at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:62) at org.apache.axis2.engine.Phase.invoke(Phase.java:308) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:256) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:259) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:166) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:85) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595) </Exception></detail></Fault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> The details can be muted by setting the new endpoint property 'mex.failure.verbose' to false. If false, the returned fault becomes: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"><faultcode>soapenv:Fault</faultcode><faultstring>Message exchange failure</faultstring><detail><Exception>org.apache.ode.axis2.OdeFault: Message exchange failure </Exception></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1, 2.0 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Closed: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alexis Midon closed ODE-578. ---------------------------- Resolution: Fixed Fix Version/s: (was: 2.0) > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.1 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
|
|
[jira] Commented: (ODE-578) Better error reporting for WS clients[ https://issues.apache.org/jira/browse/ODE-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12765757#action_12765757 ] Sean Ahn commented on ODE-578: ------------------------------ Being rolled back due to a conceptual fault. Refer to https://issues.apache.org/jira/browse/ODE-679. > Better error reporting for WS clients > ------------------------------------- > > Key: ODE-578 > URL: https://issues.apache.org/jira/browse/ODE-578 > Project: ODE > Issue Type: Improvement > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3.2 > > > Currently, when a process is called and some error happens during processing, the error is not communicated back to the client. Instead, all the client gets is a timeout exception which can be confusing. > Here is an example: > 2009-03-05 19:30:06,873 ERROR [org.apache.ode.axis2.ODEService] Timeout or > execution error when waiting for response to MEX {MyRoleMex#632 [Client > 96038a45-1409-4bda-ab33-81fd29de4a48-3] calling > {http://www.intalio.com/bpms/workflow/ib4p_20051115}UIFWService.completeTask(...)} > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > java.util.concurrent.TimeoutException: Message exchange > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@e8b20a > timed out when waiting for a response! > at > org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture.get(MyRoleMessageExchangeImpl.java:241) > at > org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:152) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:67) > at > org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:50) > at > org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96) > at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) > The proposal is to report back to the client any error during processing of the request (by default). This feature could be turned off for security reasons since it may create a risk of information disclosure. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. |
| Free embeddable forum powered by Nabble | Forum Help |