Author |
Message
|
fazz |
Posted: Fri Mar 10, 2006 2:43 am Post subject: HTTPInput, message exception and re-processing |
|
|
 Centurion
Joined: 20 Feb 2004 Posts: 144 Location: England
|
Hi all,
Wonder if anyone can help me out....
I have a flow which receives a message via the HTTPInput node, some processing takes place, if an exception occurs anywhere downstream, the message comes back to the input node, a SOAP error message is sent to the calling app......that all fine, but the flow then reads the message as new from the input and tries to process again.....why would it do this, I want the flow to end at the point of sending a message back, why does it try to re-process?
I have tried numerous designs, i.e wiring up the catch node and handling the error by sending a reply message via the HTTPReply node, but when this completes ok, the message then gets read of the HTTPInput node again.
Any ideas?
Cheers
Simon |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 10, 2006 3:02 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi fazz,
What tool are you using to send the SOAP message ?
If you are saying that the message is resent, then I would think that, the fault message is being resent the second time, right ? or the input message ?
Regards. |
|
Back to top |
|
 |
fazz |
Posted: Fri Mar 10, 2006 3:14 am Post subject: |
|
|
 Centurion
Joined: 20 Feb 2004 Posts: 144 Location: England
|
Hello,
The tool is a custom built one, not by me, by an old colleague.
This is an extract from the trace
Code: |
2006-03-10 10:26:30.674665 2188 UserTrace BIP4124I: Message propagated to 'out' terminal of compute node 'WPO11_Routing.Encode SOAP'.
2006-03-10 10:26:40.684204 2188 Error BIP3120E: Exception condition detected on input node 'WPO11_Routing.HTTP Input'.
The input node 'WPO11_Routing.HTTP Input' detected an error whilst processing a message. The message flow has been rolled-back and a fault message returned to the requesting client. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2006-03-10 10:26:40.684329 2188 RecoverableException BIP2230E: Error detected whilst processing a message in node 'WPO11_Routing.HTTP Request'.
The message broker detected an error whilst processing a message in node 'WPO11_Routing.HTTP Request'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2006-03-10 10:26:40.684471 2188 RecoverableException BIP3162S: An error occured whilst performing a Web Service request. The HTTP Request Header bitstream (if any) sent to the server was: 'X'436f6e74656e742d4c656e6774683a203933380d0a436f6e74656e742d547970653a20746578742f786d6c3b20636861727365743d7574662d380d0a486f73743a206c6f63616c686f73740d0a534f4150416374696f6e3a2022220d0a0d0a''. The HTTP Request Messsage Body bitstream (if any) sent to the server was: 'X'3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d38223f3e3c736f61703a456e76656c6f706520786d6c6e733a736f61703d22687474703a2f2f736368656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f2220786d6c6e733a7873693d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612d696e7374616e63652220786d6c6e733a7873643d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d61223e3c736f61703a426f64793e3c50726f636573734d657373616765526573706f6e736520786d6c6e733d224d65737361676553657276696365223e266c743b3f786d6c2076657273696f6e3d2671756f743b312e302671756f743b20656e636f64696e673d2671756f743b5554462d382671756f743b3f2667743b0a266c743b4d5757532076657273696f6e3d2671756f743b312e302671756f743b2667743b0a09266c743b5359534844522667743b0a0909266c743b5349442667743b4d5753432e5343553031266c743b2f5349442667743b0a0909266c743b434c49442667743b303138323720373137373333266c743b2f434c49442667743b0a09266c743b2f5359534844522667743b0a09266c743b444154412667743b0a0909266c743b4445502667743b4c4852266c743b2f4445502667743b0a0909266c743b52534e4f2667743b3132333435266c743b2f52534e4f2667743b0a0909266c743b434f4e4e4f2667743b313233343536373839414243444546266c743b2f434f4e4e4f2667743b0a0909266c743b44444154452667743b3230303530313031266c743b2f44444154452667743b0a0909266c743b4454494d452667743b31313a3030266c743b2f4454494d452667743b0a0909266c743b535441542667743b414141266c743b2f535441542667743b0a0909266c743b50444154452667743b3230303430313031266c743b2f50444154452667743b0a0909266c743b524e414d452667743b4e6f6b69612074657374207265636569766572204e616d65266c743b2f524e414d452667743b0a0909266c743b52454d2667743b54657374266c743b2f52454d2667743b0a0909266c743b5049454345532667743b31266c743b2f5049454345532667743b0a09266c743b2f444154412667743b0a266c743b2f4d5757532667743b0a3c2f50726f636573734d657373616765526573706f6e73653e3c2f736f61703a426f64793e3c2f736f61703a456e76656c6f70653e''. The HTTP Reply Header bitstream (if any) received from the server was: ''. The HTTP Reply Message Body bitstream (if any) received from the server was: ''.
Ensure that the HTTP data is valid.
See the following messages for information pertaining to this error.
2006-03-10 10:26:40.686126 2188 RecoverableException BIP3152S: A Web Service request has detected a Socket error whilst invoking a web service located at host localhost, on port 7080, on path /MessageService.
This may be a transient error, such as a server not responding or it maybe a symptom an invalid hostname and/or port number.
Check that the hostname and port number are valid, and point to a functioning Web Service.
2006-03-10 10:26:40.686241 2188 socketTimeoutException BIP3151S: A timeout occured whilst performing a TCP/IP socket operation. Operation: ::select(). Error Code: 0. Timeout in seconds: 10. Error Text: The operation completed successfully.
.
This may be a transient error, such as a server is busy or it could be that the server is no longer responding.
See the following messages for information pertaining to this error.
2006-03-10 10:26:41.688865 2188 UserTrace BIP3122I: Message received and propagated to 'out' terminal of HTTP input node 'WPO11_Routing.HTTP Input'.
2006-03-10 10:26:41.689060 2188 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'WPO11_Routing.HTTP Input' to handle portion of incoming message of length 364 bytes beginning at offset '0'.
2006-03-10 10:26:41.689445 2188 UserTrace BIP6061I: Parser type 'HTTPInputHeader' created on behalf of node 'WPO11_Routing.HTTP Input' to handle portion of incoming message of length '142' bytes beginning at offset '364'. Parser type selected based on value 'WSINPHDR' from previous parser.
2006-03-10 10:26:41.689666 2188 UserTrace BIP6061I: Parser type 'XMLNS' created on behalf of node 'WPO11_Routing.HTTP Input' to handle portion of incoming message of length '938' bytes beginning at offset '506'. Parser type selected based on value 'XMLNS' from previous parser.
|
You can see the exception occurs, message is rolled back to the inptu node and a SOAP fault message is sent back.
But then look at the last bit of the trace, its like it receives a band new message??
Cheers
Simon |
|
Back to top |
|
 |
