ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » BIP3152 Error

Post new topic  Reply to topic Goto page 1, 2  Next
 BIP3152 Error « View previous topic :: View next topic » 
Author Message
kirani
PostPosted: Wed Oct 31, 2007 9:48 am    Post subject: BIP3152 Error Reply with quote

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
View user's profile Send private message Visit poster's website
EddieA
PostPosted: Wed Oct 31, 2007 4:16 pm    Post subject: Reply with quote

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
View user's profile Send private message
jefflowrey
PostPosted: Thu Nov 01, 2007 5:02 am    Post subject: Reply with quote

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
View user's profile Send private message
EddieA
PostPosted: Thu Nov 01, 2007 8:42 am    Post subject: Reply with quote

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
View user's profile Send private message
jefflowrey
PostPosted: Thu Nov 01, 2007 8:50 am    Post subject: Reply with quote

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
View user's profile Send private message
kirani
PostPosted: Thu Nov 01, 2007 9:45 am    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
EddieA
PostPosted: Thu Nov 01, 2007 10:43 pm    Post subject: Reply with quote

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
View user's profile Send private message
mgk
PostPosted: Fri Nov 02, 2007 1:30 am    Post subject: Reply with quote

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
View user's profile Send private message
kirani
PostPosted: Fri Nov 02, 2007 2:39 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
kirani
PostPosted: Tue Nov 06, 2007 11:53 am    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
jefflowrey
PostPosted: Tue Nov 06, 2007 12:00 pm    Post subject: Reply with quote

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
View user's profile Send private message
kirani
PostPosted: Tue Nov 06, 2007 12:52 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
jefflowrey
PostPosted: Tue Nov 06, 2007 1:03 pm    Post subject: Reply with quote

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
View user's profile Send private message
kimbert
PostPosted: Tue Nov 06, 2007 1:58 pm    Post subject: Reply with quote

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
View user's profile Send private message
kirani
PostPosted: Tue Nov 06, 2007 2:43 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » BIP3152 Error
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.