SOAP Nodes vs HTTP Nodes

HTTP and SOAP nodes can both be used to interact with Web services. Typically you use SOAP nodes when working with SOAP-based Web services.

For SOAP-based Web services, several advantages exist if you use the SOAP nodes and the SOAP message domain instead of the HTTP transport nodes and XMLNSC message domain.

  • Support for WS-Addressing, WS-Security and SOAP headers.
  • A common SOAP logical tree format, independent of the bitstream format.
  • Runtime checking against WSDL.
  • Automatic processing of SOAP with Attachments (SwA).
  • Automatic processing of Message Transmission Optimization Mechanism (MTOM).

Although the HTTP nodes can process SwA messages, you must use the MIME message domain and design your flow to handle the attachments explicitly, and use custom logic to extract and parse the SOAP.

Cases where it might be better to use HTTP nodes include:

  • Message flows that interact with Web services that use different standards, such as REST or XML-RPC.
  • Message flows that never use WS-Addressing, WS-Security, SwA, or MTOM.

IIB Useful Commands

BASIC COMMANDS:

Command for listing out all the Brokers created in the current installation

  • mqsilist

 

Command for creating the broker

  • mqsicreatebroker {BROKERNAME} -q {QMGRNAME} -i {USERNAME} -p {Password}

 

Command for Excecution group creation

  • mqsicreateexecutiongroup  {BROKERNAME} -e {EGName}

 

Command to start Execution group

  • mqsistartmsgflow {BROKERNAME} -e {EGName}

 

Command to stop Execution Group

  • mqsistopmsgflow {BROKERNAME} -e {EGName}

 

Command for deleting Execution Group

  • mqsideleteexecutiongroup -n {BROKERNAME} -e {EGName}

 

Command to specify Debug Port for EG

  • mqsichangeproperties {BROKERNAME} -e default -o ComIbmJVMManager -n jvmDebugPort -v 8117

 

Command for  Listing out all the deployed objects under Execution Group

  • mqsilist {BROKERNAME} -e default -k myApplication

 

Command for listing out all the deployed objects that are configured Library

  • mqsilist {BROKERNAME} -e default -k myApplication -y {myEGLibraryName}

 

Command to return detailed information about Application

  • mqsilist {BROKERNAME} -e default -k myApplication -d2

 

Command for listing all deployed objects that are configured in  myApplication

  • mqsilist {BROKERNAME} -e default -k myApplication -r

 

Command to list out a summary of the EG that are defined on a  broker

  • mqsilist {BROKERNAME}

 

Command for displaying detailed info about all resources for brokers on Local System

  • mqsilist -a -r -d2

 

NORMAL COMMANDS:

Command to start the Application

  • mqsistartmsgflow {BROKERNAME} -e {EGName} -k {ApplicationName}

 

Command to stop the Application

  • mqsistoptmsgflow {BROKERNAME} -e {EGName} -k {ApplicationName}

 

Command to delete the Application

  • mqsideploy {BROKERNAME} -e {EGName} -d {ApplicationName}

 

Command to know the Deployment Status

  • mqsilist {BROKERNAME} -e {EGName} -d 2

 

Command to deploy the BAR

  • mqsideploy {BROKERNAME} -e {EGName} -a {BARFileName}

 

Command to delete the BAR

  • mqsideploy {BROKERNAME} -e {EGName} -d {BARFileName}

 

Command to read the BAR

  • mqsireadbar -b {BARFileName} -r

 

BAR Override Command

  • mqsiapplybaroverride -b {BARFileName} -k {ApplicationName} -m {MessageFlowName}#{Property to change}

 

SECURITY IDENTITY COMMANDS:

Command to start the Broker

  • mqsistart {BROKERNAME};

 

Command to stop the Broker

  • mqsistop {BROKERNAME};

 

Command to register DSN with IIB

  • mqsisetdbparms {BROKERNAME} -n {DSName} -u {SchemaName} -p {Password};

 

Command to know whether Broker is associated with DSN or Not

  • mqsicvp {BROKERNAME} -n {DSName}

 

Command to give security for FTP

  • mqsisetdbparms {BROKERNAME} -n ftp::{SeuID} -u {SchemaName} -p {Password};

 

Command to give security for SMTP(Email Receiving)

  • mqsisetdbparms {BROKERNAME} -n smtp::{SeuID} -u {emailid} -p {Password};

 

Command to give security for Email Sending

  • mqsisetdbparms {BROKERNAME} -n email::{SeuID} -u {emailid} -p {Password};

 

Command to give security for JDBC Configurable Service

  • mqsisetdbparms {BROKERNAME} -n jdbc::{SeuID} -u {SchemaName} -p {Password};

 

 MONITORING COMMANDS:

Command to activate the Monitoring

  • mqsichangeflowmonitoring {BROKERNAME} -e default -k {ApplicationName} -f {FlowName} -c active

 

Command to report the Monitoring

  • mqsireportflowmonitoring {BROKERNAME} -e default -k {ApplicationName} -f {FlowName} -a

 

MQSICHANGE PROPERTY COMMANDS:

Command to report the HTTP Listener Property at Broker Level

  • mqsireportproperties {BROKERNAME} -b httplistener -o HTTPConnector -a

 

Command to report the HTTP Listener Property at EG Level

  • mqsireportproperties {BROKERNAME} -e default -o HTTPConnector -a

 

Command to Change the HTTP Listener Port Number(Broker Level)

  • mqsichangeproperties {BROKERNAME} -b httplistener -o HTTPConnector -n port -v 7800

 

Command to change the HTTP Listener Port Number at EG Level

  • mqsichangeproperties {BROKERNAME} -e default -o HTTPConnector -n port -v 7800

 

Command to Trace the HTTPListener

 

  • mqsireportbroker {BROKERNAME}

Picking files randomly for mock test

There are situations where we need mimic simulation for various scenario like  success, error, failure etc. We do the same by creating a mock test flow which drops files into the destination randomly and here is the ESQL code to pick those random files.

CREATE COMPUTE MODULE RandomFiles
  CREATE FUNCTION Main() RETURNS BOOLEAN
  BEGIN

    DECLARE R DECIMAL RAND(1);
    DECLARE fileName CHARACTER getRootElement(InputRoot);

    SET fileName = CASE

    WHEN R > 0.0 AND R < 0.3 THEN fileName ||'_success.txt'
    WHEN R > 0.3 AND R < 0.6 THEN fileName ||'_error.txt'
    ELSE fileName ||'_timeout.txt'
    END;

    CALL SetDestinationFileName(OutputLocalEnvironment, fileName);

    RETURN TRUE;
  END;

  CREATE PROCEDURE CopyMessageHeaders() BEGIN
    DECLARE I INTEGER 1;
    DECLARE J INTEGER;
    SET J = CARDINALITY(InputRoot.*[]);
    WHILE I < J DO
      SET OutputRoot.*[I] = InputRoot.*[I];
      SET I = I + 1;
    END WHILE;
  END;

  CREATE PROCEDURE CopyEntireMessage() BEGIN
    SET OutputRoot = InputRoot;
  END;
END MODULE;

CREATE PROCEDURE SetDestinationFileName(IN LocalEnvironment REFERENCE,IN Name CHARACTER)
BEGIN
  SET LocalEnvironment.Destination.File.Name = Name;
END;

CREATE FUNCTION getRootElement (In ipRef REFERENCE ) RETURNS CHARACTER
BEGIN
  RETURN FIELDNAME(ipRef.*:*[<].*:*[<]);
END;

If you are looking for IIB training, ESQL training and support, please connect with us at support@vaithu.com/WhatsApp +1 6123058684.