Monday, July 17, 2017

Email Output Node in Compute Node :


Set mail configuration Dynamically :

SET OutputRoot.EmailOutputHeader.To = ' ';
SET OutputRoot.EmailOutputHeader.Cc = ' ';
SET OutputRoot.EmailOutputHeader.Bcc = ' ';
SET OutputRoot.EmailOutputHeader.From =' ';
SET OutputRoot.EmailOutputHeader."Reply-To" = ' ';
SET OutputLocalEnvironment.Destination.Email.SMTPServer ='<smtp.server:port>';

SET OutputRoot.EmailOutputHeader.Subject = ' ';

SET OutputLocalEnvironment.Destination.Email.BodyContentType = 'text/plain';

Email Attachment:

SET OutputLocalEnvironment.Destination.Email.Attachment.Content = ' ';
SET OutputLocalEnvironment.Destination.Email.Attachment.ContentName = ' ';
SET OutputLocalEnvironment.Destination.Email.Attachment.ContentType = 'text/xml';
SET OutputLocalEnvironment.Destination.Email.Attachment.ContentEncoding = '7bit';
SET OutputLocalEnvironment.Destination.Email.MultiPartContentType = 'mixed';


If you wanted to add HTML in the message Body you should use below code :

-- Create a new message body, which will be sent as the main text of the email.
DECLARE cReedamMsgBody CHARACTER;


--When we use concatenate symbol in between the html text, You can assign Dynamic variable right there in middle of the text.
But the assigned variable should be Character, It will not accept integer values in that.
  
SET cReedamMsgBody = '<body><h1>Dear  ' ||rEnv.UserName||' </h1>
<h2>Thanks for Shopping at e-Commerce Online Portal</h2>
<h3>Your Payback Account has been credited with    '||cDBVALUE||'  points </h3>
<h4>Your Total Payback Account balance is '||mailtotal||' points </h4>
<p>Regards</p>
<p>Payback Admin Team</p>
</body>' ;

-- We have to cast the above body as a BLOB and send to email.
SET OutputRoot.BLOB.BLOB = CAST(cReedamMsgBody AS BLOB CCSID 1208);

Email Output Node Commands:

mqsicreateconfigurableservice IIB10NODE –c SMTP –o MYEMAILSERVER
mqsichangeproperties IIB10NODE –c SMTP –o MYEMAILSERVER –n serverName –v smtpout.secureserver.net:25
mqsisetdbparms IIB10NODE -n smtp::EmailIdentity –u username -p password
mqsichangeproperties IIB10NODE –c SMTP –o MYEMAILSERVER –n securityIdentity –v EmailIdentity

mqsistop ESS_NODE

mqsistart ESS_NODE

--------

Very soon i will cover the above scenarios with Java Compute Node.













Friday, July 14, 2017

Flow Order Node:

This node always should use to send the same message to 2 nodes one after one.

It has First and Second terminals.

When we message to go through the first terminal, If any error occurred, It won't send the message to the second terminal.

Desition Making Nodes in IIB:


Validate node
Use the Validate node to check that the message that arrives at its input terminal is as expected. You can check that the message has the expected message template properties (message domain, message set, and message type) and that the content of the message is correct. You can check the message against one or more of the message domain, message set, or message type values.
The Validate node replaces the Check node, which is deprecated in WebSphere® Message Broker Version 6.1. The Validate node works in the same way as the Check node, but it has more Validation properties to enable the validation of message content by parsers that support that capability.
Filter node
Use the Filter node with an ESQL statement to determine the next node to which the message is sent by this node. Do not use the ESQL code that you develop for use in a Filter node in any other type of node.
The node terminals are True, False, Unknown, and Failure. The message is propagated to the True terminal if the test succeeds, and to the False terminal if it fails. If the statement cannot be resolved (for example, it tests the value of a field that is not in the input message), the message is propagated to the Unknown terminal. If any other error is detected, the message is propagated to the Failure terminal.
The test in the ESQL statement can depend on message content, database content, or a combination of the two.
If you refer to a database, you can control how it is accessed by this node by specifying user and password information for each data source that is defined in the registry on the broker system. Use the mqsisetdbparms command to initialize and maintain these values.
Use this node in preference to the Compute node to provide message selection and routing; the Filter node is more efficient for this task.
FlowOrder node
You can connect the terminals of this node to force the message to be processed by one sequence of nodes, followed by a second sequence of nodes.
Passthrough node
Use the Passthrough node to enable version control of a subflow at run time. Use this node to add a label to your subflow. By combining this label with a reserved word replacement from your version control system, you can identify which version of a subflow is included in a deployed message flow. You can use this label for your own purposes. If you include the correct version keywords in the label, you can see the value of the label:
  • Stored in the broker archive (BAR) file, by using the mqsireadbar command
  • As last deployed to a particular broker, on the properties of a deployed message flow in the IBM® Integration Toolkit
  • In the broker, if you enable user trace for that message flow
Route node
Use the Route node to direct messages that meet certain criteria down different paths of a message flow. For example, you can forward a message to different service providers based on the request details. You can also use the Route node to bypass unnecessary steps. For example, you can check to see whether certain data is in a message, and run a database lookup operation only if the data is missing. If you set the Distribution Mode property to All, you can trigger multiple events that each require different conditions. For example, you can log requests that relate to a particular account identifier, and send requests that relate to a particular product to be audited.
Use the Route node to implement message routing with minimal programming logic. For more advanced routing scenarios, use a Compute node or a JavaCompute node.
RouteToLabel node
Use the RouteToLabel node after a Compute node or a JavaCompute node for complex routing. Define a list of destinations in a Compute or JavaComputenode that are acted on by the RouteToLabel node. The RouteToLabel node interrogates the destinations and passes the message on to the corresponding Label node.
DatabaseRoute node
Use the DatabaseRoute node to route a message by using information from a database with applied XPath routing expressions. The node looks up a collection of named column values from a located database row and synchronously applies one or more XPath expressions to these acquired values. Use the DatabaseRoute node to implement message routing with minimal programming logic. For more advanced routing scenarios, use a Compute node or a JavaCompute node.
Label node
Use the Label node as a target for the next sequence of one or more nodes that are to process a message. Use this node in combination with the RouteToLabel node for all types of messages, or with the SOAPExtract node for SOAP messages.
The Label node routes the message to the next node in the flow and completes no processing.
ResetContentDescriptor node
Use the ResetContentDescriptor node to set new message properties that are used when the message bit stream is next parsed by a subsequent node in the message flow.
DecisionService node
Use the DecisionService node to create a decision service. A decision service contains a set of business rules that act on a message. Business rules provide capability such as routing, validation, and transformation.

Thursday, July 13, 2017

Set Port Number for Broker and Execution Group:

Explicit port ( Integration server level)

>mqsichangeproperties IB10NODE -e default -o HTTPConnector -n explicitlySetPortNumber -v 8085

C:\Program Files\IBM\WebSphere MQ\bin>mqsireportproperties IB10NODE -e default -
o HTTPConnector -a

HTTPConnector
  uuid='HTTPConnector'
  userTraceLevel='none'
  traceLevel='none'
  userTraceFilter='none'
  traceFilter='none'
  port='0'
  address=''
  maxPostSize=''
  acceptCount=''
  compressableMimeTypes=''
  compression=''
  connectionLinger=''
  connectionTimeout=''
  maxHttpHeaderSize=''
  maxKeepAliveRequests='0'
  maxThreads=''
  minSpareThreads=''
  noCompressionUserAgents=''
  restrictedUserAgents=''
  socketBuffer=''
  tcpNoDelay='true'
  explicitlySetPortNumber='8085'
  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'

BIP8071I: Successful command completion.
Integration node wise

