logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: Async web services, do they exist?: msg#00992

Subject: Re: Async web services, do they exist?
If you want to run asynch on the server, you have to create a separate thread or push the data from the request into some queueing mechanism. The current implementation is still sending an empty SOAP body back to the caller and block until wait10sec returns.

in your stateless service class
   private static Timer productionRunTimer = new Timer( true);

inside wait10sec
       // the PO will be processed by another
// thread and the status of the PO will be send back to the warehouse
       // using the callback information found in the Start header.
       ProductionRun productionRun =
         new ProductionRun( AllRequiredData );
       productionRunTimer.schedule( productionRun, 10000);
public class ProductionRun extends TimerTask {
 ...
     public void run() {
// placeholder for the remaining code from your initial wait10sec method } }

If you don't need to wait 10 sec before to start processing, use Runnable instead of TimerTask.

hope this help.

Trond Hjelmaas wrote:

Hi,

I have a problem with finding relevant info regarding asynch Web Services.


For example, I've got this javaclass, all it does is wait 10 seconds

public class delay{
        public void wait10sec(){
                /*some code for 10 sec delay*/
        }

}

it has WSDL like:
......
  <message name="wait10sec0Request"/>
  <portType name="blahPortType">
     <operation name="wait10sec">
        <input name="wait10sec0Request" message="tns:wait10sec0Request"/>
     </operation>
  </portType>
  <binding name="blahBinding" type="tns:blahPortType">
     <soap:binding style="rpc"
                transport="http://schemas.xmlsoap.org/soap/http"/>
     <operation name="wait10sec">
        <soap:operation soapAction="" style="rpc"/>
        <input name="wait10sec0Request">
           <soap:body use="encoded" namespace="blah"
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
     </operation>
  </binding>
  <service name="blah">
     <port name="blahPort" binding="tns:blahBinding">
        <soap:address
                location="http://some_URTL:8888/blah_ctx/blah"/>
     </port>
  </service>

NOTE: I have change WSDL to have no response, the original has reponse
message listed, but is was empty.....

According to some mail I read Web Services are async if they don't have
any reponse method.

I uploaded this and invoke the method using Oracle9ias (9.0.0.3), the
invocation halts for 10 seconds, and does NOT return ASAP (which is what I
need).

Any suggestions about how to make asynch Web Services are very
appreciated!

Regards, Trond







<Prev in Thread] Current Thread [Next in Thread>