About Me

About Me
Working with SOA technologies , implementing solution using IBM BPM , IBM Integration Designer,IBM WODM and IBM DataPower

About me

View Mahesh Dondeti's profile on LinkedIn

upcoming posts on IBM Bluemix,Devops,Worklight,Node js.

Wednesday 11 March 2015

Port issue with HTTP Node in IBM Integration Bus

Scenario:-

Create a flow with HTTP Input  and HTTP Reply Node and deploy into Integration server.Trying to invoke/call the flow with HTTP Request Node.



Flow Steps:
  1. Used MQ Input node to get xml data from Queue which contains  target service URL
  2.  Used compute node  to fetch URL from XML and set it to HTTPRequestURL
SET OutputLocalEnvironment.Destination.HTTP.RequestURL=InputRoot.XMLNSC.ROOT.URL;
  1. Used  HTTP Request  node to invoke service
  2. Used compute node to set response
  3. Sent HTTP response to  Webshphere MQ

Problem1:- Unable to set HTTP.RequestURL in using Compute Node,It shows default config value in debug mode
Cause:- Haven’t changed (set to Message)compute mode in compute node.
Solution:- Changed compute mode to Local-environment and Message in compute node.


Problem2:- HTTP Node (404  Resource Not found Issue ) in IBM Integration Bus

 <html>
 <head>
  <title>IBM Integration Bus error report</title>
 </head>
 <body>
  <h1>HTTP Status 404 - Resource Not Found</h1>

Cause:-Issue with the http port number in IIB

Solution:-.
  • Check default port number for HTTP
Syntax:
mqsireportproperties Nodename –e servername –o objectname –n port
Example: 
mqsireportproperties IIBDEVNODE –e IIBServer –o HTTPConnector –n port



  • Configure/change required port number by using below command,if you want to use other port number.
    mqsichangeproperties IBNODE -b webadmin -o HTTPConnector 
         -n port -v new_port_number 

Performance tuning the HTTPRequest Node


By default, the HTTPRequest node uses the platform default for its sockets tcpnodelay setting. This setting disables the use of Nagles Algorithm, which is a TCP feature that buffers up small packets into a single large packet for more efficient transmission. This setting can briefly delay the transmission of smaller packets, especially on some platforms. For example, on AIX, it has resulted in poor response time and throughput when sending small messages using the HTTPRequest node. To disable Nagles Algorithm, use this setting:

         mqsichangeproperties IBNODE -e <ServerName> -o  ComIbmSocketConnectionManager -n tcpNoDelay -v true

It is much more efficient from a performance perspective to use persistent HTTP connections. To ensure that the HTTPRequest node uses persistent connections, check the box on the node labeled "Enable HTTP/1.1 keep-alive" under "HTTP Settings" on the node properties. The remote end to which you are connecting must also be configured to accept persistent HTTP connections, and this configuration depends on the Web service provider/HTTP Server you are using. By default, the socket used in the request node is recycled every 90 requests. To set the node to use the same socket for an unlimited number of requests, use the command:

mqsichangeproperties <node> -e <ServerName> -o
                        ComIbmSocketConnectionManager -n  maxKeepAliveRequests -v 0

I hope this post helps you. So far this is my best effort to explain.

Please share your valuable suggestions and feedback to my mail id"mdondetisbit@gmail.com" to improve myself.
Please post any issues/query’s related to BPM,WODM,IIB and DATAPOWER  to "mdondetisbit@gmail.com"