>mqsichangeproperties IB10NODE -b httplistener -o HTTPConnector   -n port -v 8086



C:\Program Files\IBM\WebSphere MQ\bin>mqsireportproperties IB10NODE -b httpliste
ner -o HTTPConnector -a

HTTPConnector
  uuid='HTTPConnector'
  address=''
  port='8086'
  maxPostSize=''
  acceptCount=''
  compressableMimeTypes=''
  compression=''
  connectionLinger=''
  connectionTimeout=''
  maxHttpHeaderSize=''
  maxKeepAliveRequests='0'
  maxThreads=''
  minSpareThreads=''
  noCompressionUserAgents=''
  restrictedUserAgents=''
  socketBuffer=''
  tcpNoDelay='true'
  enableLookups='false'
  serverName=''
  accessLog=''
  accessLogPattern=''
  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'

BIP8071I: Successful command completion.

Wednesday, July 5, 2017

IIB Technical and Behavioral changes :  




Web sphere Message Broker v 8.0 : 

What's New in WMB v8 : 

https://www.ibm.com/support/knowledgecenter/SSKM8N_8.0.0/com.ibm.etools.mft.doc/bb23110_.htm

Behavioral changes:

https://www.ibm.com/support/knowledgecenter/SSKM8N_8.0.0/com.ibm.etools.mft.doc/bh19400_.htm

Technical Changes :

https://www.ibm.com/support/knowledgecenter/SSKM8N_8.0.0/com.ibm.etools.mft.doc/bh44620_.htm


IBM Integration BUS v9.0 :

What's New in IIB v9.0 :

 https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bb23800_.htm


Behavioral changes:

https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bh19400_.htm


Technical Changes :


https://www.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bh44620_.htm


IBM Integration BUS v10.0 : 

What's New in IIB v10.0 :

https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/bb23850_.htm


Behavioral changes:

https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/bh19400_.htm



Technical Changes :

https://www.ibm.com/support/knowledgecenter/SSMKHH_10.0.0/com.ibm.etools.mft.doc/bh44620_.htm









New Changes WMB v 7.0  





Brokers maintain configuration data in the local file system

Brokers create and manage configuration data in an internal repository in the local file system, and have no requirement for a database. You can back up and restore the broker component and its internal repository by using the commands

                          mqsibackupbroker and mqsirestorebroker.

Database support for message flows and user data is unchanged; however, supported versions of Relational Database Management Systems (RDBMS) (supplied by IBM and other vendors) have been updated on some platforms.

Optimized deployment and interactions with the broker


Applications that manage brokers and their resources connect directly to the broker. These applications include:

* The WebSphere Message Broker Explorer, an administration toolkit delivered with Version 7.0, which is described later in this section.
* The WebSphere Message Broker Toolkit.
* Commands; for example, mqsideploy, mqsilist, and mqsistartmsgflow.
* All applications that are written to the Configuration Manager Proxy (CMP) API, including the     CMP Exerciser.

Administration security

Set up broker administration security to control the authority that is required by users to complete specific administrative tasks. You can enable security when you create a broker, or change it later on an existing broker. This option, which uses WebSphere MQ facilities, replaces Access Control Lists (ACLs) that were managed by the Configuration Manager in previous versions.


WebSphere Message Broker Explorer

The WebSphere Message Broker Explorer is an administration interface that is integrated as a plug-in into WebSphere MQ Explorer, so that you can administer both brokers and WebSphere MQ queue managers on local and remote computers.

Important status information is always on view, and you can access details about what each broker is doing, and has recently done. Configuration and other changes are monitored, and the user responsible for these changes is recorded.

The WebSphere Message Broker Explorer supports all the function that is provided by the Broker Administration perspective in the WebSphere Message Broker Toolkit in previous versions, and offers additional, more advanced features. Limited administration functionality is still available in the new Brokers view in the WebSphere Message Broker Toolkit to run a subset of operations.