fazz |
Posted: Fri Mar 10, 2006 3:25 am Post subject: |
|
|
 Centurion
Joined: 20 Feb 2004 Posts: 144 Location: England
|
These are the results from a trace node right after the input node....
it shows 2 messages coming in , the only slight difference is the HTTPInput header has a couple less fields in the second message...
Code: |
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1208
(0x03000000):Transactional = FALSE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-03-10 11:21:59.406'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'SOAP-HTTP'
(0x03000000):Topic = NULL
)
(0x01000000):HTTPInputHeader = (
(0x03000000):X-Original-HTTP-Command = 'POST http://localhost:7080/MessageService HTTP/1.1'
(0x03000000):User-Agent = 'Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 1.1.4322.2032)'
(0x03000000):Content-Type = 'text/xml; charset=utf-8'
(0x03000000):SOAPAction = '""'
(0x03000000):Content-Length = '911'
(0x03000000):Expect = '100-continue'
(0x03000000):Host = 'localhost:7080'
)
(0x01000010):XMLNS = (
(0x05000018):XML = (
(0x06000011): = '1.0'
(0x06000012): = 'utf-8'
)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x07000012)xmlns:soap = 'http://schemas.xmlsoap.org/soap/envelope/'
(0x07000012)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
(0x07000012)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000)MessageService:ProcessMessage = (
(0x07000012):xmlns = 'MessageService'
(0x02000000): = '<?xml version="1.0" encoding="UTF-8"?>
<MWWS version="1.0">
<SYSHDR>
<SID>MWSC.SCU01</SID>
<CLID>01827 717733</CLID>
</SYSHDR>
<DATA>
<DEP>LHR</DEP>
<RSNO>12345</RSNO>
<CONNO>123456789ABCDEF</CONNO>
<DDATE>20050101</DDATE>
<DTIME>11:00</DTIME>
<STAT>AAA</STAT>
<PDATE>20040101</PDATE>
<RNAME>name</RNAME>
<REM>Test</REM>
<PIECES>1</PIECES>
</DATA>
</MWWS>
'
)
)
)
)
)
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1208
(0x03000000):Transactional = FALSE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-03-10 11:21:59.406'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'SOAP-HTTP'
(0x03000000):Topic = NULL
)
(0x01000000):HTTPInputHeader = (
(0x03000000):X-Original-HTTP-Command = 'POST http://localhost/MessageService HTTP/1.0'
(0x03000000):Content-Length = '938'
(0x03000000):Content-Type = 'text/xml; charset=utf-8'
(0x03000000):Host = 'localhost'
(0x03000000):SOAPAction = '""'
)
(0x01000010):XMLNS = (
(0x05000018):XML = (
(0x06000011): = '1.0'
(0x06000012): = 'UTF-8'
)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x07000012)xmlns:soap = 'http://schemas.xmlsoap.org/soap/envelope/'
(0x07000012)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
(0x07000012)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000)MessageService:ProcessMessageResponse = (
(0x07000012):xmlns = 'MessageService'
(0x02000000): = '<?xml version="1.0" encoding="UTF-8"?>
<MWWS version="1.0">
<SYSHDR>
<SID>MWSC.SCU01</SID>
<CLID>01827 717733</CLID>
</SYSHDR>
<DATA>
<DEP>LHR</DEP>
<RSNO>12345</RSNO>
<CONNO>123456789ABCDEF</CONNO>
<DDATE>20050101</DDATE>
<DTIME>11:00</DTIME>
<STAT>AAA</STAT>
<PDATE>20040101</PDATE>
<RNAME>name</RNAME>
<REM>Test</REM>
<PIECES>1</PIECES>
</DATA>
</MWWS>
'
)
)
)
)
)
|
|
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 10, 2006 3:32 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
|
Back to top |
|
 |
