Author |
Message
|
kirani |
Posted: Wed Oct 31, 2007 9:48 am Post subject: BIP3152 Error |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
All,
We are getting an exception (see below) when making a webservice call to our mid-tier server from the Message Broker server. We tried calling the same webservice from outside of Message Broker and it's responding correctly. Another problem I've seen is that the ExceptionList always shows a default hostname/port even if I override the parameter in the bar file when deploying. Is there any tool I can use to debug this kind of problem?
Exception..
Code: |
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x03000000):Line = 616
(0x03000000):Function = 'ImbDataFlowNode::createExceptionList'
(0x03000000):Type = 'ComIbmWSRequestNode'
(0x03000000):Name = 'IVR03_MAIN_01#FCMComposite_1_3'
(0x03000000):Label = 'IVR03_MAIN_01.HTTP Request'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Node throwing exception'
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\WebServices\WSLibrary\ImbWSRequestNode.cpp'
(0x03000000):Line = 780
(0x03000000):Function = 'ImbWSRequestNode::evaluate'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 3162
(0x03000000):Text = 'WebService Request Exception'
(0x01000000):Insert = (
(0x03000000):Type = 12
(0x03000000):Text = '436f6e74656e742d4c656e6774683a203830330d0a504f53543a202f476174657761792e61736d782f5075626c69736841757468656e7469636174656443616c6c0d0a4854545056657273696f6e3a20485454502f312e310d0a486f73743a2041484643434153445330330d0a436f6e74656e742d547970653a20746578742f786d6c3b20636861727365743d7574662d380d0a534f4150416374696f6e3a20486f6e64612e434153532e4342532f5075626c69736841757468656e7469636174656443616c6c0d0a0d0a'
)
(0x01000000):Insert = (
(0x03000000):Type = 12
(0x03000000):Text = '3c3f786d6c2076657273696f6e3d22312e30223f3e3c736f6170656e763a456e76656c6f706520786d6c6e733a736f6170656e763d22687474703a2f2f736368656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f2220786d6c6e733a746e733d22486f6e64612e434153532e4342532220786d6c6e733a73313d22687474703a2f2f74656d707572692e6f72672f476c6f62616c732e7873642220786d6c6e733a7873643d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612220786d6c6e733a7873693d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612d696e7374616e63652220786d6c6e733a786d6c3d22687474703a2f2f7777772e77332e6f72672f584d4c2f313939382f6e616d657370616365223e3c736f6170656e763a426f64793e3c746e733a5075626c69736841757468656e7469636174656443616c6c3e3c746e733a6163636f756e744e756d6265723e30303030303038383235373736343c2f746e733a6163636f756e744e756d6265723e3c746e733a636f756e747279436f64653e3035313c2f746e733a636f756e747279436f64653e3c746e733a6c616e677561676553656c65637465643e454e3c2f746e733a6c616e677561676553656c65637465643e3c746e733a6d656e754f7074696f6e53656c65637465643e5041594d454e54325f53504545445041593c2f746e733a6d656e754f7074696f6e53656c65637465643e3c746e733a726567696f6e3e514341533c2f746e733a726567696f6e3e3c746e733a726f7574656454656c4e756d6265723e31383838333630393739323c2f746e733a726f7574656454656c4e756d6265723e3c746e733a77696e4d616368696e654e616d653e4148315f554e4c33313c2f746e733a77696e4d616368696e654e616d653e3c746e733a77696e557365724e616d653e43415353574d51493c2f746e733a77696e557365724e616d653e3c2f746e733a5075626c69736841757468656e7469636174656443616c6c3e3c2f736f6170656e763a426f64793e3c2f736f6170656e763a456e76656c6f70653e'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = ''
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = ''
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'POST /Gateway.asmx HTTP/1.0'
)
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\WebServices\WSLibrary\ImbWSRequest.cpp'
(0x03000000):Line = 552
(0x03000000):Function = 'ImbWSRequest::makeWSRequest'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 3152
(0x03000000):Text = 'A Web Service request has detected a SOCKET error whilst invoking a web service located at host &1, on port &2, on path &3.'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'ahfccasds03'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '28000'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '/Gateway.asmx'
)
(0x01000000):SocketTimeoutException = (
(0x03000000):File = 'F:\build\S600_P\src\WebServices\WSLibrary\ImbSocket.cpp'
(0x03000000):Line = 843
(0x03000000):Function = 'ImbBasicSocket::recvTimeout'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 3151
(0x03000000):Text = 'A timeout occurred whilst performing a socket operation'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '::select()'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'
)
(0x01000000):Insert = (
(0x03000000):Type = 14
(0x03000000):Text = 'The operation completed successfully.'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '6'
)
)
)
)
)
)
|
_________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
EddieA |
Posted: Wed Oct 31, 2007 4:16 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Maybe a TCP/IP packet sniffer.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 01, 2007 5:02 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'd use NetTool or TCP/IP monitor in Toolkit (if possible) to manage this instead of a sniffer per se.
easier to see what's going on. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
EddieA |
Posted: Thu Nov 01, 2007 8:42 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
I understand that Nettool can be used to drive messages into the Broker, but how is it going to show the Request/Reply made by the Broker.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Nov 01, 2007 8:50 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
NetTool can be configured to act as an HTTP Proxy/Tunnel. That is, it can be set up to forward requests from a port on the machine it's running on, to a different port on a different machine.
Then it will show the request and the reply, and at least some of the HTTP traffic.
Just like the TCP/IP Monitor view in the Toolkit. But doesn't require the full Toolkit install to run... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kirani |
Posted: Thu Nov 01, 2007 9:45 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Thanks Guys! I'll give it a try. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
EddieA |
Posted: Thu Nov 01, 2007 10:43 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
But, the OP is questioning if the request went to the correct host/port or not. How can you intercept something you don't know where the request went.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
mgk |
Posted: Fri Nov 02, 2007 1:30 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Hi.
It would be useful to see the code used to generate this request and override the URL. This request is created in a very strange way; the request line is: 'POST /Gateway.asmx HTTP/1.0' but the HTTPHeaders are:
Content-Length: 803
POST: /Gateway.asmx/PublishAuthenticatedCall
HTTPVersion: HTTP/1.1
Host: AHFCCASDS03
Content-Type: text/xml; charset=utf-8
SOAPAction: Honda.CASS.CBS/PublishAuthenticatedCall
Which suggests someone is confused about what to set in the HTTPRequestHeader parser in the tree, as they have tried to override the POST and the HTTPVersion (and the HOST is quite odd as well). I suspect they are setting things in the wrong place (they ment to use the LE?).
Also what version/fixpac is this being run on? _________________ 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 |
|
 |