The WebSphere Message Broker Explorer includes the following capabilities:

You can create, delete, start, and stop local brokers without using the command line.

You can see the relationships between your brokers and your queue managers.

You can deploy a broker archive file to multiple execution groups in one step.

You can see visualizations of your accounting and statistics data.

You can see visualizations of your resource statistics data.

You can configure broker properties, including creating and modifying configurable services.

You can view the broker administration queue, and remove pending tasks that have been submitted to the broker.

You can connect and configure settings for a DataPower® device.

Publish/subscribe support

All topic-based publish/subscribe operations are handled by WebSphere MQ. You can use WebSphere Message Broker facilities to extend publish/subscribe options to include content-based publishers and subscribers.

All applications use a single topic space that is managed by WebSphere MQ, and access control is handled by the queue manager. The concept of broker domains, which is valid in previous versions of WebSphere Message Broker, no longer exists; equivalent function for broker domains, broker topologies, and broker collectives is provided by WebSphere MQ clusters.

The Publication node uses WebSphere MQ publish/subscribe facilities. You can use the NoMatch terminal, new in Version 7.0, to identify scenarios in which no subscribers are registered to receive particular topics.

With these changes, your publish/subscribe network requires you to configure a broker only where you have content-based subscribers, not throughout the network. The content-based filters that you can specify can now include full ESQL expressions, including namespace support.

You can migrate JMS applications, and applications that use the MQRFH2 header, directly to WebSphere MQ.
WebSphere MQ Real-time Transport and WebSphere MQ Telemetry Transport nodes are no longer supported. Therefore, the following nodes have been removed:
Real-timeInput
Real-timeOptimizedFlow
SCADAInput
SCADAOutput

If you use the WebSphere MQ Real-time Transport, your applications can use equivalent qualities of service provided by WebSphere MQ. Migrate JMS real-time publishers and subscribers to the "read-ahead get" and "asynchronous-put" facilities of WebSphere MQ.
Message flows containing these nodes that you have migrated to WebSphere Message Broker Version 7.0 will not start until these nodes have been removed from the flow, and the flow has been redeployed.
Contact your account representative for more information about support for WebSphere MQ Real-time Transport and WebSphere MQ Telemetry Transport.

WebSphere Message Broker Toolkit

You can administer local and remote brokers in the Brokers view, which is new in Version 7.0. This view is integrated into the Broker Application Development perspective, so that you can access basic administration tasks while you are developing, deploying, debugging, and testing your applications.

The WebSphere Message Broker Toolkit includes an impact analysis tool that you can use to discover interdependencies between resources, and assess the effects of planned changes to those resources. See Impact analysis: analyzing the effects of planned changes to your applications.


Patterns

A pattern is a reusable solution that encapsulates a top-down tested approach to solving a common architecture, design, or deployment task in a particular context. This approach complements bottom-up development of creating message flows and nodes.

A number of patterns are supplied in the WebSphere Message Broker Toolkit, and you can use the Patterns Explorer, which includes comprehensive help, to simplify creation of common scenarios.
You can configure these patterns with values for use in your own environment to solve specific business problems. The supplied patterns use preferred techniques in message flow design, to produce efficient and reliable flows.

SCA nodes for WebSphere Process Server

Five new built-in message flow nodes are provided to improve the interaction between WebSphere Message Broker and WebSphere Process Server Version 6.2 by using Web Services (SOAP over HTTP) or WebSphere MQ bindings.
The nodes are the SCAInput, SCAReply, SCARequest, SCAAsyncRequest, and SCAAsyncResponse nodes.

Enhanced support for the PHPCompute node

Support for the PHP scripting language is available on all operating systems on which WebSphere Message Broker is supported, except Solaris on x86-64. The PHPCompute node supports general-purpose transformation logic in the PHP language, and complements the Compute, JavaCompute, XSLTransform, and Mapping nodes. In addition, the set of supported PHP extensions has been increased.

