WebService Time Out

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
Gius
Participant
Posts: 29
Joined: Mon Mar 09, 2015 2:10 am

WebService Time Out

Post by Gius »

Hello,
I'm calling a WebService (using the WebService Transformer).
When the WebService return a correct answer, all is ok.
But when for example, I change the value of a field in the XML input then the WebService should return me a controled Error, But the WebService is giving me a timeout.

If for the same XML I use a Soap GUI ( Postam for example ), then I receive the correct Error Messages as the answer to the WebService.

Does someone knows how to resolve this please ?

Thank You -
Gius
Participant
Posts: 29
Joined: Mon Mar 09, 2015 2:10 am

Re: WebService Time Out

Post by Gius »

This is the XML Output I should receive ...
(from Postman, it is a Soap GUI)

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>Client</faultcode>
<faultstring>An error occurred while processing the service request.</faultstring>
<faultactor></faultactor>
<detail>
<UnexpectedError>
<wsrf-bf:Timestamp xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">2 ... :Timestamp>
<wsrf-bf:ErrorCode xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">3 ... :ErrorCode>
<wsrf-bf:Description xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">R ... eException | BIP2230 | Text:Caught exception and rethrowing | Insert:com.domgen.service.processPricing_2.SOAP Extract || RecoverableException | BIP2230 | Text:Caught exception and rethrowing | Insert:com.domgen.service.processPricing_2.SF_GetPrice_WebService.SPCall_PDS_PricingLookupFullByReference || RecoverableException | BIP2488 | Text:Error detected, rethrowing | Insert:com.domgen.service.process_PDS_PDSPricingLookupFullByReference.Main | Insert:428.7 | Insert:PROPAGATE TO TERMINAL 'out2' FINALIZE DEFAULT DELETE DEFAULT; || RecoverableException | BIP2230 | Text:Caught exception and rethrowing | Insert:com.domgen.service.processPricing_2.SF_GetPrice_WebService.SF_Campaign.SF_GetRatabasePrice.PrepareRequest_RBWebService_AsIs || RecoverableException | BIP2488 | Text:Error detected, rethrowing | Insert:com.domgen.service.process_Request_SOAP_RB_GetRateRatabaseObjects_Compute.Main | Insert:412.4 | Insert:PROPAGATE TO TERMINAL 'out' FINALIZE DEFAULT DELETE DEFAULT; || RecoverableException | BIP3752 | Text:Error occurred in ImbSOAPReplyHelper::makeSOAPReply() || RecoverableException | BIP3701 | Text:Error Making JNI Call: method_com_ibm_broker_axis2_Axis2Invoker_prepareToSendReplyNonSOAP | Insert:method_com_ibm_broker_axis2_Axis2Invoker_prepareToSendReplyNonSOAP | Insert:org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: An invalid XML character (Unicode: 0x48) was found in the prolog of the document. | Insert:Frame : 0 org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: An invalid XML character (Unicode: 0x48) was found in the prolog of the document.| @: org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:293)| @: org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:104)| @: org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:568)| @: com.ibm.broker.axis2.SoapUtilities.wrapDataInSoapEnvelopeIfRequiredAvoidingAxis2(SoapUtilities.java:1810)| @: com.ibm.broker.axis2.Axis2Invoker.prepareToSendReplyNonSOAP(Axis2Invoker.java:1271)| @: com.ibm.broker.plugin.MbRoute._propagate(Native Method)| @: com.ibm.broker.plugin.MbRoute.propagate(MbRoute.java:95)| @: com.ibm.broker.soap.SoapExtractNode.routeToOperationLabelNode(SoapExtractNode.java:543)| @: com.ibm.broker.soap.SoapExtractNode.evaluate(SoapExtractNode.java:275)| @: com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1491)|Frame : 1 javax.xml.stream.XMLStreamException: An invalid XML character (Unicode: 0x48) was found in the prolog of the document.| @: com.ibm.xml.xlxp2.api.stax.msg.StAXMessageProvider.throwWrappedXMLStreamException(StAXMessageProvider.java:76)| @: com.ibm.xml.xlxp2.api.stax.XMLStreamReaderImpl.produceFatalErrorEvent(XMLStreamReaderImpl.java:2008)| @: com.ibm.xml.xlxp2.api.jaxb.JAXBXMLStreamReader.produceFatalErrorEvent(JAXBXMLStreamReader.java:356)| @: com.ibm.xml.xlxp2.scan.DocumentScanner.reportFatalError(DocumentScanner.java:4871)| @: com.ibm.xml.xlxp2.scan.DocumentScanner.reportFatalError(DocumentScanner.java:1212)| @: com.ibm.xml.xlxp2.scan.DocumentScanner.scanProlog(DocumentScanner.java:1777)| @: com.ibm.xml.xlxp2.scan.DocumentScanner.nextEvent(DocumentScanner.java:1323)| @: com.ibm.xml.xlxp2.api.stax.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:581)| @: com.ibm.xml.xlxp2.api.stax.XMLInputFactoryImpl$XMLStreamReaderProxyImpl.next(XMLInputFactoryImpl.java:183)| @: com.ibm.xml.xlxp2.api.wssec.WSSXMLInputFactory$WSSStreamReaderProxy.next(WSSXMLInputFactory.java:55)| @: org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:672)| @: org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)| @: org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:104)| @: org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:568)| @: com.ibm.broker.axis2.SoapUtilities.wrapDataInSoapEnvelopeIfRequiredAvoidingAxis2(SoapUtilities.java:1810)| @: com.ibm.broker.axis2.Axis2Invoker.prepareToSendReplyNonSOAP(Axis2Invoker.java:1271)| @: com.ibm.broker.plugin.MbRoute._propagate(Native Method)| @: com.ibm.broker.plugin.MbRoute.propagate(MbRoute.java:95)| @: com.ibm.broker.soap.SoapExtractNode.routeToOperationLabelNode(SoapExtractNode.java:543)| @: com.ibm.broker.soap.SoapExtractNode.evaluate(SoapExtractNode.java:275)| @: com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1491)</wsrf-bf:Description>
</UnexpectedError>
<Node>com.domgen.service.processPricing_2.SOAP Reply_GetPrice</Node>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Gius
Participant
Posts: 29
Joined: Mon Mar 09, 2015 2:10 am