kirani |
Posted: Fri Nov 02, 2007 2:39 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Here is the code that builds the HTTPRequestHeader and SOAP message.
Code: |
DECLARE RegionName EXTERNAL CHARACTER 'UCAS';
DECLARE WebServiceHost EXTERNAL CHARACTER 'AHFCCASDS03';
DECLARE WebServiceRequestURL EXTERNAL CHARACTER 'http://ahfccasds03:28000/Gateway.asmx/PublishAuthenticatedCall';
.
.
.
.
.
SET Environment.MQMD = InputRoot.MQMD;
SET OutputRoot.Properties.MessageSet = 'GN39PQ0002001';
SET OutputRoot.Properties.MessageType = 'Envelope';
SET OutputRoot.Properties.MessageFormat = 'XML1';
SET OutputRoot.HTTPRequestHeader.POST = '/Gateway.asmx/PublishAuthenticatedCall';
SET OutputRoot.HTTPRequestHeader.HTTPVersion = 'HTTP/1.1';
SET OutputRoot.HTTPRequestHeader.Host = WebServiceHost;
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'text/xml; charset=utf-8';
SET OutputRoot.HTTPRequestHeader.SOAPAction = 'Honda.CASS.CBS/PublishAuthenticatedCall';
SET OutputLocalEnvironment.Destination.HTTP.RequestLine.RequestURL = WebServiceRequestURL;
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:accountNumber = InputRoot.MRM.ACCT_NUM;
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:countryCode = InputRoot.MRM.CTL2;
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:languageSelected = TRIM(InputRoot.MRM.LANG_CODE);
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:menuOptionSelected = TRIM(InputRoot.MRM.LAST_OPTN_SELECTED);
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:region = RegionName;
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:routedTelNumber = TRIM(InputRoot.MRM.DEPT_PHONE_NUM);
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:winMachineName = Environment.WMQIRuntimeEnvInfo."QueueManagerName";
SET OutputRoot.MRM.ns:Body.hns:PublishAuthenticatedCall.hns:winUserName = 'CASSWMQI';
|
I've created 3 Message Flow properties and defaulted the values for these to match our Dev region parameters. These values are chagned in the BAR file before we deploy them to QA and Production.
We are running on MB 6.0 (FP3) on Windows 2000 server. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
kirani |
Posted: Tue Nov 06, 2007 11:53 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Hi MGK,
Do you see any problem with above code?
Thanks,
Kiran _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 12:00 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You shouldn't be using namespace prefixes on anything under OutputRoot.MRM... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kirani |
Posted: Tue Nov 06, 2007 12:52 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Jeff,
I imported the WSDL file for this message set and my message set is using XML wire format. What is the impact of using Namespace under OutputRoot.MRM in this case? _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Nov 06, 2007 1:03 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You're likely building your entire message as self-defining, rather than MRM-defined.
This means you may not be getting the validation you expect to get. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kimbert |
Posted: Tue Nov 06, 2007 1:58 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
You shouldn't be using namespace prefixes on anything under OutputRoot.MRM |
Why ever not? The MRM parser has no problem with namespaces.
You're probably thinking of namespace declarations ( xmlns attributes ). MRM, unlike XMLNS and XMLNSC, does not need them in the message tree. But that's not the problem here.
The ESQL quoted above may be incomplete, but I would expect that 'ns' and 'hns' are declared as NAMESPACE constants somewhere. Otherwise the namespaces in OutputRoot will be 'ns' and 'hns' rather than the real URLs.
Either way, if you suspect that the output tree does not match the message set, you should insert a Trace node just before the output node and check it line by line. |
|
Back to top |
|
 |