SAP Enhancements:

Use the SAPReply node to send a reply to an SAP synchronous callout. Use this node with an SAPInput node to implement a message flow application that acts as a remote function call (RFC) destination.

Generic IDoc routing

By using the SAPInput node in passthrough mode, WebSphere Message Broker can receive any IDoc, and route it according to IDoc type. By using this method, you can also use a single RFC program ID to receive all IDoc types, while still allowing individual IDoc processing.

SAP high availability

You can deploy an SAP adapter and a message flow that contains an SAPInput node to two brokers on your network; these brokers can accept IDocs concurrently from the same SAP system so that you can build a highly available environment.
On distributed systems, two brokers share state by using queues on a third queue manager, which is running in multi-instance mode. Each broker has client connections to that queue manager.
On z/OS®, the shared state is stored on a shared queue. Each broker connects to the queue sharing group.

Iterative discovery

You can take an adapter component that was created by using the Adapter Connection wizard in WebSphere Message Broker Version 7.0, and update it with newly discovered objects from the Enterprise Information System (EIS) by running the Adapter Connection - Iterative Discovery wizard. This facility is known as iterative discovery. You can either add the new objects without modifying existing objects, or replace existing objects.

Iterative deployment

If your message flow acts as a gateway to an EIS, you can use it to call new services that did not exist when you developed the flow. You can also create an event handler to an EIS to handle new event types that did not exist when you first developed your message flow. In both cases, if a new service or event is provided by the EIS, you do not have to modify and retest the message flow. This facility is called iterative deployment.

Sequence and Resequence nodes:

WebSphere Message Broker provides support for adding sequence numbers to messages, and for reordering messages in the message flow based on their sequence number. You can use the new Sequence node to add sequence numbers to the messages, and the new Resequence node to reorder the messages into their original sequential order.

New configurable services for EDA nodes:

You can use the following configurable services to define the WebSphere MQ queues on which EDA nodes store event state:
Aggregation
Collector
Resequence
Timer

Resource statistics:

You can collect statistics for some of the resources that are used by execution groups in the broker to help with problem diagnosis and broker optimization. Supported resources are the Java™ Virtual Machine (JVM), and the outbound sockets. For example, you can monitor the sockets that are used by SOAP nodes in your message flows.
You can start and stop statistics collection at broker or execution group level by using the WebSphere Message Broker Explorer, the CMP API, or the mqsichangeresourcestats command.
The resource statistics framework is based on the existing accounting and statistics for message flows, and generates periodic messages as publications that your programs can subscribe to. You can also view these statistics in the WebSphere Message Broker Explorer, which provides both numeric and graphical representations.

Multi-instance brokers

WebSphere Message Broker builds on the multi-instance queue manager support introduced in WebSphere MQ Version 7.0.1 to provide a highly available configuration with active and passive brokers.
Multi-instance brokers and queue managers store their configurations on shared network storage so that if a failure occurs in an active component, the passive component assumes the configuration and operation of the active component. The use of queue managers in this way avoids the requirement for a high availability solution, such as HACMP™, supplied by a vendor software company.

----

Java


Java 1.6 (Version 6) is supported in all environments. On IBM platforms, the IBM J9 engine is supplied, which benefits from reduced startup time and memory footprint.

For More Information Technical changes check below Links:

https://www.ibm.com/support/knowledgecenter/SSKM8N_7.0.0/com.ibm.etools.mft.doc/bh44620_.htm




Tuesday, June 27, 2017

Set the persistence in message level :

                SET OutputRoot.Properties.ExpirationTime=600;
SET OutputRoot.MQMD.Expiry = -1; --Non expiry message
SET OutputRoot.MQMD.Expiry = 1; -- expiry message
SET OutputRoot.MQMD.Persistence = 0; --Non peristent
SET OutputRoot.MQMD.Persistence = 1; --peristent