Re: WebService Time Out

Post by Gius »

I found why the Stage is giving a Time out, but don't know if I can resolve this in Datastage.

In the Output XML, is expecting the TAG :

<GetPriceResp>
...
</GetPriceResp>

But in some errors , the WebService does not send those TAG,

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>Client</faultcode>
<faultstring>An error occurred while processing the service request.</faultstring>
<faultactor></faultactor>
<detail>
...
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


I don't know if there is a way to Datastage to say , read any Responses ?
Thank You -
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Well... I have no way to check so this is all from fading memory. Are those tags being left out because the data element is null / missing / empty? I seem to recall that being an option, i.e. you can optionally include or exclude null elements. Perhaps that is what's going on?
-craig

"You can never have too many knives" -- Logan Nine Fingers
Gius
Participant
Posts: 29
Joined: Mon Mar 09, 2015 2:10 am

Post by Gius »

Well, the WSDL I imported is defining the Response with the Tag : GetPriceResp
But I spoke with the guy that wrote the WebServices and WSDL, and he told me that the outcome of the WebService can be also : Fault

NO Timeout with :
<?xml version=1.0 encoding=UTF-8?>
<GetPriceResp xmlns=http://domgen.com/pricing/services/1_0 xmlns:ns1=http://domgen.com/pricing/services/1_0 xmlns:ns2=http://domgen.com/pricing/schema/1_0>
<ErrorResponseList xmlns=http://domgen.com/core/schema/1_0>
<Error>

YES I have a TimeOut with:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>

In the case of the Response with the Tag "Fault", I suppose the problem is that the Stage WebService Transform, is waiting a Response with the Tag "GetPriceResp", then give a TimeOut.
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Try this...it might provide you with some options, if the change in payload is impacting the default output link parsing....

....by default, the stage takes the details for parsing the output link from the WSDL itself...but at times, the WSDL might be wrong, incomplete, edited, or for some other design reason, sending back a different response based on a particular condition...

So....make a copy of your job....remove the WSDL from the parsing set-up.

Put one large longvarchar on your output link....(no other columns)... name it something like "outputPayload". Give it a long length and put a single "slash" in the Description Property.

...then...look for the message tab and the pull down that says something like "user defined message", and select this new column you just created.

For testing, send the output link to a Sequential Stage. use NONE and NONE for delimiter and quote characters. Your payload should go out to disk with all of its contents. You can figure out from there how best to parse it under certain conditions (and probably eventually remove the sequential stage, which is just there for testing). If in a Server Job, use 000 for the delimieter and quote character properties.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
Post Reply