fazz |
Posted: Fri Mar 10, 2006 3:48 am Post subject: |
|
|
 Centurion
Joined: 20 Feb 2004 Posts: 144 Location: England
|
I've downloaded NetTool v3.3.1, but as you said in you other post, I can't find an HTTP send button
How do I get this tool to call my flow with a SOAP message?
Or do I need an older version, if so, were can I get a copy from?
Thanks for your help, think you could be on the right lines...
Simon |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 10, 2006 4:00 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi fazz,
The previous versions are also available there....there will be a link to see the older versions, on the page where u selected the 1.3.3.....I used 1.0.4 or so....that works.
Regards. |
|
Back to top |
|
 |
mgk |
Posted: Fri Mar 10, 2006 4:24 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Hi,
The first message is sent in as:
Code: |
'POST http://localhost:7080/MessageService HTTP/1.1' |
The second message is:
Code: |
'POST http://localhost/MessageService HTTP/1.0' |
Here is is clear that the second is HTTP 1.0, and so your custom client app is retrying the message, having treated the error as a case where it should fall back from HTTP 1.1 to 1.0. Note many of the other headers are consistent with this as well: E.G. Host has a port in the first case, content length is different etc.
Your app is also using 'proxy' syntax as well for some odd reason, are you using a proxy?
I suggest a better client would help here
Regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
fazz |
Posted: Fri Mar 10, 2006 5:35 am Post subject: |
|
|
 Centurion
Joined: 20 Feb 2004 Posts: 144 Location: England
|
Right, downloaded v 1.04 of Nettool, still getting the same problem.
It does look like its posting twice, once with HTTP 1.0 and once with HTTP 1.1
Could it be the brokers http listener, or does Nettool suffer the same problem as my other utitly?
Nettool does display the response back from the flow reporting an error.
If the flow does not error, and it sends a http reply back, no double post happens, it only happens if an error occurs.
Cheers
Simon |
|
Back to top |
|
 |
elvis_gn |
Posted: Fri Mar 10, 2006 5:43 am Post subject: |
|
|
 Padawan
Joined: 08 Oct 2004 Posts: 1905 Location: Dubai
|
Hi fazz,
Explain this.
You are posting once...what is the reply your getting ? Does it show on the NetTool Display...
Is the displayed message being sent again...?
Run the debugger and check the message, also check the settings on the properties of the messages...You could be setting some kind of Request-reply on the outputted message
Regards. |
|
Back to top |
|
 |
mgk |
Posted: Fri Mar 10, 2006 5:59 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
According to the error you posted earlier :
Quote: |
RecoverableException BIP3152S: A Web Service request has detected a Socket error whilst invoking a web service located at host localhost, on port 7080, on path /MessageService |
It appears that you are invoking the same service again from an HTTP request node. Seems odd to me.
Can you post the whole flow design, along with the input message and and reply message / errors you are seeing in netcat.
regards _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
|