IV Questions :

1. Folders create when we deploy file nodes ?

file input node ::  mqsitransitin , mqsibackout
file output node ::    mqsitransitout

2. MAXIMUM HEAP SIZE IS .... 256 MB.

3. WMQ GROUP --- MQM
    WMB GROUP --- MQBRKRS



Command to check entire execution group information:

mqsireportproperties ESS_NODE -e TEST -o HTTPSConnector -r

Command to know the execution group port number :

mqsireportproperties ESS_NODE -e TEST -o HTTPConnector -n port

Command to know the broker level port Number :

mqsireportproperties ESS_NODE -b httplistener -o HTTPConnector -n port

Command to deploy the bar file :

mqsideploy brokername -e execution -a barfilenamewithpath -d todeleteanythinginexecutingroup

Command to read Bar file :

mqsireadbar -b barpathlocation

Command to override bar property files : 

mqsiapplybaroverride -b barfilelocattion -p propertyfilelocation -o newbarlocation

Command to Stop Execution Group : 

mqsistopmsgflow brokername -e execution

Command to Stop Message Flow :

mqsistopmsgflow brokername -e execution -m flowname -w300

Command to change the Port Number EG:

mqsichangeproperties brokername -e execution -o Httpconenctor -n explicitysetportnumber -v newportnumber

Tracing Commands :

 1. Start trace.

mqsichangetrace EssiConnectSIT -t -e NGAMERAAPPTEST -l debug -r -c 100000

2. Put a message on the queue to cause the failure to occur.  (In this step we need to create the order via RAINBOW)

3. Stop trace.

mqsichangetrace EssiConnectSIT -t -e NGAMERAAPPTEST -l none

4. Retrieve the trace log for the specified component.

mqsireadlog EssiConnectSIT -t -e NGAMERAAPPTEST -f -o flowtrace.xml

5. Format the XML trace file.

mqsiformatlog -i flowtrace.xml -o serviceflowtrace.txt



Email Output Node Configuration Commands :

mqsicreateconfigurableservice brokername -c SMTP -o configurableservicename

mqsichangeproperties brokername -c SMTP -o configurableservicename -n servername -v smtpserverport

mqsisetdbparms brokername -n securityidentity -u username -p password


mqsichangeproperties brokername -c smtp -o configurableservicename -n securityidentity -v securityidentityname


Command to set mqsi path : 

mqsiprofile

Command to Start the Message Flow : 

mqsistartmsgflow brokername -e execution -m flowname

FTP Configurable Service Commands :

Create Configurable Service:

mqsicreateconfigurableservice EssiConnectSIT -c FtpServer -o Server01 -n serverName,scanDelay,transferMode,connectionType,securityIdentity -v SGDC2FTPS001T:21,60,BINARY,ACTIVE,ftpredhat2

Set Username and Password:

mqsisetdbparms EssiConnectSIT -n ftp::ftpredhat2 -u iibuser -p iibuser

mqsireload ESS_NODE   or  mqsistop ESS_NODE  and mqsistart ESS_NODE

Delete the FTP Configurable Service :

mqsideleteconfigurableservice ESS_NODE -c FtpServer -o Server01




Deployment Issues :

    When we do deployment directly from the IIB Toolkit. It will what we mentioned in the code.
Such as like :

Queue names ,
User Defined Properties,
SOAP Url,
Http Url  etc .. all the data take from the code level , It will not take from Property file.


Attlasian :

   If we deploy the code through bamboo or scripts or any other auto deployment tool.
It will take all the required information from property file. We have to update Property file based on the Environment.




ESQL Time Stamp Changes : 

Code : 

DECLARE target TIMESTAMP;
SET now = CAST(CURRENT_TIMESTAMP AS CHARACTER FORMAT 'yyyy/MM/dd-h:mm:ss a');


Output :

 

Related IBM Links for Time Stamp :



CAST Function: