Wednesday 10 August 2016

A Refreshing problem to have...

So to begin, I'll set the scene.
I was creating a script to test an IIB set up i had/have. I was setting the HTTP port and the SOAP port to use the global listener rather than embedded listeners and also testing a IBM MQ message flow.

After creating the script, I deployed a bar file of three flows; one for a simple request and respond on MQ, one that sends a request to the HTTP port, and a final flow that sends a request for a SOAP wsdl.

Now the bar file deployed and the http request worked fine. Well done me. But upon testing the SOAP request I kept getting the error "The resource does not exist".

The test i was deploying was as such
       "curl -i http://localhost:myPort/mySoapTest?wsdl"
So i tested;

  • The spelling of the command
  • The flow inside the bar file
  • The HTTP command for SOAP
  • That the bar file wasn't corrupt
  • That the execution group was running 
  • The integration server was deployed
  • The same command but at the default port of "7080"
VOILA. It worked. Which suggested the SOAP connector wasn't listening globally (to the broker).
To check i ran;
   "mqsireportroperties myBroker -e IVP -o ExecutionGroup -n soapNodesUseEmbeddedListener"
which returned "false" showing the soap node should be using the global port and not 7080.
To check this I ran the following command.
  "mqsireportproperties myBroker -b httplistener -o HTTPListener -a"
The results showed that HTTP Connector had two connectors. 
One of these connectors suggested that the HTTP port was set to the global port, the other was a SOAP connector and suggested it was still using its default port.

So it would appear, that the two are out of sync and in order to solve this problem, all i needed was a simple "refresh" to make sure all the connectors are up-to-date.

So my advice is this.

refresh MQ Queue Managers and IIB brokers after listener and port changes.*
*maybe after other things too... I'm yet to learn these.

No comments:

Post a Comment