Thursday, 18 May 2017

IBM Integration Bus - Modifying the Listener Ports for the HTTPConnector

One of my colleagues was endeavouring to change the port on which the HTTPConnector object listens within an IBM Integration Bus 10 environment.

In the past, she'd have run this command: -

mqsichangeproperties TESTNODE_iibadmin -e default -o HTTPConnector -n 8000

and then used this command to check: -

mqsireportproperties TESTNODE_iibadmin -e default -o HTTPConnector -r

However, she was finding that the port didn't change.

We dug into the documentation, and found this: -

You must use the explicitlySetPortNumber attribute, because the port attribute no longer works.


I validated this on my own IIB 10.0.0.8 box: -

Confirm the port on which it is listening

netstat -aon | grep LISTEN

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:11883         0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 :::111                  :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::8080                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::22                   :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:25                  :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::8443                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::4414                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::8000                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:11883               :::*                    LISTEN      off (0.00/0/0)

Changed the port from 8000 to 9000

mqsichangeproperties TESTNODE_iibadmin -e default -o HTTPConnector -n explicitlySetPortNumber -v 9000

BIP8071I: Successful command completion. 

Restart the Integration Service ( fka Execution Group )

mqsistopmsgflow TESTNODE_iibadmin -e default

BIP1188I: Stopping the integration server 'default'...
BIP1189I: The integration server 'default' is reported as stopped.
BIP8071I: Successful command completion.


mqsistartmsgflow TESTNODE_iibadmin -e default

BIP1186I: Starting the integration server 'default'...
BIP1187I: The integration server 'default' is reported as started.
BIP8071I: Successful command completion.


Confirm the port on which it is listening

netstat -aon | grep LISTEN

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 127.0.0.1:11883         0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp6       0      0 :::111                  :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::8080                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::22                   :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:25                  :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::8443                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::4414                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 :::9000                 :::*                    LISTEN      off (0.00/0/0)
tcp6       0      0 ::1:11883               :::*                    LISTEN      off (0.00/0/0)


Validate the Configuration

mqsireportproperties TESTNODE_iibadmin -e default -o HTTPConnector -r

HTTPConnector
  uuid='HTTPConnector'
  userTraceLevel='none'
  traceLevel='none'
  userTraceFilter='none'
  traceFilter='none'
  port='9000'
  address=''
  maxPostSize=''
  acceptCount=''
  compressableMimeTypes=''
  compression=''
  connectionLinger=''
  connectionTimeout=''
  maxHttpHeaderSize=''
  maxKeepAliveRequests='0'
  maxThreads=''
  minSpareThreads=''
  noCompressionUserAgents=''
  restrictedUserAgents=''
  socketBuffer=''
  tcpNoDelay='true'
  explicitlySetPortNumber='9000'
  enableLookups=''
  enableMQListener=''
  shutdownDelay=''
  allowCrossConnectorPolling=''
  autoRespondHTTPHEADRequests=''
  integratedWindowsAuthentication=''
  iwaTimeoutSeconds='300'
  serverName=''
  corsEnabled='false'
  corsAllowOrigins='*'
  corsAllowCredentials='false'
  corsExposeHeaders='Content-Type'
  corsMaxAge='-1'
  corsAllowMethods='GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS'
  corsAllowHeaders='Accept,Accept-Language,Content-Language,Content-Type'
  Connector
    port='9000'
    type='Embedded'

    URLRegistration
      url='/Canary'
      outstandingRequests='0'
      UsedBySOAPNNodes='TRUE'
      UsedByHTTPNNodes='FALSE'
      nodeLabel='SOAP Input'
        flowLabel='gen.Canary'

BIP8071I: Successful command completion. 


Note that I've also configured my Integration Server to use the Embedded HTTP Listener: -

mqsichangeproperties TESTNODE_iibadmin -e default -o ExecutionGroup -n httpNodesUseEmbeddedListener -v true 

as evidenced above.

Sources: -




No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...