[ https://issues.apache.org/jira/browse/ODE-956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sathwik Bantwal Premakumar updated ODE-956: ------------------------------------------- Attachment: ODE-956.patch > Asynchrony with Axis2-Nonblocking API > ------------------------------------- > > Key: ODE-956 > URL: https://issues.apache.org/jira/browse/ODE-956 > Project: ODE > Issue Type: New Feature > Components: Axis2 Integration > Reporter: Sathwik Bantwal Premakumar > Attachments: ODE-956.patch > > > To implement Axis2's non-blocking API to make a request/response service call > asynchronously. > Related article: > http://www.ibm.com/developerworks/webservices/library/ws-axis2/index.html?ca=drs- > http://ws.apache.org/axis2/1_1/dii.html > This is really useful when we need to call an external/public service that > takes a long time to respond, and that we have no authority to modify it, and > we do not want to manage it with timeout parameters. > Here is what is needed: > 1) Understanding of the WS-Addressing WSDL Binding: > http://www.w3.org/TR/ws-addr-wsdl/ > 2) the Axis2 WS-Addressing-Module needs to be engaged. Until now it is > disabled in all ODE deployments. > 3) for testing, a small axis2 java client should be used, i.e. to invoke > the hello world example (with setUseSeparateListener(true)). > 4) a SOAP Monitor is needed to monitor SOAP messages and headers. > Then some experiments need to be performed. Here is what should happen: > 1. The client sends the request to ODE. > 2. ODE consumes the message and the transport ACKs the reception (HTTP 202 > Accepted in the HTTP case) > 3. ODE creates a new instance, does hello world and creates the response. The > response is stored in the same MEX, since we're in a sync request-response > operation. > 4. Axis2 will open a new (anonymous) channel to the client and sends the > message. Callback EPR has been transmitted via WS-Adressing header in the > request. > When I tried that last time, the problem was, it actually worked fine, > besides the fact that the request channel has not been closed and resulted in > a timeout. Now I know that this can be fixed by adding a > messageCtx.setProperty(DO_ASYNC, Boolean.TRUE); in the message receiver. This > however should only be done in case this WS-Adressing-Binding should be used. > Perhaps ODE could inspect the WSDL for occurrence of <wsaw:UsingAddressing/> > and <wsaw:Anonymous> to determine whether a sync or async interaction should > be used (I'd need to reread the spec to get sure). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira