Integration 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 properties accessible through the Mapping node

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

Table 1. List of integration 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.

When the BrokerName property is called from a message flow that runs on an independent integration server, the Mapping node function returns the value integration_server, which indicates that there is no integration node.

Queue manager name (Character): QueueManagerName iib: getQueueManagerName() The name of the IBM® MQ local or remote default queue manager that is configured on the integration node or independent integration server. The name of the remote default queue manager can be established from the relevant properties in the MQEndpoint policy that is used to configure the remote default queue manager.
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 that is 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 that is 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 that is executing the map is running in.
Integration server name (Character)integrationServerName iib: getServerName() The name of the node managed or independent integration server where the message flow in which the Mapping node that is executing the map is running in.

Integration 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 App Connect Enterprise 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 finish using it. By calling disconnect(), you deregister all listeners that are registered to the BrokerProxy instance and close the link to the integration node.

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.

When the ${BrokerName} is called from a message flow that runs on an independent integration server, the value integration_server is returned to indicate that there is no integration node.

ESQL Property name Java access method Description
BrokerName (Character) Use
MbBroker.getBroker().getName()
The name of the integration node.

When the BrokerName property is called from a message flow that runs on an independent integration server, the Java access method returns the value integration_server, which indicates that there is no 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).
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 local or remote default queue manager that is configured on the integration node or independent integration server. The name of the remote default queue manager can be established from the relevant properties in the MQEndpoint policy that is used to configure the remote default queue manager.
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
CoordinatedTransaction (Boolean) Use MbNode:
getMessageFlow().isCoordinatedTransaction();
Whether the message flow is processed as an XA coordinated transaction, which is coordinated by IBM 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.
Table 4. Node properties
ESQL Property name Java access method Description
NodeLabel (Character) Use MbNode:
getName();
The name of the node.
NodeType (Character) Not applicable The type of node (Compute, Database, or Filter).
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.