kirani |
Posted: Tue Nov 06, 2007 2:43 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Hi kimbert,
Yes, you are correct. The 'ns' and 'hns' are declared as NAMESPACE constants in my ESQL file.
Code: |
DECLARE hns NAMESPACE 'Honda.CASS.CBS';
DECLARE ns NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
|
Here is the trace output (before HTTPRequest node)
Code: |
Root ..
(
(0x01000000):Properties = (
(0x03000000):MessageSet = 'GN39PQ0002001'
(0x03000000):MessageType = 'Envelope'
(0x03000000):MessageFormat = 'XML1'
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2007-11-06 22:29:45.530'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'414d51204148315f554e4c33312020204ea52b47201d3903'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = 'text/xml; charset=utf-8'
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'LQ.L_CAS_DGRM_IVR03.001'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = 'WSREQHDR'
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 65536
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d51204148315f554e4c33312020204ea52b47201d3902'
(0x03000000):CorrelId = X'414d51204148315f554e4c33312020204ea52b47201d3903'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'AH1_UNL31 '
(0x03000000):UserIdentifier = ' '
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'tegration\CTITestHarness.exe'
(0x03000000):PutDate = DATE '2007-11-06'
(0x03000000):PutTime = GMTTIME '22:29:45.530'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):HTTPRequestHeader = (
(0x03000000):POST = '/Gateway.asmx/PublishAuthenticatedCall'
(0x03000000):HTTPVersion = 'HTTP/1.1'
(0x03000000):Host = 'AHFCASCASSQV01'
(0x03000000):Content-Type = 'text/xml; charset=utf-8'
(0x03000000):SOAPAction = 'Honda.CASS.CBS/PublishAuthenticatedCall'
)
(0x01000021):MRM = (
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000)Honda.CASS.CBS:PublishAuthenticatedCall = (
(0x0300000B)Honda.CASS.CBS:accountNumber = '00000088276339'
(0x0300000B)Honda.CASS.CBS:countryCode = '051'
(0x03000000)Honda.CASS.CBS:languageSelected = 'EN'
(0x03000000)Honda.CASS.CBS:menuOptionSelected = 'PAYMENT2_SPEEDPAY'
(0x03000000)Honda.CASS.CBS:region = 'QCAS'
(0x03000000)Honda.CASS.CBS:routedTelNumber = '18883609792'
(0x03000000)Honda.CASS.CBS:winMachineName = 'AH1_UNL31'
(0x03000000)Honda.CASS.CBS:winUserName = 'CASSWMQI'
)
)
)
)
|
There is no problem with the output message. The webservice is getting called correctly, but sometimes I get BIP3252 error. MGK suggested that I post my code that generates this request. He saw something odd in HTTPRequestHeader. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
|