Integration node properties that are accessible from ESQL, the Mapping node, and Java

You can access integration node, message flow, and node properties from ESQL and Java™.

Integration node properties accessible through the Mapping node

The following table shows the properties that are available through the Mapping node:

Table 1. List of integration node properties accessible through the Mapping node
ESQL Property name Mapping node function Description
Integration node name (Character): BrokerName iib:getBrokerName() The name of the integration node.
Queue manager name (Character): QueueManagerName iib:getQueueManagerName() The name of the WebSphere® MQ queue manager to which the integration node is connected.
Node label (Character): NodeLabel iib:getNodeName() The name of the node.
Message flow name (Character): MessageFlowLabel iib:getMessageFlowName() The name of the message flow where the Mapping node executing the map is running in.
Application name (Character): ApplicationLabel iib:getApplicationName() The name of the application where the message flow in which the Mapping node executing the map is running in.
Library name (Character): LibraryLabel iib:getLibraryName() The name of the library where the message flow in which the Mapping node executing the map is running in.

Integration node properties available to ESQL and Java code

The following table shows the properties that are available to ESQL and Java code by using the IBM® Integration API.

The Java code, where applicable, is shown in the second column of the table.

Note that the BrokerProxy, ExecutionGroupProxy, MessageFlowProxy, and LocalBrokerUtilities classes are all part of the IBM Integration API (IntegrationAPI.jar). This JAR needs to be referenced from your Java project in your IBM Integration Toolkit, but it does not need to be deployed to the integration node.

It is best practice to call disconnect() on the BrokerProxy object after you have finished using it. By calling disconnect(), you deregister all listeners that are registered to the BrokerProxy instance and close the link to the integration node.

For a complete overview of integration node properties, see Integration node properties.

Table 2. General integration node properties.
Note: The only integration node-defined properties that can be used in a Trace node are those in the General integration node properties group. For example, you could specify the Pattern setting of a Trace node as:
#### Start Trace Input Message
  Time: ${CURRENT_TIMESTAMP}
  Broker: ${BrokerName}  Version: ${BrokerVersion}  Platform: ${Family}
  ProcessID: ${ProcessId}  BrokerUserId: ${BrokerUserId}
  integrationServerName: ${ExecutionGroupLabel}
  Root Tree: ${Root} 
#### End Trace Input Message
Replace integrationServerName with the name of the integration server.
ESQL Property name Java access method Description
BrokerName (Character) Use
MbBroker.getBroker().getName()
The name of the integration node.
BrokerUserId (Character) Use
System.getProperty("user.name");
to get the name of the user ID under which the integration node was started.
The user ID under which the integration node is running (that is, the user ID specified by the -i flag on the mqsicreatebroker command on Windows, or the user ID that started the integration node by using the mqsistart command on Linux® and UNIX systems).
BrokerVersion (Character) Use
BrokerProxy b = BrokerProxy.getLocalInstance();
int v = b.getBrokerVersion();
The 4-character version number of the integration node (see BrokerVersion).
executionGroupLabel (Character) Use
MbExecutionGroup.getExecutionGroup().getName();
or
System.getProperty("broker.egLabel");
The name of the integration server (a human-readable name). Replace executionGroupLabel with the name of the integration server.
ExecutionGroupName (Character) Use
System.getProperty("broker.egLabel");
The name of the integration server (typically a UUID identifier).
Family (Character) Use
System.getProperty("os.name")
to return the operating system name from Java.
The generic name of the software platform that the integration node is running on ('WINDOWS', 'UNIX', or 'ZOS').
ProcessId (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  String processId =
   eg.getRuntimeProperty(AttributeConstants.EG_THIS_PROCESSID_PROPERTY);
The process identifier (PID) of the integration server.
QueueManagerName (Character) Use
MbNode.getBroker().getQueueManagerName()
The name of the queue manager to which the integration node is connected.
WorkPath (Character) Use
System.getProperty("broker.workpath");
(Optional) The directory in which working files for this integration node are stored.
Table 3. Flow properties
ESQL Property name Java access method Description
AdditionalInstances (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getAdditionalInstances();
The number of additional threads that the integration node can use to service the message flow.
CommitCount (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getCommitCount();
The number of input messages that are processed by the message flow before a syncpoint is taken.
CommitInterval (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getCommitInterval();
The time interval at which a commit is taken when the CommitCount property is greater than 1 (that is, where the message flow is batching messages), but the number of messages processed has not reached the value of the CommitCount property.
CoordinatedTransaction (Boolean) Use MbNode:
getMessageFlow().isCoordinatedTransaction();
Whether the message flow is processed as an XA coordinated transaction, coordinated by WebSphere MQ.
MessageFlowLabel (Character) Use MbNode:
getMessageFlow().getName();
The name of the flow.
ApplicationLabel (Character) Use MbNode:
getMessageFlow().getApplicationName();
The name of the application, or an empty string if the message flow is not running in an application.
LibraryLabel (Character) Use MbNode:
getMessageFlow().getLibraryName();
The name of the application, or an empty string if the message flow is not running in a library.
MaximumRateMsgsPerSec (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getMaximumRateMsgsPerSec();
A positive value configures a message flow to monitor and maintain the total number of messages processed every second below the maximum rate value set. Default value of 0 will turn this option off.
NotificationThresholdMsgsPerSec (Integer) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getNotificationThresholdMsgsPerSec();
A positive value configures a message flow to cause a notification message to be published when the rate for messages arriving in the flow exceeds the notification threshold value set. Default value of 0 will turn this option off.
WlmPolicy (Character) Use
ExecutionGroupProxy eg = ExecutionGroupProxy.getLocalInstance();
  MessageFlowProxy mf = eg.getMessageFlowByName("mf1");
  int i = mf.getWlmPolicy();
Identifies the WorkloadManagement policy configurable service name used by the message flow.
Table 4. Node properties
ESQL Property name Java access method Description
DataSource (Character) Not possible The ODBC Data Source Name (DSN) of the database in which the user tables are created.
DataSourceUserId (Character) Not possible The user ID that the integration node uses to access the database user tables.
MessageOptions (Integer 64-bit)1 Not possible The bit stream and validation options in force.
NodeLabel (Character) Use MbNode:
getName();
The name of the node.
NodeType (Character) Not applicable The type of node (Compute, Database, or Filter).
ThrowExceptionOnDatabaseError (Boolean)1 Not possible Whether the integration node generates an exception when a database error is detected.
TransactionType (Character)1 Not possible The type of transaction (Automatic or Commit) used to access a database from this node.
TreatWarningsAsErrors (Boolean)1 Not possible Whether database warning messages are treated as errors, and cause the output message to be propagated to the failure terminal.
Notes:
  1. Not applicable for the DatabaseInput node.

BrokerVersion

The BrokerVersion property contains a 4-character code that indicates the version of the integration node. The code is based on the IBM Version/Release/Modification/Fix pack (VRMF) product-numbering system. The VRMF code works like this:
V
The Version number. A Version is a separate IBM licensed program that usually has significant new code or new function. Each version has its own license, terms, and conditions.
R
The Release number. A Release is a distribution of new function and authorized program analysis report (APAR) fixes for an existing product.
M
The Modification number. A Modification is new function added to an existing product, and is delivered separately from an announced Version or Release.
F
The Fix pack number. Fix packs contain defect and APAR fixes. They do not contain new function.

A fix pack is cumulative: that is, it contains all the fixes shipped in previous maintenance to the release, including previous fix packs. It can be applied on top of any previously-shipped maintenance to bring the system up to the current fix pack level.