Iib v9r0 Admin
Iib v9r0 Admin
Iib v9r0 Admin
0
Version 1 Release 0
Note
Before using this information and the product it supports, read the information in Notices on page 895.
When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any
way it believes appropriate without incurring any obligation to you.
Copyright IBM Corporation 1999, 2014.
US Government Users Restricted Rights Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Description
A link to a page in the online product documentation in IBM Knowledge Center.
Figure 1.
A link to a web page.
Figure 2.
A link to a PDF book.
Figure 3.
iii
iv
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Contents
PDF books and IBM Knowledge Center
iii
Figures . . . . . . . . . . . . . . . ix
Chapter 1. Administering brokers and
broker resources . . . . . . . . . . . 1
Managing brokers . . . . . . . . . . . . 2
Connecting to a local broker . . . . . . . . 3
Connecting to a remote broker . . . . . . . 4
Connecting to a remote integration node on z/OS 6
Importing integration node definitions into the
IBM Integration Explorer . . . . . . . . . 8
Exporting integration node connection details
from the IBM Integration Explorer . . . . . . 10
Automatically reconnecting to a broker . . . . 11
Disconnecting from an integration node in the
IBM Integration Explorer . . . . . . . . . 12
Using the Administration Queue . . . . . . 12
Grouping integration nodes by using integration
sets . . . . . . . . . . . . . . . . 13
Starting and stopping a broker . . . . . . . 19
Viewing broker properties . . . . . . . . 26
Starting a WebSphere MQ queue manager as a
Windows service . . . . . . . . . . . 27
Stopping a WebSphere MQ queue manager when
you stop a broker . . . . . . . . . . . 28
Deleting a broker . . . . . . . . . . . 29
Managing integration servers . . . . . . . . 34
Creating an integration server . . . . . . . 35
Renaming an integration server using the IBM
Integration Explorer . . . . . . . . . . 40
Starting an integration server using the IBM
Integration Toolkit or IBM Integration Explorer . 41
Stopping an integration server using the IBM
Integration Toolkit or IBM Integration Explorer . 43
Deleting an integration server . . . . . . . 45
Managing message flows . . . . . . . . . . 50
Setting the start mode of flows and applications
at run time . . . . . . . . . . . . . 50
Starting a message flow by using the IBM
Integration Toolkit or IBM Integration Explorer . 53
Stopping a message flow using the IBM
Integration Toolkit or IBM Integration Explorer . 54
Deleting a message flow using the IBM
Integration Toolkit or IBM Integration Explorer . 55
Setting user-defined properties dynamically at
run time using the IBM Integration Explorer . . 56
Developing applications that use the IBM
Integration API . . . . . . . . . . . . . 58
The IBM Integration API . . . . . . . . . 59
The IBM Integration API samples . . . . . . 60
Configuring an environment for developing and
running CMP applications . . . . . . . . 72
Connecting to a broker from a CMP application 79
. .
. .
and
. .
. 197
. 198
. 200
.
.
.
.
.
.
.
.
.
203
205
205
206
208
212
213
214
221
.
.
.
.
.
.
241
242
243
292
396
397
.
.
.
.
398
407
409
411
. 413
. 415
vi
450
451
453
455
469
510
529
542
543
558
559
560
565
567
575
580
583
585
587
593
595
597
.
.
.
.
598
601
616
618
620
. 623
. 624
. 625
. 630
. 632
. 633
. 634
637
. 639
. 644
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
647
648
648
648
650
650
651
652
653
654
654
656
657
658
659
660
661
661
662
663
664
666
667
675
676
679
681
685
687
688
705
707
708
752
768
775
782
796
797
806
808
809
819
823
827
828
829
835
839
840
841
843
844
845
847
849
851
852
854
Formatting trace . . . . . . . . . . .
Interpreting trace . . . . . . . . . . .
Clearing old information from trace files . . .
Changing trace settings from the IBM
Integration Explorer . . . . . . . . . .
ODBC trace . . . . . . . . . . . . .
IBM Integration API (CMP) trace . . . . . .
Switching Trace nodes on and off . . . . .
Using dumps and abend files . . . . . . . .
Checking for dumps . . . . . . . . . .
Using the DUMP command on z/OS . . . .
Checking for abend files. . . . . . . . .
Contacting your IBM Support Center . . . . .
IBM Support Assistant Data Collector . . . . .
Collecting data in console mode with IBM
Support Assistant Data Collector . . . . . .
Selecting a problem collector for IBM Support
Assistant Data Collector . . . . . . . . .
Searching knowledge bases . . . . . . . . .
Getting product fixes . . . . . . . . . . .
Contacting IBM Software Support . . . . . .
Determine the effect of the problem on your
business . . . . . . . . . . . . . .
Describe your problem and gather background
information . . . . . . . . . . . . .
Submit your problem to IBM Software Support
Recovering after failure . . . . . . . . . .
Recovering after the broker fails . . . . . .
Recovering after an integration server fails . .
Recovering after the broker queue manager fails
Diagnostic messages . . . . . . . . . . .
Diagnostic messages: Runtime components . .
Diagnostic messages: IBM Integration Toolkit
Diagnostic messages: WebSphere Adapters . .
856
859
861
862
864
867
868
871
872
873
875
876
879
880
881
882
883
885
885
886
886
887
888
889
890
891
891
891
892
Notices . . . . . . . . . . . . . . 895
Programming interface information .
Trademarks . . . . . . . . .
.
.
.
.
.
.
.
.
. 897
. 897
Contents
vii
viii
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Figures
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Graphic showing the placement of the global
cache in a multi-broker environment. . . .
Graphic showing the placement of the global
cache in a multi-broker environment. . . .
Graphic showing the placement of the global
cache in a multi-broker environment. . . .
Graphic showing the placement of the global
cache in a multiple client scenario. . . . .
Graphic showing the placement of the global
cache in a multiple client scenario. . . . .
Graphic showing the placement of the global
cache in a multiple client scenario. . . . .
Graphic showing the placement of the global
cache in a multiple client scenario. . . . .
Diagram showing how integration server 1
hosts a catalog server and a container server,
and integration servers 2, 3, and 4 host
container servers only. Integration servers 5
and 6 do not host any cache components, but
their message flows can still communicate
with the cache. . . . . . . . . . . .
Diagram showing two brokers that are
participating in an embedded cache.
Integration server 1 of broker 1 contains a
catalog server and a container server.
Integration server 1 of broker 2 also contains
a catalog server and container server.
Integration servers 2, 3, and 4 of broker 1
contain container server. Integration server 2
of broker 2 also contains a container server. .
Diagram showing how IBM Integration Bus
can connect to an embedded cache and a
WebSphere eXtreme Scale grid at the same
time. Integration server 1 in the broker
contains a catalog server and a container
server. Integration servers 2, 3, and 4 each
host a container server. Double-ended arrows
link the message flows in each integration
server to the embedded cache and to a
remote WebSphere eXtreme Scale grid.
Between the message flows and remote grid
is a box that represents the configurable
service that is used to connect to the external
grid. . . . . . . . . . . . . . .
. iii
. iii
. iii
14.
15.
144
145
16.
146
17.
147
18.
19.
20.
148
148
21.
149
22.
23.
24.
156
25.
26.
211
211
251
258
261
264
267
273
278
283
436
445
897
157
158
ix
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For each task, the administrative techniques that you can use are identified.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
IBM Integration Toolkit
The IBM Integration Toolkit is an integrated development environment and
graphical user interface based on the Eclipse platform.
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Managing brokers
Work with your existing brokers to manage their connections and their active
status by using the IBM Integration Toolkit or IBM Integration Explorer. You can
use the IBM Integration API (also known as the CMP) to complete some of these
actions.
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Right-click the broker you want to connect to, and click Connect.
Chapter 1. Administering brokers and broker resources
Results
You can now view properties and configure your broker by using the IBM
Integration Toolkit or the IBM Integration Explorer.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Connecting to a remote broker
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Automatically reconnecting to a broker on page 11
You can configure each broker so that the IBM Integration Explorer automatically
reconnects to it if the connection is lost; for example, if the network connection to a
remote queue manager fails.
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Run the setmqaut command on the broker queue manager to grant authority to
the group:
setmqaut -m queueManager -t qmgr -g group +connect
Procedure
1. Open the IBM Integration Explorer, or open the Integration Nodes view in the
IBM Integration Toolkit.
2. To create a connection to a remote broker, right-click the Integration Nodes
folder, and click Connect to a Remote Broker.
3. In the Connect to a broker wizard, enter the following values:
a. The value for the Queue Manager name that your remote broker is using.
b. The Host name or IP address of the computer on which your broker is
running.
c. The TCP Port on which the WebSphere MQ queue manager is listening (the
default is 1414). This property must be a valid positive number.
d. Optional: The name of the server-connection channel in the SVRCONN
Channel Name field. The channel has a default name of SYSTEM.BKR.CONFIG.
You can create more than one server-connection channel and define a
different SSL certificate on each channel to enforce; for example, users with
view access on to one channel and users with deploy access on to a different
channel.
You can then create WebSphere MQ exits on each channel to provide
additional authentication of the WebSphere MQ message sent to the broker.
You must create the server-connection channel manually on the broker
queue manager by using one of the following options:
v The WebSphere MQ runmqsc command to create a channel with options
CHLTYPE(SVRCONN) and TRPTYPE(TCP).
v
g. Optional: The Cipher Suite, Distinguished Names, CRL Name List, Key
Store, and Trust Store parameters are required to enable SSL. For more
information, see Implementing SSL authentication on page 415. The
Cipher Suite field lists available cipher suites. Click More to configure
Custom SSL Cipher Suites in the Broker Administration Preferences
window. If a Cipher Suite is not specified, all of the other fields in the SSL
section are unavailable.
If you specify a keystore or truststore when you define the connection
information, you are prompted for the keystore or truststore when you
connect to the remote broker.
4. Click Finish to connect to the remote broker.
Results
You can now view properties and configure your broker using the IBM Integration
Toolkit or IBM Integration Explorer.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Security exits on page 205
Use security exit programs to verify that the partner at the other end of a
connection is genuine.
Security for the IBM Integration Toolkit and IBM Integration Explorer on page
398
What to consider when you set up security for the IBM Integration Toolkit and
IBM Integration Explorer.
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Navigator view, or Integration Nodes view, right-click the Integration
Nodes folder, and click Connect to a Remote Integration Node.
2. In the Connect to an integration node wizard, enter the following values:
a. The value for the Queue Manager name that your remote integration node
is using.
b. The Host name or IP address of the machine on which your integration
node is running.
c. The TCP Port on which the WebSphere MQ queue manager is listening (the
default is 1414). This property must be a valid positive number.
d. Optional: The name of the server-connection channel in the SVRCONN
Channel Name field. The channel has a default name of SYSTEM.BKR.CONFIG.
You can create more than one server-connection channel and define a
different SSL certificate on each channel to enforce; for example, users with
view access on to one channel and users with deploy access on to a different
channel.
You can then create WebSphere MQ exits on each channel to provide
additional authentication of the WebSphere MQ message sent to the
integration node.
You must create the server-connection channel manually on the queue
manager for the integration node by using one of the following options:
v The WebSphere MQ runmqsc command to create a channel with options
CHLTYPE(SVRCONN) and TRPTYPE(TCP).
v
Results
You can now view properties and configure your integration node by using the
IBM Integration Toolkit or IBM Integration Explorer.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Security exits on page 205
Use security exit programs to verify that the partner at the other end of a
connection is genuine.
Security for the IBM Integration Toolkit and IBM Integration Explorer on page
398
What to consider when you set up security for the IBM Integration Toolkit and
IBM Integration Explorer.
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Connecting to a remote broker on page 4
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Integration Nodes view, right-click the Integration Nodes folder and click
Connect to a Remote Integration Node Using *.broker File.
2. Navigate to the integration node connection files that you want to import, and
click Open.
Results
The .broker file is imported, and the integration node is displayed in the
Integration Nodes folder. You can now connect to the integration node.
Procedure
1. In the Navigator view, right-click the Integration Nodes folder and click
Connect to a remote integration node using *.broker file.
2. Navigate to the integration node connection files that you want to import, and
click OK.
Results
The .broker file is imported, and the integration node is displayed in the
Integration Nodes folder. You can now connect to the integration node.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Exporting integration node connection details from the IBM Integration Explorer
on page 10
Use the IBM Integration Explorer to export integration node (broker) connection
details for another user.
Connecting to a remote broker on page 4
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Select the integration node (broker) for which you want to export the
connection details, and click Export for remote connection.
3. Select a location to save the .broker file, and click Save.
Results
The .broker file is exported. Another user can now import the .broker file to
connect to the integration node (broker).
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Importing integration node definitions into the IBM Integration Explorer on page
8
Import integration node connection details that have been created by another user
into your session of the IBM Integration Explorer or IBM Integration Toolkit, to use
the integration node.
Connecting to a remote broker on page 4
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Connecting to a remote integration node on z/OS on page 6
To administer a remote integration node (broker) that is deployed on z/OS by
using the IBM Integration Toolkit or IBM Integration Explorer, you must connect to
the integration node.
10
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Right-click your integration node, and select Properties.
3. Ensure Autoreconnect is selected in the General tab.
4. Click OK.
Results
The integration node is automatically reconnected when you next start the IBM
Integration Explorer.
What to do next
If you want to configure the integration node so that it is not automatically
reconnected when you start the IBM Integration Explorer, clear Autoreconnect in
the integration node properties window.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Connecting to a remote broker on page 4
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Connecting to a remote integration node on z/OS on page 6
To administer a remote integration node (broker) that is deployed on z/OS by
using the IBM Integration Toolkit or IBM Integration Explorer, you must connect to
the integration node.
11
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Right-click the integration node you want to disconnect from, and click
Disconnect.
Results
You have disconnected from the selected integration node.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
12
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v
v
v
v
v
v
v
v
v
Order
Status
Username
Operation Type
Object Name
Object Type
Creation Time
Elapsed Time
Identifier
You can remove tasks from the Administration Queue if you want to cancel
requests that have been sent to a broker. To remove tasks from the Administration
Queue:
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Expand the broker with which you want to work, and right-click
Administration Queue.
3. Click Cancel Work Items The Administration Queue window is displayed.
4. Select the task or tasks that you want to remove from the Administration
Queue, and click Cancel Work Items.
Results
The selected tasks are removed from the Administration Queue.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
Chapter 3, Performance, monitoring, and workload management, on page 449
You can change various aspects of your broker configuration to tune brokers and
message flows, and monitor message flows and publish/subscribe applications.
13
when you created it. The All integration set contains all your local integration
nodes, and any remote integration nodes definitions in your workspace. If you
delete all of the integration sets that you have created, the All integration set is
automatically removed. You cannot rename, modify, or delete the All integration
set manually.
A manual integration set is empty until you add integration nodes to the
integration set from the All integration set or another integration set. You can add
or remove integration nodes from the manual integration set at any time.
An automatic integration set uses integration node tags to dynamically add and
remove integration nodes from a set based on values you provide or the current
state of the integration nodes.
See the following topics for more information about how to create and use
integration sets in the IBM Integration Explorer:
v Creating a manual integration set in the IBM Integration Explorer
v Adding and modifying integration node tags in the IBM Integration Explorer
on page 15
v Creating an automatic integration set in the IBM Integration Explorer on page
17
v Modifying integration sets in the IBM Integration Explorer on page 18
Procedure
1. In the Navigator view right-click the Integration Nodes folder, and click
Integration Sets > New Integration Set. The Create New Integration Set
wizard is displayed.
2. Enter a name for the integration set.
3. Ensure Manual is selected as the set type.
4. Click Finish.
Results
The integration set is added to the Integration Nodes folder. If this set was the first
integration set that you have created, the All integration set is also added to the
Integration Nodes folder. The All integration set contains all your local integration
nodes, and all remote integration node definitions in your workspace.
14
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
You can now move integration nodes from your All integration set, or other
integration sets, into the manual integration set that you have created.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Managing brokers on page 2
Work with your existing brokers to manage their connections and their active
status by using the IBM Integration Toolkit or IBM Integration Explorer. You can
use the IBM Integration API (also known as the CMP) to complete some of these
actions.
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Grouping integration nodes by using integration sets on page 13
You can create a manual or an automatic integration set to visually group your
integration nodes (brokers) in the IBM Integration Explorer.
Creating an automatic integration set in the IBM Integration Explorer on page 17
Create an automatic integration set in the IBM Integration Explorer to group
integration nodes (brokers) dynamically based on values you provide, or their
current state.
brokerEnvironment:Development
brokerEnvironment:Test
brokerEnvironment:QA
brokerEnvironment:Production
You can also remove tags that you have previously added to an integration node
to stop the integration node being added to an automatic set.
Chapter 1. Administering brokers and broker resources
15
Procedure
1. In the Navigator view, expand the Integration Nodes folder.
2. Right-click the integration node for which you want to add or modify
integration node tags, and click Modify Integration Node Tags.
3. Select the tags to add to the integration node:
v Select integration node tags from the available list.
v Add a custom integration node tag:
a. Enter a name for the tag in the Tags field.
b. Click Add.
You can also select a tag and click Remove to remove it from the list of
available integration node tags.
v Clear tags that you want to remove from the integration node.
4. Click Finish.
Results
The selected integration node tags are added to the integration node. If the
integration node tags are matched in an automatic integration set, the integration
node appears in the integration set. If the integration node tags no longer match in
an automatic integration set, the integration node no longer appears in the
integration set.
What to do next
You can create or modify an automatic integration set to use one or more of the
integration node tags that you have created.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Grouping integration nodes by using integration sets on page 13
You can create a manual or an automatic integration set to visually group your
integration nodes (brokers) in the IBM Integration Explorer.
Creating a manual integration set in the IBM Integration Explorer on page 14
You can create a manual integration set, and add integration nodes to visually
group your integration nodes in the IBM Integration Explorer.
Creating an automatic integration set in the IBM Integration Explorer on page 17
Create an automatic integration set in the IBM Integration Explorer to group
integration nodes (brokers) dynamically based on values you provide, or their
current state.
Modifying integration sets in the IBM Integration Explorer on page 18
Modify an automatic integration set in the IBM Integration Explorer to change or
add integration node tags used to filter integration nodes (brokers) in the
integration set.
16
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
brokerEnvironment:Development
brokerEnvironment:Test
brokerEnvironment:QA
brokerEnvironment:Production
v brokerStatus:Started
v brokerStatus:Stopped
v brokerStatus:Connected
v brokerStatus:Disconnected
To create an automatic integration set:
Procedure
1. In the Navigator view right-click the Integration Nodes folder, and click
Integration Sets > New Integration Set. The Create New Integration Set
wizard is displayed.
2. Enter a name for the integration set.
3. Ensure Automatic is selected as the set type.
4. Click Next.
5. Select the conditions under which you want the integration node to be a part of
the integration set from the list of available filters. Click the Add button to
move them into the selected filters pane.
6. Decide if you want the integration node to match all the selected conditions, or
one or more of them:
v If you want the integration node to match all the selected conditions ensure
matches ALL of the selected filters is selected.
v If you want the integration node to match one or more of the selected
conditions ensure matches ANY of the selected filters is selected.
7. Click Finish.
Chapter 1. Administering brokers and broker resources
17
Results
The integration set is added to the Integration Nodes folder, and all integration
node that match the selected filters are added to the integration set. If this set is
the first integration set that you have created, the All integration nodes set is also
added to the Integration Nodes folder. The All integration nodes set contains all
your local integration nodes, and all remote integration node definitions in your
workspace.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Grouping integration nodes by using integration sets on page 13
You can create a manual or an automatic integration set to visually group your
integration nodes (brokers) in the IBM Integration Explorer.
Creating a manual integration set in the IBM Integration Explorer on page 14
You can create a manual integration set, and add integration nodes to visually
group your integration nodes in the IBM Integration Explorer.
Adding and modifying integration node tags in the IBM Integration Explorer on
page 15
Add or modify the integration node tags on your integration nodes (brokers) to
change the integration nodes that are grouped in an automatic set in the IBM
Integration Explorer.
Modifying integration sets in the IBM Integration Explorer
Modify an automatic integration set in the IBM Integration Explorer to change or
add integration node tags used to filter integration nodes (brokers) in the
integration set.
18
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v
v
v
v
brokerStatus:Started
brokerStatus:Stopped
brokerStatus:Connected
brokerStatus:Disconnected
Procedure
1. In the Navigator view expand the Integration Nodes folder.
2. Right-click the integration set that you want to modify, and click Modify
Integration Set.
3. Select the conditions under which you want the integration node to be a part of
the integration set from the list of available filters:
v Click the Add button to move them into the selected filters pane.
v Click the Remove button to remove them from the selected filters pane.
4. Decide if you want the integration node to match all the selected conditions or
one or more of them:
v If you want the integration node to match all the selected conditions ensure
matches ALL of the selected filters is selected.
v If you want the integration node to match one or more of the selected
conditions ensure matches ANY of the selected filters is selected.
5. Click Finish.
Results
The integration set is modified, and all integration nodes that match the selected
filters are added to the integration set.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Grouping integration nodes by using integration sets on page 13
You can create a manual or an automatic integration set to visually group your
integration nodes (brokers) in the IBM Integration Explorer.
Creating a manual integration set in the IBM Integration Explorer on page 14
You can create a manual integration set, and add integration nodes to visually
group your integration nodes in the IBM Integration Explorer.
Creating an automatic integration set in the IBM Integration Explorer on page 17
Create an automatic integration set in the IBM Integration Explorer to group
integration nodes (brokers) dynamically based on values you provide, or their
current state.
Adding and modifying integration node tags in the IBM Integration Explorer on
page 15
Add or modify the integration node tags on your integration nodes (brokers) to
change the integration nodes that are grouped in an automatic set in the IBM
Integration Explorer.
19
Procedure
v Starting and stopping a broker on Linux and UNIX systems on page 21
v Starting and stopping a broker on Windows on page 21
v Starting and stopping a broker on z/OS on page 23
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Setting up a command environment
After you have installed the product on one of the distributed systems, you must
initialize the environment before you can use a runtime component or command.
Related reference:
Security requirements for administrative tasks
You can configure access permissions to govern which users and groups can
manipulate objects in the broker network. Security requirements for administrative
tasks depend on the platform that you use.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
20
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Run ./install_dir/bin/mqsiprofile to source the mqsiprofile script and set
up the environment for a single targeted runtime environment. You must
complete this setup before you can run an IBM Integration Bus command.
2. To start a broker, enter the following command on the command line:
mqsistart IB9NODE
Substitute your own broker name for IB9NODE. The broker and its associated
queue manager are started.
Check the system log to ensure that the broker has initialized successfully. The
log contains messages about verification procedures; if all tests are successful,
only an initial start message is recorded. If any verification test is unsuccessful,
the log also includes messages that provide details of the tests that have failed.
If errors have been reported, review the messages and take the suggested
actions to resolve these problems.
3. To stop a broker, enter the following command on the command line:
mqsistop IB9NODE
Substitute your own broker name for IB9NODE.
You can also request that the broker queue manager is stopped by this
command. Refer to Stopping a WebSphere MQ queue manager when you stop
a broker on page 28.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Linux and UNIX systems: Configuring the syslog daemon on page 841
On Linux and UNIX systems, all IBM Integration Bus messages (other than
messages that are generated by the command-line utilities) are sent to the syslog
subsystem.
Stopping a WebSphere MQ queue manager when you stop a broker on page 28
If you are preparing to stop a broker, you can stop the broker's WebSphere MQ
queue manager at the same time.
Related reference:
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
21
Procedure
1. Open the IBM Integration Bus command console. When you open the console,
it sets up the environment that you need to run the IBM Integration Bus
commands.
If you prefer, you can run the install_dir/bin/mqsiprofile command to set
up the environment.
2. To start a broker, enter the following command on the command line:
mqsistart IB9NODE
Substitute your own broker name for IB9NODE.
You can also request that the broker queue manager is started as a Windows
service. Refer to Starting a WebSphere MQ queue manager as a Windows
service on page 27.
The broker and its associated queue manager are started. The command
initiates the startup of the broker's Windows service.
Check the Application Log in the Event Viewer to ensure that the broker has
initialized successfully. The log contains messages about verification
procedures; if all tests are successful, only an initial start message is recorded. If
one or more verification tests are unsuccessful, the log also includes messages
that provide details of the tests that have failed. If errors have been reported,
review the messages and take the suggested actions to resolve these problems.
3. To stop a broker, enter the following command on the command line:
mqsistop IB9NODE
Substitute your own broker name for IB9NODE.
You can also request that the broker queue manager is stopped by this
command. Refer to Stopping a WebSphere MQ queue manager when you stop
a broker on page 28.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker on Windows
On Windows, you can create brokers on the command line.
Starting a WebSphere MQ queue manager as a Windows service on page 27
On Windows, you can start a WebSphere MQ queue manager as a Windows
service to ensure the queue manager starts when you start your other components.
Stopping a WebSphere MQ queue manager when you stop a broker on page 28
If you are preparing to stop a broker, you can stop the broker's WebSphere MQ
queue manager at the same time.
Windows: Viewing the local error log on page 840
The Windows Event Viewer is where IBM Integration Bus writes records to the
local system. Use Windows system facilities to view this log.
Related reference:
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
22
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsistop command
Use the mqsistop command to stop the specified component.
Procedure
1. Start the component by using the command /S <broker name>. This command
produces the following output, where MQP1BRK is the name of the broker:
+BIP9141I MQP1BRK 0 The component was started
Substitute your own broker name for MQP1BRK.
The verification step runs, followed by starting the control process and any
DataFlowEngine (integration server) address spaces.
If the verification step fails, the errors are reported to the STDOUT stream in
the JOBLOG. The control process and DataFlowEngine address spaces are not
started. Review the messages to see what errors have been reported, and take
the suggested actions to resolve these problems.
2. Alternatively, start the control process only by using the command:
/S broker_name,STRTP=MAN
If the verification step fails for any reason, the errors are reported to the
STDOUT stream in the JOBLOG; the control process is not started. Review the
messages to see what errors have been reported, and take the suggested actions
to resolve these problems.
No DataFlowEngine address spaces are started automatically if you specify
STRTP=MAN. If the verification step is successful and the control process starts
successfully, fully start the broker by issuing the console command:
/F <broker name>, SC
3. To stop a broker, run the following command:
/P <broker name>
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker on z/OS
Create the broker component and the other resources on which it depends.
Related reference:
START and STOP commands on z/OS
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
23
24
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
25
3. Right-click the broker you want to stop, and click Stop > Broker. You can also
click Stop > Broker Immediately if you have already tried, and failed, to stop
the broker in a controlled fashion.
Results
You have stopped the selected broker.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Starting a local broker using the IBM Integration Toolkit or IBM Integration
Explorer on page 24
You can start your local brokers by using the IBM Integration Toolkit or the IBM
Integration Explorer.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
26
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Run the mqsireportbroker command. For example, to view the properties of
the broker SOAPBR, run the following command:
mqsireportbroker SOAPBR
2. View responses of the mqsireportbroker command to check on current settings.
Examples are given in mqsireportbroker command.
3. If you want to make any changes, run the mqsichangebroker command,
specifying the required parameters.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Related reference:
Security requirements for administrative tasks
You can configure access permissions to govern which users and groups can
manipulate objects in the broker network. Security requirements for administrative
tasks depend on the platform that you use.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
27
v Stop the queue manager for the Integration Bus component by using the endmqm
command. If you prefer, you can use the WebSphere MQ Explorer.
Procedure
1. Click Start > Programs > IBM WebSphere MQ > WebSphere MQ Explorer.
2. In the left pane, right-click the queue manager and select Properties. The
Properties dialog opens. The General properties are displayed.
3. Find the Startup property and set it to Automatic.
4. Click OK. The Properties dialog closes and the change is applied.
5. Restart the queue manager for the broker by using the strmqm command or
WebSphere MQ Explorer. The changes to the queue manager's startup type take
effect when you restart Windows.
6. Start the broker by using the mqsistart command.
Related tasks:
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Related reference:
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
Procedure
To stop a WebSphere MQ queue manager enter the following command on the
command line:
mqsistop IB9NODE -q
28
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
where:
IB9NODE is the name of the broker.
-q stops the WebSphere MQ queue manager associated with the component.
The command cannot complete until shutdown of the queue manager has
completed.
Related tasks:
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Related reference:
mqsistop command
Use the mqsistop command to stop the specified component.
Deleting a broker
Delete a broker using the command line on the system where the Integration Bus
component is installed.
Procedure
v Deleting a broker on Linux and UNIX systems on page 30
v Deleting a broker on Windows on page 31
v Deleting a broker on z/OS on page 32
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Modifying a broker
Modify a broker by using the command line on the system where the Integration
Chapter 1. Administering brokers and broker resources
29
Procedure
1. Stop the broker by using the mqsistop command.
2. Enter the following command to delete the broker:
mqsideletebroker IB9NODE
where IB9NODE is the broker name.
3. If you have created integration server profiles for this broker, delete these
profiles if they are no longer required.
4. Any empty integration server shared-classes directories (under
workpath/config/<my_broker_name>/<my_eg_label>) are automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directories and contents.
5. If the broker level shared-classes directory (under workpath/config/
<my_broker_name>) is empty, it is automatically deleted. Otherwise, if no longer
required, it is left to the user to manually delete the directory and contents.
Results
On completion of this task, you have:
v Removed the broker data from the database.
v Removed the record for the component in the broker registry. It is therefore
removed from the list of components that are displayed when you run the
mqsilist command.
v Removed any integration server profile scripts that are no longer needed.
v Removed any empty integration server shared-classes directories.
v Removed any empty broker shared-classes directory.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
30
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
To delete a broker:
Procedure
1. Stop the broker by using the mqsistop command.
2. Enter the following command to delete the broker:
mqsideletebroker IB9NODE
where IB9NODE is the broker name.
3. If you have created integration server profiles for this broker, delete these
profiles if they are no longer required.
4. Any empty integration server shared-classes directories (under
workpath/config/<my_broker_name>/<my_eg_label>) are automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directories and contents.
5. If the broker level shared-classes directory (under workpath/config/
<my_broker_name>) is empty, it is automatically deleted. Otherwise, if no longer
required, it is left to the user to manually delete the directory and contents.
Results
On completion of this task, you have:
v Stopped the Windows service that runs the broker.
v Removed the record for the component in the broker registry. It is therefore
removed from the list of components that are displayed when you run the
mqsilist command.
v Removed any integration server profile scripts that are no longer needed.
v Removed any empty integration server shared-classes directories.
v Removed any empty broker shared-classes directory.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Chapter 1. Administering brokers and broker resources
31
Related tasks:
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Related reference:
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
mqsistop command
Use the mqsistop command to stop the specified component.
mqsilist command
Use the mqsilist command to list installed brokers and their associated resources.
Procedure
1. Stop the broker, by stopping the started task.
2. Customize and submit the delete job BIPDLBK in your component PDSE to
delete the broker component and WebSphere MQ. This action does not delete
all files from the component directory in the file system.
3. Any empty integration server shared-classes directories (under
workpath/config/<my_broker_name>/<my_eg_label>) are automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directories and contents.
4. If the broker level shared-classes directory (under workpath/config/
<my_broker_name>) is empty, it is automatically deleted. Otherwise, if no longer
required, it is left to the user to manually delete the directory and contents.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Creating a broker on z/OS
Create the broker component and the other resources on which it depends.
Modifying a broker on z/OS
Use the mqsichangebroker command on z/OS to modify your broker.
Related reference:
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
32
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
33
2. In the Navigator view, expand the broker's queue manager, or the Integration
Nodes folder.
3. Right-click the broker, and click Delete > Broker. The Delete Broker wizard is
displayed.
4. If you want to delete the queue manager associated with the broker, ensure
Delete the broker's queue manager is selected.
5. Click Next. The wizard stops the broker if it is running.
6. Click Finish to close the wizard.
Results
You have deleted the broker. If you choose to delete the queue manager, the queue
manager continues to be displayed in the Navigator view until the views are
refreshed. The time this takes depends on your queue manager refresh settings, but
the default refresh value is 15 seconds.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Deleting a broker on page 29
Delete a broker using the command line on the system where the Integration Bus
component is installed.
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Modifying a broker
Modify a broker by using the command line on the system where the Integration
Bus component is installed.
Related reference:
Security requirements for administrative tasks
You can configure access permissions to govern which users and groups can
manipulate objects in the broker network. Security requirements for administrative
tasks depend on the platform that you use.
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
34
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
35
36
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
37
Results
The integration server is added to the appropriate broker, and can be viewed as a
child of the selected broker.
Note: If you do not immediately see the integration server that you added, you
can refresh the broker by right-clicking on it and selecting Refresh.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Renaming an integration server using the IBM Integration Explorer on page 40
You can rename an integration server by using the IBM Integration Explorer.
Importing a broker archive file to the IBM Integration Explorer
Before you can deploy resources to your integration nodes (brokers) by using the
IBM Integration Explorer, you must first import a broker archive file into a Broker
Archive Folder.
Deploying a broker archive file
After you have created and populated a broker archive (BAR) file, deploy the file
to an integration server on a broker, so that the file contents can be used in the
broker.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Connecting to a remote broker on page 4
To administer a remote broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Deleting an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer on page 46
You can delete an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer.
38
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. If you are creating an integration server on Linux, UNIX, and Windows
systems:
a. Open a command prompt that has the environment configured for your
current installation.
b. Enter the mqsicreateexecutiongroup command, specifying the parameters
for the integration server that you want to create.
v If the broker is local, specify the broker name. For example:
mqsicreateexecutiongroup IB9NODE -e EGroup_2
v If the broker is remote, you can specify a configuration file. For example:
mqsicreateexecutiongroup -n IB9NODE.broker -e EGroup_2
v If the broker is remote, you can alternatively specify one or more of the
connection parameters -i, -p, -q. For example:
mqsicreateexecutiongroup -q IB9QMGR -e EGroup_2
See the mqsicreateexecutiongroup command description for more details
about these options.
2. If you are creating an integration server on z/OS:
a. Configure the BIPCREG job to specify the properties for the integration server
that you want to create.
b. Run the BIPCREG job.
Results
On completion of this task, the integration server has been created on the specified
broker.
What to do next
Next: You can deploy message flows to the integration server by using the IBM
Integration Toolkit or the IBM Integration Explorer.
Related concepts:
Integration servers
An integration server is a named grouping of message flows that have been
assigned to a broker. The broker enforces a degree of isolation between message
flows in distinct integration servers by ensuring that they run in separate address
spaces, or as unique processes.
Related tasks:
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Renaming an integration server using the IBM Integration Explorer on page 40
You can rename an integration server by using the IBM Integration Explorer.
Deleting an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer on page 46
You can delete an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer.
Deleting an integration server by using the mqsideleteexecutiongroup command
on page 48
Use the command line to delete an integration server from the broker.
Chapter 1. Administering brokers and broker resources
39
Related reference:
mqsicreateexecutiongroup command
Use the mqsicreateexecutiongroup command to add a new integration server to a
broker.
mqsideleteexecutiongroup command
Use the mqsideleteexecutiongroup command to remove an integration server from
a broker.
Procedure
1. Open the IBM Integration Explorer.
2. In the Navigator view, expand the Integration Nodes folder.
3. Expand your integration server.
4. Right-click the integration server that you want to rename, and click Rename.
5. Enter a name for the integration server, and click OK.
Results
You have renamed the selected integration server.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Starting a local broker using the IBM Integration Toolkit or IBM Integration
Explorer on page 24
You can start your local brokers by using the IBM Integration Toolkit or the IBM
Integration Explorer.
40
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Open the IBM Integration Toolkit, and switch to the Integration Development
perspective.
2. In the Integration Nodes view, expand your broker.
3. Right-click the integration server, and click Start.
Results
A message is sent to the broker to start the selected integration server. Right-click
the message flows that you want to start, and click Start to start the message flows
deployed to the integration server.
Procedure
1. Open the IBM Integration Explorer.
2. In the Navigator view, expand the Integration Nodes folder.
Chapter 1. Administering brokers and broker resources
41
Results
A message is sent to the broker to start the selected integration server. Click Start >
All Flows to start all the message flows deployed to the integration server.
Procedure
1. Open a command prompt that has the environment configured for your current
installation.
2. Enter the mqsistartmsgflow command, specifying the parameters for the
integration server that you want to start.
v If the broker is local, specify the broker name. For example:
mqsistartmsgflow IB9NODE -e EGroup_2
v If the broker is remote, you can specify a configuration file. For example:
mqsistartmsgflow -n IB9NODE.broker -e EGroup_2
v If the broker is remote, you can alternatively specify one or more of the
connection parameters -i, -p, -q. For example:
mqsistartmsgflow -q IB9QMGR -e EGroup_2
What to do next
If you want to start all the integration servers on a broker, specify the -g flag
instead of -e.
See the mqsistartmsgflow command description for more details about these
options.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Starting a local broker using the IBM Integration Toolkit or IBM Integration
Explorer on page 24
You can start your local brokers by using the IBM Integration Toolkit or the IBM
Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
42
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Open the IBM Integration Toolkit, and switch to the Integration Development
perspective.
2. In the Integration Nodes view, expand your broker.
3. Right-click the integration server, and click Stop.
43
Results
A message is sent to the broker to stop the selected integration server.
Procedure
1.
2.
3.
4.
Results
A message is sent to the broker to stop the selected integration server.
Procedure
1. Open a command prompt that has the environment configured for your current
installation.
2. Enter the mqsistopmsgflow command, specifying the parameters for the
integration server that you want to stop.
v If the broker is local, specify the broker name. For example:
mqsistopmsgflow IB9NODE -e EGroup_2
v If the broker is remote, you can specify a configuration file. For example:
mqsistopmsgflow -n IB9NODE.broker -e EGroup_2
v If the broker is remote, you can alternatively specify one or more of the
connection parameters -i, -p, -q. For example:
mqsistopmsgflow -q IB9QMGR -e EGroup_2
What to do next
If you want to stop all the integration servers on a broker, specify the -g flag
instead of -e.
See the mqsistopmsgflow command description for more details about these
options.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
44
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
45
You can also use the CMP to delete integration servers on all platforms; see
Developing applications that use the IBM Integration API on page 58.
For information about why you might want to create multiple integration servers,
see Integration servers.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Configuring brokers for development environments
Set up application development environments on Linux on x86 or Windows to
create, test, and deploy message flows and associated resources.
Configuring brokers for test and production environments
Create one or more brokers on one or more computers, and configure them on
your test and production systems to process messages that contain your business
data.
Managing brokers on page 2
Work with your existing brokers to manage their connections and their active
status by using the IBM Integration Toolkit or IBM Integration Explorer. You can
use the IBM Integration API (also known as the CMP) to complete some of these
actions.
Managing message flows on page 50
Work with your existing messages that you have deployed to integration servers
by using the IBM Integration Toolkit or IBM Integration Explorer. You can use the
IBM Integration API (also known as the CMP) to complete some of these actions.
Related reference:
mqsideleteexecutiongroup command
Use the mqsideleteexecutiongroup command to remove an integration server from
a broker.
Related information:
IBM Integration API (CMP)
46
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Open the IBM Integration Toolkit, and switch to the Integration Development
perspective.
2. In the Integration Nodes view, expand your broker.
3. Right-click the integration server that you want to delete, and click Delete >
Integration Server.
Results
Your integration server and all resources deployed to it are deleted.
v If you have created any integration server profiles for this integration server,
delete them manually if they are no longer required.
v Any empty integration server shared-classes directory (under
workpath/config/<my_broker_name>/<my_eg_label>) is automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directory and contents.
Deleting an integration server by using the IBM Integration Explorer:
About this task
To delete an integration server by using the IBM Integration Explorer:
Procedure
1. Open the IBM Integration Explorer.
2. In the Navigator view, expand the Integration Nodes folder.
3. Expand your broker.
4. Right-click the integration server, and click Delete > Integration Server.
5. If you have deployed resources, you must confirm that you want to remove all
deployed resources before the integration server is deleted. Click OK to remove
the deployed resources.
Results
Your integration server and all resources deployed to it are deleted.
v If you have created any integration server profiles for this integration server,
delete them manually if they are no longer required.
v Any empty integration server shared-classes directory (under
workpath/config/<my_broker_name>/<my_eg_label>) is automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directory and contents.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
47
Starting a local broker using the IBM Integration Toolkit or IBM Integration
Explorer on page 24
You can start your local brokers by using the IBM Integration Toolkit or the IBM
Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Deleting an integration server by using the mqsideleteexecutiongroup command
Use the command line to delete an integration server from the broker.
Starting a message flow by using the IBM Integration Toolkit or IBM Integration
Explorer on page 53
Use the IBM Integration Toolkit or IBM Integration Explorer to start a message
flow.
Stopping a message flow using the IBM Integration Toolkit or IBM Integration
Explorer on page 54
Use the IBM Integration Toolkit or IBM Integration Explorer to stop a message
flow.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
Procedure
1. If you are deleting an integration server on Linux, UNIX, and Windows
systems:
a. Open a command prompt that has the environment configured for your
current installation.
b. Enter the mqsideleteexecutiongroup command, specifying the parameters
for the integration server that you want to delete.
v If the broker is local, specify the broker name; for example:
mqsideleteexecutiongroup IB9NODE -e EGroup_2
v If the broker is remote, you can specify a configuration file; for example:
mqsideleteexecutiongroup -n IB9NODE.broker -e EGroup_2
v If the broker is remote, you can alternatively specify one or more of the
connection parameters -i, -p, and -q; for example:
mqsideleteexecutiongroup -q IB9QMGR -e EGroup_2
See the mqsideleteexecutiongroup command description for more details
about these options.
48
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
c. If you have created integration server profiles and they are no longer
required, delete them manually.
d. Any empty integration server shared-classes directory (under
workpath/config/<my_broker_name>/<my_eg_label>) is automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directory and contents.
2. If you are deleting an integration server on z/OS:
a. Configure the BIPDLEG job to specify the properties for the integration server
that you want to delete.
b. Run the BIPDLEG job.
c. Any empty integration server shared-classes directory (under
workpath/config/<my_broker_name>/<my_eg_label>) is automatically deleted.
Otherwise, if no longer required, it is left to the user to manually delete the
directory and contents.
Results
On completion of this task, the integration server has been deleted from the
specified broker. In addition:
v All message flows that were running on the integration server are stopped.
v Any integration server profile scripts that are no longer needed have been
removed.
v Any empty integration server shared-classes directory has been removed.
Related concepts:
Integration servers
An integration server is a named grouping of message flows that have been
assigned to a broker. The broker enforces a degree of isolation between message
flows in distinct integration servers by ensuring that they run in separate address
spaces, or as unique processes.
Related tasks:
Creating an integration server using the mqsicreateexecutiongroup command on
page 38
Use the mqsicreateexecutiongroup command to create integration servers on your
broker.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Deleting an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer on page 46
You can delete an integration server by using the IBM Integration Toolkit or IBM
Integration Explorer.
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Related reference:
mqsicreateexecutiongroup command
Use the mqsicreateexecutiongroup command to add a new integration server to a
broker.
Chapter 1. Administering brokers and broker resources
49
mqsideleteexecutiongroup command
Use the mqsideleteexecutiongroup command to remove an integration server from
a broker.
50
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
51
You can set this property for message flows and applications. The state of an
application overrides the state of any message flows that it contains. For example,
if an application is stopped, no flows in that application can run, even if they have
been set to start automatically.
To find out how to use the mqsiapplybaroverride command to set the startMode
property, see mqsiapplybaroverride command.
What to do next
Next: Deploy the BAR file by following the instructions in Deploying a broker
archive file.
Related concepts:
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
Applications and libraries
Applications and libraries are deployable containers of resources, such as message
flows, subflows, message definitions (DFDL, XSD files), JAR files, XSL style sheets,
and WebSphere Adapters files.
Configurable properties of a broker archive
System objects that are defined in message flows can have properties that you can
update in the broker archive (BAR) file before deployment.
Related tasks:
Deploying resources
Deploy message flow applications to integration servers by sending a broker
archive (BAR) file to a broker, which unpacks and stores the contents ready for
when your message flows are started.
Managing message flow resources
You can use applications, libraries, and integration projects to organize your
resources.
Editing configurable properties
You can edit configurable properties in the deployment descriptor file (broker.xml)
of your broker archive.
Related reference:
mqsiapplybaroverride command
Use the mqsiapplybaroverride command to replace configurable values in the
broker archive (BAR) deployment descriptor with new values that you specify in a
properties file.
mqsireadbar command
Use the mqsireadbar command to read a deployable BAR file and identify its
defined keywords.
Configurable properties
Some properties of message flow nodes are configurable and can be changed by
using the mqsiapplybaroverride command. The following table maps the message
flow node properties to the corresponding properties of the mqsiapplybaroverride
52
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
command.
Results
A message is sent to the broker to start the message flow.
Results
A message is sent to the broker to start the message flows.
Note: A message flow can also be started using the command line utility
mqsistartmsgflow. For more information see mqsistartmsgflow command.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Stopping a message flow using the IBM Integration Toolkit or IBM Integration
Explorer on page 54
Use the IBM Integration Toolkit or IBM Integration Explorer to stop a message
Chapter 1. Administering brokers and broker resources
53
flow.
Setting the start mode of flows and applications at run time on page 50
You can configure the run state of message flows and applications when you
deploy or when you restart an integration server.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
Related reference:
mqsistartmsgflow command
Use the mqsistartmsgflow command to start integration servers, applications, and
message flows.
Results
A message is sent to the broker to stop the selected message flow.
Results
A message is sent to the broker to stop the selected message flows.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
54
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
A message is sent to the broker to delete the selected message flow.
Results
A message is sent to the broker to delete the selected message flows.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Chapter 1. Administering brokers and broker resources
55
Related tasks:
Creating an integration node using the IBM Integration Explorer
On Linux on x86 or Windows, you can create integration nodes (brokers) by using
the IBM Integration Explorer.
Starting a local broker using the IBM Integration Toolkit or IBM Integration
Explorer on page 24
You can start your local brokers by using the IBM Integration Toolkit or the IBM
Integration Explorer.
Connecting to a local broker on page 3
To administer a local broker by using the IBM Integration Toolkit or IBM
Integration Explorer, you must connect to the broker.
Creating an integration server using the IBM Integration Toolkit or IBM
Integration Explorer on page 36
Use the IBM Integration Toolkit or IBM Integration Explorer to create integration
servers on your broker.
Starting a message flow by using the IBM Integration Toolkit or IBM Integration
Explorer on page 53
Use the IBM Integration Toolkit or IBM Integration Explorer to start a message
flow.
Stopping a message flow using the IBM Integration Toolkit or IBM Integration
Explorer on page 54
Use the IBM Integration Toolkit or IBM Integration Explorer to stop a message
flow.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
56
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Use the following instructions to view and modify user-defined properties on your
message flows using the IBM Integration Explorer:
Procedure
1. In the Navigator view, expand the Integration Nodes folder, and navigate to the
message flow on which you want view the user-defined properties.
2. Right-click the message flow, and click Properties.
3. Click User Defined Properties to display a list of the user-defined properties
and their value defined on the message flow.
4. Optional: if you want to modify the user-defined properties, change the value
in the appropriate rows in the Value column, and click Apply. A message is
sent to the integration node (broker) to change the value of the user-defined
property.
5. Click OK to close the Properties window.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
User-defined properties
A user-defined property (UDP) is a property that is defined when you construct a
message flow by using the Message Flow editor. This property can be used by the
ESQL or Java program inside message flow nodes, such as a Compute node.
User-defined properties in ESQL
Access user-defined properties (UDPs) as variables in your ESQL program by
specifying the EXTERNAL keyword on a DECLARE statement. For example, the
ESQL statement DECLARE today EXTERNAL CHARACTER monday defines a
user-defined property called today with an initial value monday.
Related tasks:
Configuring a message flow at deployment time with user-defined properties
Use user-defined properties (UDPs) to configure message flows at deployment and
run time, without modifying program code. You can give a UDP an initial value
when you declare it in your program, or when you use the Message Flow editor to
create or modify a message flow.
Accessing message flow user-defined properties from a JavaCompute node
Customize a JavaCompute node to access properties that you have associated with
the message flow in which the node is included.
Related reference:
ESQL variables
ESQL variables can be described as external variables, normal variables, or shared
variables; their use is defined in the DECLARE statement.
Configurable message flow properties
When you add a message flow to a broker archive (BAR) file in preparation for
deploying it to a broker, you can set additional properties that influence its run
time operation. These properties are available for review and update when you
select the Manage and Configure tab for the broker archive file.
57
Results
When you have created your applications, test their operation in your test
environment. Check the results of the operations that the programs have
performed by using the Deployment Log view.
What to do next
When you have written and tested your applications, distribute them to the
computers from which you want your administrators to perform the tasks that you
have developed.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
58
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
59
Integration servers
An integration server is a named grouping of message flows that have been
assigned to a broker. The broker enforces a degree of isolation between message
flows in distinct integration servers by ensuring that they run in separate address
spaces, or as unique processes.
IBM Integration Toolkit
The IBM Integration Toolkit is an integrated development environment and
graphical user interface based on the Eclipse platform.
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
The IBM Integration API samples
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Related information:
IBM Integration API (CMP)
Deploy BAR
The Deploy BAR sample deploys a BAR file to an integration server, and displays
the outcome. Read about this sample in Running the CMP Deploy BAR sample
on page 61.
Broker management
The broker management sample uses the CMP to display to the screen the
complete run state of the broker. Running the CMP broker management sample
on page 63 describes this sample in more detail.
60
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
On Windows, the BAR file must be in the same directory as the CMP
.bat sample files.
Windows
The BAR file and integration server name, and the connection details that define
the target broker, are hard coded into the application. You can run this sample
unchanged, or you can modify the values and parameters that it uses to apply
them to your own configuration.
If you modify the Deploy BAR sample, you must update and recompile the source
file before you run it. The source file for this sample is located in the following
directory:
install_dir/sample/ConfigManagerProxy/cmp/DeployBar.java
61
Procedure
1. Run the Deploy BAR sample by entering the appropriate command for your
platform:
v
Windows
On Windows, open a Command Console and run the following
command:
install_dir\sample\ConfigManagerProxy\StartDeployBAR.bat
On other platforms:
a. Start a broker command environment by running mqsiprofile, or follow
the guidance provided in the StartDeployBar shell script to configure the
correct CLASSPATH for your environment.
b. Run the shell script:
install_dir\sample\ConfigManagerProxy\StartDeployBAR
The default connection parameters used by the sample are shown in the
following table.
v
Linux
UNIX
z/OS
Connection parameter
Description
"localhost"
"IB9QMGR"
2414
"default"
"mybar.bar"
The CMP connects to the broker that is running on the local computer (defined
by localhost). The queue manager IB9QMGR must be listening on port 2414.
Next, the CMP deploys the file mybar.bar to the predefined integration server
default.
2. Check the results of the sample by viewing the broker in the IBM Integration
Toolkit, or by using the IBM Integration API (CMP) Exerciser.
What to do next
Next: Run another sample, or work with the IBM Integration API (CMP) Exerciser.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
The IBM Integration API samples on page 60
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related tasks:
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Running the CMP broker management sample on page 63
Run the broker management sample to display the complete run state of a broker.
Running the IBM Integration API (CMP) Exerciser sample on page 64
Run the IBM Integration API (CMP) Exerciser sample to view and manage a
broker, customize the IBM Integration API (CMP) Exerciser, or record and play
62
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Run the broker management sample by entering the appropriate command for
your platform. Replace connection_file with the fully qualified file path to the file
that describes the connection details for the broker (with extension .broker).
Windows
On Windows, use the Command Console to run the following
command:
install_dir\sample\ConfigManagerProxy\StartBrokerInfo.bat connection_file
On other platforms:
1. Start a broker command environment by running mqsiprofile, or follow
the guidance provided in the StartBrokerInfo shell script to configure the
correct CLASSPATH for your environment.
Linux
UNIX
z/OS
63
(28/01/09
(28/01/09
(28/01/09
(28/01/09
v If you prefer, you can run this sample in interactive mode, which causes the
sample to listen for changes to the broker.
1. To run the sample in interactive mode, specify the -i option on the
command.
For example:
\sample\ConfigManagerProxy\StartBrokerInfo.bat
c:\myBroker.broker -i
In interactive mode, you see the output shown earlier, and the additional
response:
(13/08/08 15:53:46) Listening for changes to the broker...
2. To stop the sample when it is running in interactive mode, force it to end by
using CTRL+C.
What to do next
Next: Run another sample, or work with the IBM Integration API (CMP) Exerciser.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
The IBM Integration API samples on page 60
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related tasks:
Running the CMP Deploy BAR sample on page 61
Run the CMP Deploy BAR sample to deploy a broker archive file to a broker.
Running the IBM Integration API (CMP) Exerciser sample
Run the IBM Integration API (CMP) Exerciser sample to view and manage a
broker, customize the IBM Integration API (CMP) Exerciser, or record and play
back configuration scripts.
Modifying the CMP samples on page 71
Modify the CMP samples to change the parameters that they use to complete their
tasks.
Related information:
IBM Integration API (CMP)
64
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can run this sample unchanged, or you can modify the values and parameters
that it uses to apply them to your own configuration.
If you modify the IBM Integration API (CMP) Exerciser sample, you must update
and recompile the source file before you run it. The source file for this sample is
located in the following directory:
install_dir/sample/ConfigManagerProxy/cmp/exerciser
Windows
On Windows, click Start > All Programs > IBM Integration Bus
9.0.0.0 > IBM Integration Java APIs > IBM Integration CMP API Exerciser.
On other platforms:
a. Start a broker command environment by running mqsiprofile, or follow
the guidance provided in the StartConfigManagerProxyExerciser shell
script to configure the correct CLASSPATH for your environment.
Linux
UNIX
z/OS
65
b. Ensure that your user ID has writer permission to the current directory.
The CMP API Exerciser stores its configuration settings in a file in this
directory.
c. Run the shell script:
install_dir\sample\ConfigManagerProxy\StartConfigManagerProxyExerciser
The IBM Integration API (CMP) Exerciser window opens.
2. Connect to a running broker by clicking either File > Connect to Local Broker
or File > Connect to Remote Broker.
The Connect to a Broker dialog opens.
3. Enter the connection parameters to the broker, then click Submit.
Broker information is retrieved and displayed in the IBM Integration API
(CMP) Exerciser window. You have now connected to the broker.
The upper left of the screen contains a hierarchical representation of the broker
to which you are connected. Selecting objects in the tree causes the table on the
right to change, reflecting the attributes of the object that you select. The
Method column lists CMP methods that you can call in your own Java
applications, and the Result column indicates the data that is returned by
calling the CMP method on the selected object.
4. Run an CMP method against a broker object. CMP methods are used to
manage objects in a broker.
a. In the navigation tree, right-click a broker.
A pop-up menu opens to show all the available CMP methods.
b. Select Create integration server. The Create integration server dialog opens.
c. Enter the name for a new integration server and click Submit. The output
from the method is displayed in the log window at the bottom of the
screen. For example:
(31/03/09 16:53:50) ----> cmp.exerciser.ClassTesterForBrokerProxy.testCreateEG
(IB9NODE, "eg1")
(31/03/09 16:53:50) The request was successfully sent to the broker.
(31/03/09 16:53:50) <---- cmp.exerciser.ClassTesterForBrokerProxy.testCreateEG
You also see messages that are returned from the broker when the method
is called. For example:
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
(31/03/09
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
16:53:50)
----> cmp.exerciser.ExerciserAdministeredObjectListener.processActionResponse(...)
affectedObject = IB9NODE
completionCode = success
(Reference property) commsmessage.lastinbatch=true
(Reference property) uuid=595e1d10-3875-11d4-a485-000629be5bf8
(Reference property) child.uuid=1d8b3c5d-2001-0000-0080-c2000502e620
(Reference property) configmanagerproxy.osname=Windows
(Reference property) child.name=eg1
(Reference property) userid=Matt
(Reference property) configmanagerproxy.hostname=lucas
(Reference property) commsmessage.configobjecttype=Broker
(Reference property) type=Broker
(Reference property) child.type=ExecutionGroup
(Reference property) commsmessage.operationtype=createchild
(Reference property) configmanagerproxy.noeventlog=false
(Reference property) eg.arch=0
<---- cmp.exerciser.ExerciserAdministeredObjectListener.processActionResponse()
66
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
During these steps you connected to a broker, viewed the broker information, and
performed a management task by using the IBM Integration API (CMP) Exerciser.
What to do next
Next: Continue to work with the IBM Integration API (CMP) Exerciser, or run
another sample.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
The IBM Integration API samples on page 60
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related tasks:
Running the IBM Integration API (CMP) Exerciser sample on page 64
Run the IBM Integration API (CMP) Exerciser sample to view and manage a
broker, customize the IBM Integration API (CMP) Exerciser, or record and play
back configuration scripts.
Customizing the IBM Integration API (CMP) Exerciser
Enable or disable a selection of options to customize the IBM Integration API
(CMP) Exerciser to meet your requirements.
Recording and playing back configuration scripts using the IBM Integration API
(CMP) Exerciser on page 69
Use the IBM Integration API (CMP) Exerciser to record and play back
configuration scripts.
Modifying the CMP samples on page 71
Modify the CMP samples to change the parameters that they use to complete their
tasks.
Related information:
IBM Integration API (CMP)
Customizing the IBM Integration API (CMP) Exerciser:
Enable or disable a selection of options to customize the IBM Integration API
(CMP) Exerciser to meet your requirements.
About this task
To customize the IBM Integration API (CMP) Exerciser, complete the following
steps:
Procedure
1. Start the IBM Integration API (CMP) Exerciser.
v
Windows
On Windows, click Start > All Programs > IBM Integration Bus
9.0.0.0 > IBM Integration Java APIs > Integration Java API Exerciser.
67
Linux
UNIX
z/OS
On other operating systems, run the following
shell script:
install_dir\sample\ConfigManagerProxy\StartConfigManagerProxyExerciser
68
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v If you enable this option, the deployed resources that are shown in the
tree are grouped by the BAR file name under which they were last
deployed.
v If you disable this option, the BAR file names are not displayed.
i. Optional: Click View > Show Resource Managers to enable or disable this
option.
v If you enable this option, the resource managers are shown in the tree for
each integration server.
v If you disable this option, the resource managers are not shown.
What to do next
Next: Continue to work with the IBM Integration API (CMP) Exerciser, or run
another sample.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
The IBM Integration API samples on page 60
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related tasks:
Modifying the CMP samples on page 71
Modify the CMP samples to change the parameters that they use to complete their
tasks.
Running the IBM Integration API (CMP) Exerciser sample on page 64
Run the IBM Integration API (CMP) Exerciser sample to view and manage a
broker, customize the IBM Integration API (CMP) Exerciser, or record and play
back configuration scripts.
Viewing and managing a broker in the IBM Integration API (CMP) Exerciser on
page 65
Use the IBM Integration API (CMP) Exerciser sample to view and manage a
broker.
Recording and playing back configuration scripts using the IBM Integration API
(CMP) Exerciser
Use the IBM Integration API (CMP) Exerciser to record and play back
configuration scripts.
Related information:
IBM Integration API (CMP)
Recording and playing back configuration scripts using the IBM Integration API
(CMP) Exerciser:
Use the IBM Integration API (CMP) Exerciser to record and play back
configuration scripts.
69
Windows
On Windows, clickStart > All Programs > IBM Integration Bus
9.0.0.0 > IBM Integration Java APIs > IBM Integration CMP API Exerciser.
UNIX
z/OS
70
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Set up the environment by following the instructions provided in Configuring
an environment for developing and running CMP applications on page 72.
2. Locate the source file for the sample that you want to change.
The source files for the samples are located in the following directories:
Deploy BAR sample
install_dir/sample/ConfigManagerProxy/cmp/DeployBar.java
Broker management sample
install_dir/sample/ConfigManagerProxy/cmp/BrokerInfo.java
IBM Integration API (CMP) Exerciser sample
install_dir/sample/ConfigManagerProxy/cmp/exerciser.java
3. Open the source file, and modify the appropriate parameters.
4. Save and recompile the source file.
What to do next
Next: Run the modified sample by following the instructions in the appropriate
link:
v Running the CMP Deploy BAR sample on page 61
v Running the CMP broker management sample on page 63
v Running the IBM Integration API (CMP) Exerciser sample on page 64
Chapter 1. Administering brokers and broker resources
71
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
The IBM Integration API samples on page 60
Explore the samples to learn the basic features that are provided by the IBM
Integration API (also known as the CMP). Run the samples to deploy a BAR file or
manage a broker, or use the IBM Integration API (CMP) Exerciser to implement
various tasks.
Related information:
IBM Integration API (CMP)
72
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can also run CMP applications, and therefore control one or more broker
components, from computers on which you have not installed IBM Integration Bus.
For more information, see Configuring environments without the Integration Bus
component installed on page 76.
The JAR file ConfigManagerProxy.jar contains the English message catalog for
displaying broker (BIP) messages from the Administration log of the broker. If you
want a CMP application to display broker messages in a language other than
English, you must also add the directory that contains the localized message
catalogs to your class path; for example, C:\Program Files\IBM\MQSI\v.r.m.f\
messages on Windows operating systems. The default directory includes the
version, release, modification, and fix of the product, in the format v.r.m.f
(version.release.modification.fix).
You can also use the CMP to display or log messages from a catalog that you
create yourself.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring the Windows command-line environment to run CMP applications
Use system facilities to configure environment variables on your Windows
computers to run your CMP applications.
Configuring Linux, UNIX, and z/OS command-line environments to run CMP
applications on page 74
Use system facilities to configure environment variables on your Linux, UNIX, and
z/OS computers to run your CMP applications.
Configuring the Eclipse environment to run CMP applications on page 75
Use Eclipse facilities to configure the environment to run your CMP applications.
Configuring environments without the Integration Bus component installed on
page 76
Install and run CMP applications and other utilities on computers, when you are
using a local ID only, on which you have not installed the Integration Bus
component.
Creating message catalogs
Create your own message catalogs to write tailored entries to the local error log.
Related reference:
Additional software requirements
IBM Integration Bus requires additional software products to run successfully.
Related information:
IBM Integration API (CMP)
WebSphere MQ Version 7 product documentation
73
Procedure
1. Add the CMP JAR file to your CLASSPATH. For example:
set CLASSPATH = %CLASSPATH%;%install_dir%\classes\ConfigManagerProxy.jar
2. Add the WebSphere MQ Classes for Java JAR file com.ibm.mq.jar to your
CLASSPATH in the same way.
On 32-bit operating system editions, the file is typically stored in the directory
C:\Program Files\IBM\WebSphere MQ\java\lib. On 64-bit operating system
editions, the file is typically stored in the directory C:\Program Files
(x86)\IBM\WebSphere MQ\java\lib.
For more information about the WebSphere MQ Classes for Java, see the Using
Java section in the WebSphere MQ information center.
3. Add your Java development directory to the CLASSPATH in the same way.
What to do next
Next: Use the tools that are provided by your JDK to build and run your CMP
applications.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Configuring Linux, UNIX, and z/OS command-line environments to run CMP
applications
Use system facilities to configure environment variables on your Linux, UNIX, and
z/OS computers to run your CMP applications.
Configuring the Eclipse environment to run CMP applications on page 75
Use Eclipse facilities to configure the environment to run your CMP applications.
Related information:
IBM Integration API (CMP)
WebSphere MQ Version 7 product documentation
74
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Add the CMP JAR to your CLASSPATH. For example:
export CLASSPATH = $CLASSPATH%;$install_dir/sample/ConfigManagerProxy/ConfigManagerProxy.jar
2. Add the WebSphere MQ Classes for Java JAR file com.ibm.mq.jar to your
CLASSPATH in the same way.
On Linux and UNIX systems, the file is typically installed in the directory
MQ_INSTALLATION_PATH/java/lib.
For more information about the WebSphere MQ Classes for Java, see the Using
Java section in the WebSphere MQ information center.
3. Add your Java development directory to the CLASSPATH in the same way.
What to do next
Next: Use the tools that are provided by your JDK to build and run your CMP
applications.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Configuring the Windows command-line environment to run CMP applications
on page 73
Use system facilities to configure environment variables on your Windows
computers to run your CMP applications.
Configuring the Eclipse environment to run CMP applications
Use Eclipse facilities to configure the environment to run your CMP applications.
Related information:
IBM Integration API (CMP)
WebSphere MQ Version 7 product documentation
Procedure
1. In your Eclipse environment, select File > New > Project. The New Project
wizard opens.
2. Select Java Project from the options displayed. Click Next. The New Java
Project window opens.
3. Enter a name for your new project. Click Next.
4. Select the Libraries tab, and click Add External Jars.
5. To set up the build environment, navigate to the install_dir/classes
subdirectory. For example, for Version 9.0.0.0 on Windows 32-bit operating
Chapter 1. Administering brokers and broker resources
75
What to do next
Next: Use the Eclipse development tools to build and run your CMP applications.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Configuring the Windows command-line environment to run CMP applications
on page 73
Use system facilities to configure environment variables on your Windows
computers to run your CMP applications.
Configuring Linux, UNIX, and z/OS command-line environments to run CMP
applications on page 74
Use system facilities to configure environment variables on your Linux, UNIX, and
z/OS computers to run your CMP applications.
Related information:
IBM Integration API (CMP)
WebSphere MQ Version 7 product documentation
76
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Ensure that the target computer has a compatible Java Runtime Environment
(JRE). Because you are not installing the Integration Bus component, which
includes a JRE, you must use an alternative option.
Note, that you must also set MQSI_JREPATH to the installation path of your
JRE.
Java support is defined in Additional software requirements.
2. Copy the following set of files from a computer that has the Integration Bus
component installed to the target computer:
a. ConfigManagerProxy.jar from the classes directory.
b. The WebSphere MQ Classes for Java.
v On Windows, these classes are located in the file com.ibm.mq.jar.
v On other platforms, these classes are located in the component's
installation image.
c. Your CMP application and all configuration files, for example .broker files.
d. Optional: If you want to run the broker commands on the target computer,
complete the following steps:
1) Copy brokerutil.jar from the classes directory.
2) Copy the required utility bat files, or shell scripts, from the bin
directory. Shell scripts have a .bat extension on Windows or no
extension on UNIX platforms:
v mqsicreateexecutiongroup or mqsicreateexecutiongroup.bat
v mqsideleteexecutiongroup or mqsideleteexecutiongroup.bat
v mqsimode or mqsimode.bat
v mqsipackagebar or mqsipackagebar.bat
v mqsireloadsecurity or mqsireloadsecurityscript.bat
v mqsistartmsgflow or mqsistartmsgflow.bat
v mqsistopmsgflow or mqsistopmsgflow.bat
e. Optional: If you want to display broker (BIP) messages in English
environments other than US English, copy all BIPmsgs*.properties files from
the messages directory.
3. On the target computer, use system facilities to update the CLASSPATH
environment variable to include the following files:
v The JAR file that contains the definitions of the CMP classes,
ConfigManagerProxy.jar.
v Your applications that import the CMP classes.
v The WebSphere MQ Classes for Java, com.ibm.mq.jar, and any additional
JAR files required by this package.
v Any other required JAR files and directories. For example, if you require any
of the available command utilities on the target computer, include
77
What to do next
Next: You can run your CMP applications, and the specified command utilities, on
the target computer.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Managing brokers in a CMP application on page 94
Manage the brokers and their resources from a CMP application.
Related reference:
Additional software requirements
IBM Integration Bus requires additional software products to run successfully.
mqsicreateexecutiongroup command
Use the mqsicreateexecutiongroup command to add a new integration server to a
broker.
mqsideleteexecutiongroup command
Use the mqsideleteexecutiongroup command to remove an integration server from
a broker.
mqsimode command
Use the mqsimode command to configure and retrieve operation mode information.
mqsipackagebar command
Use the mqsipackagebar command to create deployable broker archive (BAR) files.
You can use this command to create BAR files on machines that do not have the
IBM Integration Toolkit installed.
mqsireloadsecurity command
Use the mqsireloadsecurity command to force the immediate expiry of some or all
the entries in the security cache.
mqsistartmsgflow command
Use the mqsistartmsgflow command to start integration servers, applications, and
message flows.
mqsistopmsgflow command
Use the mqsistopmsgflow command to stop integration servers, applications, and
78
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
message flows.
Related information:
WebSphere MQ Version 7 product documentation
79
80
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v
v
v
v
v
Brokers
Integration servers
Deployed message flows
Administration log
Activity logs
Class function
BrokerProxy
Describes brokers.
ExecutionGroupProxy
MessageFlowProxy
Describes message flows that have already been deployed to integration servers; does not describe
message flows in the Integration Development perspective of the IBM Integration Toolkit.
LogProxy
Represents the log of recent administrative activity on the broker, for all users.
ActivityLogProxy
DataCaptureProxy
Represents data that is held in a broker data store. Retrieved data is contained in
DataCaptureEntry objects.
Each administered object describes a single object that can be controlled by the
broker. For example, every integration server within a broker has one
ExecutionGroupProxy instance that represents it within the application.
The LogProxy object includes messages, created as LogEntry objects, that record
recent changes made to the administered objects. These messages include the
following information:
v Administration requests; for example, a request to deploy a BAR file
v Results of administration requests
v Changes that have been made to objects; for example, a change to a property
value through an administration task
v Changes that have been made to objects as a result of starting a broker at a new
fix pack level or version.
The ActivityLogProxy object includes messages, created as ActivityLogEntry
objects, that record recent high-level activities involving message flows and their
interactions with external resources. For more information about these messages,
see Using Activity logs on page 623. Activity logs are generated for message
flows and for specific resource types.
You can retrieve an ActivityLogProxy object for a message flow from a
MessageFlowProxy object. To get an ActivityLogProxy object for a resource type,
use the ResourceManagerProxy object. Invoke the method getActivityLog() on the
MessageFlowProxy object or the ResourceManagerProxy object. For further
information, see Working with Activity logs in a CMP application on page 105.
81
You can use the AdminQueueProxy object to examine what items of work are in
progress or are waiting for processing by the broker. The following code shows
how you can access the queue:
BrokerConnectionParameters bcp =
new MQBrokerConnectionParameters("localhost", 1414, "QMGR");
BrokerProxy b = BrokerProxy.getInstance(bcp);
AdminQueueProxy l = b.getAdministrationQueue();
A set of public methods is available for each administered object, which
applications can use to inquire and manipulate properties of the underlying broker
to which the instance refers. To access an administered object through its API, your
application must first request a handle to that object from the object that logically
owns it.
For example, because brokers logically own integration servers, to gain a handle to
integration server EG1 running on broker B1, the application must ask the
BrokerProxy object represented by B1 for a handle to the ExecutionGroupProxy
object represented by EG1.
On a BrokerProxy object that refers to broker B1, the application can call methods
that cause the broker to reveal its run-state, or cause it to start all its message
flows. You can write applications to track the changes that are made to the broker
objects by reading the messages maintained as LogEntry objects.
In the following example, a handle is requested to the BrokerProxy object. The
BrokerProxy is logically the root of the administered object tree, therefore your
application can access all other objects in the broker directly, or indirectly.
The broker directly owns the integration servers, therefore applications can call a
method on the BrokerProxy object to gain a handle to the ExecutionGroupProxy
objects. Similarly, the integration server logically contains the set of all message
flows, therefore the application can call methods on the ExecutionGroupProxy
object to access the MessageFlowProxy objects.
The hierarchy of these access relationships is shown in the following diagram.
82
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
BrokerProxy
ExecutionGroupProxy
ApplicationProxy
LibraryProxy
LibraryProxy
DataCaptureProxy
ResourceManagerProxy
DataCaptureEntry
ActivityLogProxy
AdminQueueProxy
LogProxy
AdminQueueEntry
LogEntry
ActivityLogEntry
Each object with an asterisk after its name inherits from the
DeployedObjectGroupProxy class, and therefore has further child objects as shown
in the following diagram.
DeployedObjectGroupProxy
MessageFlowProxy
MessageFlowDependency
ActivityLogProxy
ActivityLogEntry
83
84
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
85
86
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Connecting to a broker from a CMP application on page 79
Connect an application that uses the CMP to a broker, to send requests about its
status and its resources.
Related information:
IBM Integration API (CMP)
Example
An example
This example connects to a broker that is running on the local computer. Its queue
manager, IB9QMGR, is listening on port 2414. The code deploys a BAR file called
MyBAR.bar to an integration server called default that is running on the broker,
and displays the result.
import com.ibm.broker.config.proxy.*;
public class DeployBAR {
public static void main(String[] args) {
BrokerConnectionParameters bcp =
Chapter 1. Administering brokers and broker resources
87
Procedure
1. Connect to the broker by clicking File > Connect to Broker. This action opens
the Connect to Broker dialog.
2. Enter the relevant connection parameters in the dialog. A hierarchical
representation of the broker and its resources is displayed.
3. Complete one or more of the following operations:
v Click an object in the tree to display the attributes of that object.
v Right-click an object in the tree to call CMP methods that manipulate that
object. For example, right-clicking a broker opens a menu that includes the
items Start user trace.
v Use the log pane at the bottom of the screen to view useful information that
relates to the operation in progress.
Related concepts:
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Checking the results of deployment in a CMP application on page 89
When you deploy from a CMP application, you can check the results of that action.
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
IBM Integration API (CMP) trace on page 867
Enable or disable service trace for the IBM Integration API (also known as the
88
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
CMP).
Resolving problems when developing CMP applications on page 828
Use the advice given here to help you to resolve problems that can arise when
developing IBM Integration API (also known as the CMP) applications.
Related information:
IBM Integration API (CMP)
Description
pending
The deployment is held in a batch and is not sent until you call BrokerProxy.sendUpdates().
submitted
The deploy message was sent to the broker, but no response was received before the timeout
period expired.
success
failure
The broker has generated one or more errors during deployment. You can call the
getLogEntries() method of the DeployResult class to get more information about the deployment
failure. This method returns an enumeration of available LogEntry objects.
Related concepts:
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Chapter 1. Administering brokers and broker resources
89
Related tasks:
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Viewing Administration log information on page 190
You can view Administration log information by using either the IBM Integration
Explorer, or the CMP.
IBM Integration API (CMP) trace on page 867
Enable or disable service trace for the IBM Integration API (also known as the
CMP).
Resolving problems when deploying message flows or message sets on page 752
Use the advice given here to help you to resolve common problems that can arise
when you deploy message flows or message sets.
Resolving problems when developing CMP applications on page 828
Use the advice given here to help you to resolve problems that can arise when
developing IBM Integration API (also known as the CMP) applications.
Related information:
IBM Integration API (CMP)
90
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Call MessageFlowProxy.getUserDefinedPropertyNames() to retrieve a list of all
the user-defined properties that were defined by the Message Flow editor on
the message flow or subflows.
A string array is returned that contains the property names.
2. Call MessageFlowProxy.getUserDefinedProperty() to retrieve the value of the
specified user-defined property.
The value of the property is returned as a Java.lang.String value.
3. Call MessageFlowProxy.setUserDefinedProperty() to set a new value for the
specified user-defined property.
The property must exist. You cannot change the data type of the existing
user-defined property (Java.lang.String); therefore, you must ensure that the
new value complies with the existing data type. The value that you set with the
MessageFlowProxy.setUserDefinedProperty() call is populated to all relevant
nodes in the message flow, including nodes in subflows.
Related concepts:
User-defined properties
A user-defined property (UDP) is a property that is defined when you construct a
message flow by using the Message Flow editor. This property can be used by the
ESQL or Java program inside message flow nodes, such as a Compute node.
User-defined properties in ESQL
Access user-defined properties (UDPs) as variables in your ESQL program by
specifying the EXTERNAL keyword on a DECLARE statement. For example, the
ESQL statement DECLARE today EXTERNAL CHARACTER monday defines a
user-defined property called today with an initial value monday.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
ESQL variables
An ESQL variable is a data field that is used to help process a message.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Configuring a message flow at deployment time with user-defined properties
Use user-defined properties (UDPs) to configure message flows at deployment and
run time, without modifying program code. You can give a UDP an initial value
when you declare it in your program, or when you use the Message Flow editor to
create or modify a message flow.
Accessing message flow user-defined properties from a JavaCompute node
Customize a JavaCompute node to access properties that you have associated with
the message flow in which the node is included.
Related reference:
IBM Integration API
Use the IBM Integration API (CMP) Java classes and methods to develop CMP
applications.
Chapter 1. Administering brokers and broker resources
91
Procedure
1. Right-click the JavaCompute node and click Open Java to create and open a
Java file in the Editor view, or open an existing file.
2. Create the Java class for the node in which you want to include CMP methods.
3. Add the CMP JAR file install_dir/classes/ConfigManagerProxy.jar to the
Java build path for the associated Java project.
4. Import com.ibm.broker.config.proxy.* in your code.
5. Add the following static method to the class you have created:
BrokerProxy b = BrokerProxy.getLocalInstance();
This method returns an instance of the BrokerProxy object for the broker to
which the message flow (that contains this node) is deployed.
6. To ensure that the BrokerProxy object has been populated with data from the
broker before you access the configurable service, add the following code:
while(!b.hasBeenPopulatedByBroker()) { Thread.sleep(100); }
7. Access the appropriate UserDefined configurable service:
a. If you know the name of the configurable service, use the following code to
access it:
ConfigurableService myUDCS = b.getConfigurableService("UserDefined", "UD1");
92
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
8. Add further code to access and use the specific properties that you are
interested in. For example:
v Retrieve the properties that are defined to that service:
String[] props = myUDCS.getProperties();
v Create a new property:
String newprop = VerifyRequestTimeout;
String newval = 15;
myUDCS.setProperty(newprop, newval);
v Delete a property:
myUDCS.deleteProperty(newprop);
You can also use the deleteProperties() method to delete more than one
property.
You can delete properties in UserDefined configurable services only. If you
use this method on a configurable service of a different type, a
ConfigManagerProxyLoggedException is generated.
9. Deploy the JAR file, and all associated message flows, in a BAR file. You do not
have to deploy the ConfigManagerProxy.jar file to the target integration server,
because the broker can access these classes independently.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Using the IBM Integration Explorer to work with configurable services
Configurable services are used to define properties that are related to external
services on which the integration node (broker) relies. Use the IBM Integration
Explorer to view, add, modify and delete configurable services.
Configurable services
Configurable services are typically runtime properties. You can use them to define
properties that are related to external services on which the broker relies; for
example, an SMTP server or a JMS provider.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Creating a message flow
Create a message flow to specify how to process messages in the broker. You can
create one or more message flows and deploy them to one or more brokers.
Configuring message flows to process timeouts
Connect the HTTP Timeout terminal of the HTTPInput or SOAPInput nodes to
further nodes to process timeouts.
Related reference:
IBM Integration API
Use the IBM Integration API (CMP) Java classes and methods to develop CMP
applications.
Chapter 1. Administering brokers and broker resources
93
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
94
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
Next:
Most state-changing CMP methods return control immediately without informing
the calling application of the outcome of the request. To discover this information,
see Checking the results of broker management in a CMP application on page
96.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Connecting to a broker from a CMP application on page 79
Connect an application that uses the CMP to a broker, to send requests about its
status and its resources.
Managing brokers from JavaCompute nodes on page 102
You can use the CMP to manage brokers and their associated resources from
JavaCompute nodes in deployed message flows.
Related information:
IBM Integration API (CMP)
95
96
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
appropriate action, and improve the efficiency of your program. See Checking
the results of broker management with object notification in a CMP application
on page 98.
v If you prefer to make property changes synchronously, call the method
BrokerProxy.setSynchronous() before making your changes.
If subsequent property change methods give a successful return, the request has
been successfully completed by the broker. If the changes are rejected by the
broker, or time out (they cannot be completed successfully by the broker before
the timeout period expires), the methods throw either a
ConfigManagerProxyRequestFailure or a ConfigManagerProxyRequestTimeout
exception.
For more information on synchronous property changes, see the description of
the BrokerProxy.setSynchronous() method in the CMP Javadoc information.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Checking the results of broker management with the most recent completion code
in a CMP application
Use an object's most recent completion code to determine the outcome of a request
that your application made against that object.
Checking the results of broker management with object notification in a CMP
application on page 98
Use object notification to determine the outcome of a request that your application
made against the object.
Related information:
IBM Integration API (CMP)
Checking the results of broker management with the most recent completion
code in a CMP application:
Use an object's most recent completion code to determine the outcome of a request
that your application made against that object.
About this task
Most state-changing methods in the CMP do not provide return code that indicates
the success or failure of a specific action. For these methods, you must write
different code to discover the outcome of the action. Assuming that administered
objects are not shared across threads, the following code fragment can be used to
discover the outcome of a request to modify a broker's LongDescription, where b is
an instance of a BrokerProxy object:
GregorianCalendar oldCCTime =
b.getTimeOfLastCompletionCode();
b.setLongDescription(newDesc);
GregorianCalendar newCCTime = oldCCTime;
while ((newCCTime == null) || (newCCTime.equals(oldCCTime))) {
newCCTime = b.getTimeOfLastCompletionCode());
Chapter 1. Administering brokers and broker resources
97
Thread.sleep(1000);
}
CompletionCodeType ccType = b.getLastCompletionCode();
if (ccType == CompletionCodeType.success) {
// etc.
}
In this example, the application initially determines when an action on the broker
was last completed, using the getTimeOfLastCompletionCode() method. This
method returns the time that the topology last received a completion code or, if no
return codes have been received, a null value. The application updates the broker's
LongDescription, then continually monitors the topology, waiting for the results of
the setLongDescription() command to be returned to the CMP. When the results
are returned, control breaks out of the while loop and the last completion code is
determined.
As well as being unsuitable for a multi-threaded application, this algorithm for
determining the outcome of commands is inefficient, because it causes the CMP
application to wait while the broker processes the request.
For a more efficient application, and one that is suitable for a multi-threaded
environment, code the alternative approach that uses administered object
notifications; see Checking the results of broker management with object
notification in a CMP application.
If you prefer, you can make property changes synchronously by using the
methodBrokerProxy.setSynchronous() method. When you make synchronous
property changes, methods such as setLongDescription() do not return until the
change has been processed by the broker. For more information on synchronous
property changes, see the description of the BrokerProxy.setSynchronous()) method
in the CMP Javadoc information.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Checking the results of broker management in a CMP application on page 96
When you have made a change to the broker, use one of the supplied methods to
check if the change has been successful.
Checking the results of broker management with object notification in a CMP
application
Use object notification to determine the outcome of a request that your application
made against the object.
Related information:
IBM Integration API (CMP)
Checking the results of broker management with object notification in a CMP
application:
Use object notification to determine the outcome of a request that your application
made against the object.
98
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
99
com.ibm.broker.config.proxy.*;
com.ibm.broker.config.proxy.CompletionCodeType;
java.util.List;
java.util.ListIterator;
java.util.Properties;
100
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
}
public void processDelete(AdministeredObject deletedObject) {
// Event ignored in this example
}
public void processModify(AdministeredObject affectedObject,
List changedAttributes,
List newChildren,
List removedChildren) {
try {
System.out.println(affectedObject+" has changed:");
ListIterator e = changedAttributes.listIterator();
while (e.hasNext()) {
String changedAttribute = (String) e.next();
System.out.println("Changed: "+changedAttribute);
}
ListIterator e2 = newChildren.listIterator();
while (e2.hasNext()) {
String newChildStr = (String) e2.next();
AdministeredObject newChild =
affectedObject.getManagedSubcomponentFromStringRepresentation(newChildStr);
System.out.println("New child: "+newChild);
}
ListIterator e3 = removedChildren.listIterator();
while (e3.hasNext()) {
String remChildStr = (String) e3.next();
AdministeredObject removedChild =
affectedObject.getManagedSubcomponentFromStringRepresentation(remChildStr);
System.out.println("Removed child: "+removedChild);
}
} catch (ConfigManagerProxyPropertyNotInitializedException ex) {
ex.printStackTrace();
}
}
}
101
Procedure
1. Create the Java class for the node in which you want to include CMP methods.
2. Add the CMP JAR file install_dir/classes/ConfigManagerProxy.jar to the
Java build path for the associated Java project.
3. Add the following static method to the class:
BrokerProxy thisBroker = BrokerProxy.getLocalInstance();
This method returns an instance of the BrokerProxy object for the broker to
which the message flow (that contains this node) is deployed.
4. To work with an integration server on this broker, add the following static
method to your code:
ExecutionGroupProxy thisEG = ExecutionGroupProxy.getLocalInstance();
This method returns an instance of the ExecutionGroupProxy object for the
integration server to which the message flow is deployed.
5. If you want to connect to a different broker that you have created on the
computer to which your node and message flow are deployed, you can use a
variant of this class:
BrokerProxy secondBroker = BrokerProxy.getLocalInstance(string)
Specify the name of the alternative local broker as the value of the variable
string. Your code can manage this second broker, and its associated resources,
by using the BrokerProxy object that is returned by this call.
102
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
6. Include additional CMP methods in your Java code to run the operations that
you want against the broker or integration server by using the objects obtained
in previous steps. You can follow the guidance that is provided in other topics
in this section for further information and examples that show how to use CMP
methods in CMP applications.
If you include methods that affect the message flow in which your CMP
application is running, it might not be able to receive all notifications that these
operations have successfully completed. Stopping, deleting, and redeploying
the message flow are examples in this category; consider carefully the
consequences of using these methods.
7. Deploy the JAR file, and all associated message flows, in a BAR file. You do not
have to deploy the ConfigManagerProxy.jar file to the target integration server,
because the broker can access these classes independently.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Creating Java code for a JavaCompute node
Use these instructions to associate Java code with your JavaCompute node.
Related reference:
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
Related information:
IBM Integration API (CMP)
103
b = BrokerProxy.getLocalInstance("testbrk");
String[] resourceNames = b.getResourceTypeNames();
for (String thisResource : resourceNames) {
System.out.println(thisResource);
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
}
Checking for resource names associated with a specific resource type
///////////////////////////////////////////////////////
// Sample CMP API code that connects to a local broker
// called testbrk and writes out resource property
// names reported for a specific resource type.
BrokerProxy b = null;
try {
b = BrokerProxy.getLocalInstance("testbrk");
String[] resourcePropertyNames =
b.getResourceTypeStatisticsPropertyNames("JVM");
for (String thisResourceProperty : resourcePropertyNames) {
System.out.println(thisResourceProperty);
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
}
Starting statistics collection
///////////////////////////////////////////////////////
// Sample CMP API code that connects to a local broker
// called testbrk and gets a reference to the execution
// group called default. It then enables resource
// statistics for all the integration servers resource types.
BrokerProxy b = null;
try {
b = BrokerProxy.getLocalInstance("testbrk");
ExecutionGroupProxy eg = b.getExecutionGroupByName("default");
if (eg != null) {
eg.setResourceStatisticsEnabled(null, true);
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
}
Stopping statistics collection
///////////////////////////////////////////////////////
// Sample CMP API code that connects to a local broker
// called testbrk and gets a reference to the execution
// group called default. It then disables resource
// statistics for all the integration servers resource types.
BrokerProxy b = null;
try {
b = BrokerProxy.getLocalInstance("testbrk");
ExecutionGroupProxy eg = b.getExecutionGroupByName("default");
if (eg != null) {
eg.setResourceStatisticsEnabled(null, false);
104
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
}
Viewing statistics collection status
///////////////////////////////////////////////////////
// Sample CMP API code that connects to a local broker
// called testbrk and gets a reference to the execution
// group called default. It then writes out if resource
// statistics is enabled.
BrokerProxy b = null;
try {
b = BrokerProxy.getLocalInstance("testbrk");
ExecutionGroupProxy eg = b.getExecutionGroupByName("default");
if (eg != null) {
System.out.println(eg.getResourceStatisticsEnabled(null));
}
} catch (ConfigManagerProxyLoggedException e) {
e.printStackTrace();
} catch (ConfigManagerProxyPropertyNotInitializedException e) {
e.printStackTrace();
}
Related concepts:
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Analyzing resource performance on page 529
You can collect statistics to assess the performance of resources used by integration
servers.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
105
106
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
if(mf != null) {
ActivityLogProxy al = mf.getActivityLog();
if (al != null) {
for (int i = 1; i <= al.getSize(); i++) {
ActivityLogEntry ale = al.getLogEntry(i);
System.out.println(ale);
System.out.println(ale.getMessageNumber());
}
}
}
}
}
}
} catch (ConfigManagerProxyException ex) {
ex.printStackTrace();
}
Related tasks:
Using Activity logs on page 623
Use Activity logs to get an overview of recent activities in your message flows and
associated external resources.
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Navigating brokers and broker resources in a CMP application on page 80
Explore the status and attributes of the broker that your CMP application is
connected to, and discover information about its resources.
107
108
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
if (brokerProxy != null) {
brokerProxy.disconnect();
}
}
Related concepts:
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Related information:
IBM Integration API (CMP)
109
b.startUpdates();
ExecutionGroupProxy e = b.createExecutionGroup("EG2");
e.deploy("mybar.bar");
b.sendUpdates();
Another advantage of using a batch method is performance. The CMP typically
sends one WebSphere MQ message to the broker for each request.
In a situation that requires lots of requests to be sent in quick succession, the use
of a batch has a significant effect on performance, reducing both time taken to
process the requests, and the memory used. For example, your application might
create a number of integration servers on a single broker. Each batch of requests is
sent in a single WebSphere MQ message, therefore reducing the processing that is
required for each method.
Batch mode does not provide transactional (commit and backout) capability; some
requests in a batch might succeed and others fail. If the broker processes a request
in a batch that fails, it continues to process the next request in the batch until it has
attempted all requests in the batch.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Configuring an environment for developing and running CMP applications on
page 72
Prepare the environment in which you want to run your CMP applications.
Connecting to a broker from a CMP application on page 79
Connect an application that uses the CMP to a broker, to send requests about its
status and its resources.
Related information:
IBM Integration API (CMP)
Procedure
v Loading an existing message flow into memory on page 111
v
v
v
v
v
v
v
110
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v
v
v
v
v
Procedure
The following example shows how to load a message flow that is in the mqsi
directory:
import java.io.File;
import java.io.IOException;
import com.ibm.broker.MessageBrokerAPIException;
Chapter 1. Administering brokers and broker resources
111
import com.ibm.broker.config.appdev.MessageFlow;
import com.ibm.broker.config.appdev.FlowRendererMSGFLOW;
public class LoadMessageFlow {
public static void main(String[] args) {
File msgFlow = new File("../mqsi/main.msgflow");
try {
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
} catch (IOException e) {
// Add your own code here
e.printStackTrace();
} catch (MessageBrokerAPIException e) {
// Add your own code here
e.printStackTrace();
}
}
}
Results
Result:
You can now refer to the instance of the MessageFlow object in your Java code.
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Saving a message flow file from memory on page 125
Use the IBM Integration API when developing message flow applications to save a
message flow from memory.
Renaming a node
Use the IBM Integration API when developing message flow applications to
rename a node.
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
Node mqinNode = mf1.getNodeByName("My Input Node");
mqinNode.setNodeName("New Input Node");
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications to add a
new node or subflow node to a message flow.
112
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v The following example shows you how to add a new built-in node:
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("INPUTQ");
mf1.addNode(mqinNode);
v The following example shows you how to add a new subflow node to a
message flow:
1. A new subflow node is created and assigned to object sfNode.
2. The subflow node name is set to My Sub Flow Node.
3. The subflow node is linked to the subflow message flow by using the
setSubFlow() method.
4. The new subflow node is added to the message flow held in object mf1.
The subflow can be stored in a .msgflow format:
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
File subFlow = new File("subflow.msgflow");
MessageFlow sub1 = FlowRendererMSGFLOW.read(subFlow);
113
to
to add
to add
to
114
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQOutputNode mqoutNode = new MQOutputNode();
mqoutNode.setLocation(300, 100);
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications to add a
new node or subflow node to a message flow.
Copying a node
Use the IBM Integration API when developing message flow applications to copy a
node or subflow node to a message flow.
Removing a node on page 116
Use the IBM Integration API when developing message flow applications to
remove a node from a message flow.
Renaming a message flow on page 123
Use the IBM Integration API when developing message flow applications to
rename message flows.
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
Copying a node
Use the IBM Integration API when developing message flow applications to copy a
node or subflow node to a message flow.
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("INPUTQ");
MQInputNode mqinNode1 = (MQInputNode) mqinNode.clone();
mqinNode1.setNodeName("Copy of My Input Node");
mf1.addNode(mqinNode1);
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Renaming a node on page 112
Use the IBM Integration API when developing message flow applications to
Chapter 1. Administering brokers and broker resources
115
rename a node.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications
new node or subflow node to a message flow.
Setting the position of a node on page 114
Use the IBM Integration API when developing message flow applications
position of a node on the canvas in the Application Development view.
Removing a node
Use the IBM Integration API when developing message flow applications
remove a node from a message flow.
Adding connections between nodes on page 117
Use the IBM Integration API when developing message flow applications
connections between nodes.
Adding and connecting user-defined nodes on page 118
Use the IBM Integration API when developing message flow applications
user-defined nodes and to connect user-defined nodes to other nodes.
to add a
to set the
to
to add
to add
Removing a node
Use the IBM Integration API when developing message flow applications to
remove a node from a message flow.
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
Node mqinNode = mf1.getNodeByName("My Input Node");
mf1.removeNode(mqinNode);
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications to add a
new node or subflow node to a message flow.
Removing connections between nodes on page 120
Use the IBM Integration API when developing message flow applications to
remove connections between nodes.
Related reference:
116
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v The following example shows you how to connect two built-in nodes:
1. A MQInput node and a Collector node are created.
2. The getInputTerminal() method is used to create a dynamic Input terminal
called NEWIN on the Collector node.
3. The Input terminal is connected to the Output terminal of the MQInput node
by using the connect() method of the message flow object mf1.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("INPUTQ");
CollectorNode colNode = new CollectorNode();
colNode.getInputTerminal("NEWIN");
mf1.connect(mqinNode.OUTPUT_TERMINAL_OUT, colNode.getInputTerminal("NEWIN"));
To use a static terminal on a node you must use the appropriate constant
defined for it in the IBM Integration API. These constants are listed in the IBM
Integration API reference, see IBM Integration API.
v The following example shows you how to connect a subflow node to a built-in
node. You must load the subflow message flow and link it to a subflow node.
You must use the getInputTerminal(), getInputTerminals(), getOutputTerminal()
or getOutputTerminals() method to access the terminal on the subflow node to
which you want to connect. The example code completes the following steps:
1. The main message flow, main.msgflow, and a Compute node in the main
message flow are loaded into memory.
2. The subflow message flow, subflow.msgflow, and the subflow node in the
main message flow are loaded into memory.
3. The setSubFlow() method of the subflow node is used to link the subflow
message flow sub1 to the subflow node sfNode.
117
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications to add a
new node or subflow node to a message flow.
Setting the position of a node on page 114
Use the IBM Integration API when developing message flow applications to set the
position of a node on the canvas in the Application Development view.
Adding and connecting user-defined nodes
Use the IBM Integration API when developing message flow applications to add
user-defined nodes and to connect user-defined nodes to other nodes.
Removing connections between nodes on page 120
Use the IBM Integration API when developing message flow applications to
remove connections between nodes.
Renaming a message flow on page 123
Use the IBM Integration API when developing message flow applications to
rename message flows.
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
118
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
terminal and makes it available in the message flow object that contains your
generic node. After you have used getInputTerminal() with a known terminal
name, this input terminal is returned if getInputTerminals() is used.
v To get an output terminal for a GenericNode, call getOutputTerminal() and pass
the terminal name that exists on the generic node. This method returns the
output terminal and makes it available in the message flow object that contains
your generic node. After you have used getOutputTerminal() with a known
terminal name, this output terminal is returned if getOutputTerminals() is used.
Example
The following example shows how you can add a user-defined node to a message
flow and connect it to a built-in node:
1. An MQInput node is created and added to the message flow.
2. A user-defined node is created by using the GenericNode class and is added to
the message flow object.
3. The static output terminal of the MQInput is assigned to the variable
outputTerminal.
4. The input terminal of the user-defined node is assigned to the variable
inputTerminal by using the getInputTerminal() method with the known terminal
name In.
5. The nodes are connected by using the connect() method.
6. The final section of code shows that the input node is now available for use in
the message flow, by using the getInputTerminals() method of the user-defined
node instance.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = new MQInputNode();
mqinNode.setNodeName("My Input Node");
mqinNode.setQueueName("IN");
mf1.addNode(mqinNode);
GenericNode myNode = new GenericNode("MyUserDefinedNode");
myNode.setNodeName("MyNode");
mf1.addNode(myNode);
OutputTerminal outputTerminal = mqinNode.OUTPUT_TERMINAL_OUT;
InputTerminal inputTerminal = myNode.getInputTerminal("In");
mf1.connect(outputTerminal, inputTerminal);
InputTerminal[] inputTerminals = myNode.getInputTerminals();
System.out.println("Input terminals on my node:");
for (int i = 0; i < inputTerminals.length; i++) {
InputTerminal inputTerminal = inputTerminals[i];
System.out.println(inputTerminal.getName());
}
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Renaming a node on page 112
Use the IBM Integration API when developing message flow applications to
rename a node.
119
applications to
applications to add
applications to
applications to create
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
MQInputNode mqinNode = (MQInputNode)mf1.getNodeByName("My Input Node");
MQOutputNode mqoutNode = (MQOutputNode)mf1.getNodeByName("My Output Node");
mf1.disconnect(mqinNode.OUTPUT_TERMINAL_OUT, mqoutNode.INPUT_TERMINAL_IN);
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications to add a
new node or subflow node to a message flow.
Adding and connecting user-defined nodes on page 118
Use the IBM Integration API when developing message flow applications to add
user-defined nodes and to connect user-defined nodes to other nodes.
120
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v The following example shows you how to create a UDP and add it to a message
flow:
1. A UDP called Property1 is created in parameter group Group1. The data type
of the UDP is defined as a string and the UDP is given the default value
Hello World!
2. The UDP is then added to the message flow by using the addFlowProperty()
method.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
UserDefinedProperty udp = new UserDefinedProperty("Group1", "Property1", UserDefinedProperty.Usage.MANDATORY, UserDefinedProperty.Type.STRING, "Hello World!");
mf1.addFlowProperty(udp);
v In the following example, the existing UDPs in a message flow are discovered
by using the getFlowProperties() method on the message flow. The setName()
method is then used to set the name of the first UDP to Property3:
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
Vector<FlowProperty> flowProperties = mf1.getFlowProperties();
flowProperties.get(0).setName("Property3");
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Copying a node on page 115
Use the IBM Integration API when developing message flow applications to copy a
node or subflow node to a message flow.
Removing a node on page 116
Use the IBM Integration API when developing message flow applications to
remove a node from a message flow.
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
121
Procedure
v The following example shows you how to create an ESQL module in the mqsi
schema. The module is then assigned to a new Compute node by using the
setComputeExpression() method:
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
ESQLModule module = new ESQLModule();
module.setBrokerSchema("mqsi");
module.setEsqlMain("MyESQLMain");
ComputeNode compNode = new ComputeNode();
compNode.setNodeName("My Compute Node");
compNode.setComputeExpression(module);
mf1.addNode(compNode);
v The following example shows you how to create an ESQL module in the default
schema. The setBrokerSchema() method is not required.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
ESQLModule module = new ESQLModule();
module.setEsqlMain("MyESQLMain");
ComputeNode compNode = new ComputeNode();
compNode.setNodeName("My Compute Node");
compNode.setComputeExpression(module);
mf1.addNode(compNode);
v The following example shows you how to discover an ESQL module from
within an ESQL file by using the getEsqlModules() method. You can then use
the ESQL module to set the compute expression on a Compute node by using
the setComputeExpression() method.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
File esql = new File("FileBatchProcessingSample_Branch.esql");
ESQLFile esqlFile = new ESQLFile(esql);
Vector<ESQLModule> esqlModules = esqlFile.getEsqlModules();
ComputeNode compNode = new ComputeNode();
compNode.setNodeName("My Compute Node");
compNode.setComputeExpression(esqlModules.get(0));
mf1.addNode(compNode);
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Loading an existing message flow into memory on page 111
Use the IBM Integration API when developing message flow applications to load a
message flow into memory. You can then access the message flow in your Java
122
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
code.
Renaming a node on page 112
Use the IBM Integration API when developing message flow applications
rename a node.
Adding a node and a subflow node on page 113
Use the IBM Integration API when developing message flow applications
new node or subflow node to a message flow.
Setting the position of a node on page 114
Use the IBM Integration API when developing message flow applications
position of a node on the canvas in the Application Development view.
Copying a node on page 115
Use the IBM Integration API when developing message flow applications
node or subflow node to a message flow.
Removing a node on page 116
Use the IBM Integration API when developing message flow applications
remove a node from a message flow.
Adding connections between nodes on page 117
Use the IBM Integration API when developing message flow applications
connections between nodes.
Adding and connecting user-defined nodes on page 118
Use the IBM Integration API when developing message flow applications
user-defined nodes and to connect user-defined nodes to other nodes.
Removing connections between nodes on page 120
Use the IBM Integration API when developing message flow applications
remove connections between nodes.
Creating or changing user-defined properties on page 121
Use the IBM Integration API when developing message flow applications
or change user-defined properties (UDPs).
Renaming a message flow
Use the IBM Integration API when developing message flow applications
rename message flows.
Updating filter tables on Route nodes on page 124
Use the IBM Integration API when developing message flow applications
update filter tables on Route nodes.
to
to add a
to set the
to copy a
to
to add
to add
to
to create
to
to
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
123
Example
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
mf1.setName(mf1.getName()+"Generated");
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Loading an existing message flow into memory on page 111
Use the IBM Integration API when developing message flow applications to load a
message flow into memory. You can then access the message flow in your Java
code.
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
Updating a row
The following example shows you how to update rows on the filter table
of a Route node.
1. The message flow, Route node, and filter table of the Route node are
loaded into memory.
2. The rows of the filter table are loaded into memory by using the
getRows() method.
124
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3. The filter pattern property of the first row of the filter table is set to
value2="456".
4. The routing output terminal property of the first row of the filter
table is set to NEWOUT2.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
RouteNode routeNode = (RouteNode)mf1.getNodeByName("My Route Node");
RouteNode.FilterTable filterTable = (RouteNode.FilterTable)routeNode.getFilterTable();
Vector<RouteNode.FilterTableRow> filterTableRows = filterTable.getRows();
filterTableRows.get(0).setFilterPattern("value2=\"456\"");
filterTableRows.get(0).setRoutingOutputTerminal("NEWOUT2");
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Loading an existing message flow into memory on page 111
Use the IBM Integration API when developing message flow applications to load a
message flow into memory. You can then access the message flow in your Java
code.
Related reference:
IBM Integration API
Use the IBM Integration API to write Java code to modify user-defined pattern
instances or to develop message flow applications.
Procedure
The following example shows how to save a message flow in the specified
directory by using the write() method. On Windows, if the message flow is part of
the mqsi schema, the message flow file is saved to C:\MB\mqsi\main.msgflow.
File msgFlow = new File("main.msgflow");
MessageFlow mf1 = FlowRendererMSGFLOW.read(msgFlow);
FlowRendererMSGFLOW.write(mf1,"C:\MB");
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Chapter 1. Administering brokers and broker resources
125
Procedure
v The following example shows how to start a connection manager:
ResourceManagerProxy rm = EG.getResourceManagerByName("TCPIP");
Properties prop1 = new Properties(); prop1.setProperty("port","1445");
rm.execute("start", prop1,"Server",null);
v The following example shows how to stop a connection manager. Stopping a
connection manager forcibly stops all connections, and no new connections are
made.
ResourceManagerProxy rm = EG.getResourceManagerByName("TCPIP");
Properties prop1 = new Properties(); prop1.setProperty("port","1445");
rm.execute("stop", prop1,"Server",null);
v The following example shows how to quiesce a connection manager. Quiescing
stops new connections from being made. You can set a timeout value for the
quiesce by using the quiesceTimeoutSec property. If the quiesce is not completed
before the value that is set on quiesceTimeoutSec, then the connections are
forcibly closed.
ResourceManagerProxy rm = EG.getResourceManagerByName("TCPIP");
Properties prop1 = new Properties(); prop1.setProperty("port","1445");
prop1.setProperty("quiesceTimeoutSec","30");
rm.execute("quiesce",
prop1,"Server",null);
Related concepts:
Connection management
TCP/IP connections are requested by the client connection manager and accepted
by the server connection manager.
Related tasks:
Examples of IBM Integration API code on page 110
Use the following examples of IBM Integration API code for common tasks to help
you write your own Java code to develop message flow applications.
Related reference:
IBM Integration API
Use the IBM Integration API (CMP) Java classes and methods to develop CMP
applications.
126
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Configure a web user interface server. For information on how to do this, see
Configuring the web user interface server on page 128.
2. Use the mqsiwebuseradmin command to create web user accounts for your web
users. For information on how to do this, see Managing web user accounts
on page 226.
3. Log on to the web user interface server through the web user interface. For
information on how to do this, see Accessing the web user interface on page
133.
4. You can now administer your broker resources through the web user interface.
Results
The web user interface is enabled by default for all new brokers when they are
created. However, you can disable and enable the web user interface at any time;
for more information, see Enabling and disabling the web user interface on page
131.
If broker administration security is enabled, you can restrict web users' access to
data and broker resources. For more information, see Controlling access to data
and resources in the web user interface on page 239.
Related concepts:
Role-based security on page 220
You can control access to broker resources by associating web users with roles.
127
Procedure
To configure a web user interface server, complete the following steps:
1. Configure the properties relating to the HTTP or HTTPS port to be used, and
enable the web user interface server, by using the IBM Integration Explorer or
the mqsichangeproperties command.
v If you are using the IBM Integration Explorer, complete the following steps:
128
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
129
acceptCount=
compressableMimeTypes=
compression=
connectionLinger=
connectionTimeout=
maxHttpHeaderSize=
maxKeepAliveRequests=
maxThreads=
minSpareThreads=
noCompressionUserAgents=
restrictedUserAgents=
socketBuffer=
tcpNoDelay=
enableLookups=false
c. Enable the web user interface server for the broker:
To enable the web user interface, and to use HTTP as the
communication protocol between the broker and the web user interface
server, run the following command on an IBM Integration Bus
command line, where brokerName is the name of your broker:
mqsichangeproperties brokerName
-b webadmin -o server -n enabled,enableSSL -v true,false
To enable the web user interface, and to use HTTPS as the protocol for
communication between the broker and the web user interface server,
run the following command:
mqsichangeproperties brokerName
-b webadmin -o server -n enabled,enableSSL -v true,true
For more information about the properties of the web user interface
server, see Parameter values for the webadmin component.
d. Confirm that the web user interface component is enabled by running the
mqsireportproperties command, as shown in the following example.
mqsireportproperties brokerName -b webadmin -o server -a
This command produces a response similar to this example:
server=
uuid=server
enabled=true
enableSSL=true
2. Optional: The time that is taken to load data in the web user interface can be
reduced by compressing the data. Compression is turned on by default for new
brokers. For migrated brokers, compression is turned off by default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b. Set the file types that are to be compressed, as shown in this example:
mqsichangeproperties brokerName -b webadmin -o HTTPConnector -n compressableMimeTypes
-v \"text/html,text/css,application/javascript,image/gif,image/png,application/json\"
130
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
|
|
|
|
|
|
If you are using SSL, change the properties for HTTPSConnector rather than
HTTPConnector.
3. To ensure that the changes take effect, restart the broker. For more information,
see Starting and stopping a broker on page 19.
4. Create a web user account by using the mqsiwebuseradmin command. For more
information, see Managing web user accounts on page 226.
What to do next
When you have configured a web user interface server, you can log on to the web
user interface by following the steps described in Accessing the web user
interface on page 133.
Related concepts:
Role-based security on page 220
You can control access to broker resources by associating web users with roles.
Related tasks:
Viewing recorded data on page 616
You can view a list of recorded messages, or details of individual messages.
Accessing the web user interface on page 133
You can access broker resources by logging on to the web user interface.
Managing web user accounts on page 226
You can control a web user's access to broker resources by associating the web user
ID with a role, which has security permissions assigned to it.
Related reference:
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
Parameter values for the webadmin component
Select the objects and properties associated with the webadmin component that
you want to change.
mqsiwebuseradmin command
Use the mqsiwebuseradmin command to administer user accounts for the web user
interface.
131
You can change this property only when the broker is running, and the change
takes effect when the broker is restarted. Alternatively, you can use the IBM
Integration Explorer to enable or disable the web user interface, and to change the
port number to which it is assigned.
For brokers that were created in WebSphere Message Broker Version 8.0.0.0, the
web user interface is enabled in later versions only if you enabled it in Version
8.0.0.0. If you created brokers in Version 8.0.0.0 and did not enable the web user
interface, it remains disabled for those brokers in subsequent versions. The web
user interface is not enabled automatically for brokers that are migrated from
WebSphere Message Broker Version 6.1 or Version 7 to later versions of the
product.
Related concepts:
Role-based security on page 220
You can control access to broker resources by associating web users with roles.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Managing web user accounts on page 226
You can control a web user's access to broker resources by associating the web user
ID with a role, which has security permissions assigned to it.
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
132
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
133
Procedure
1. Use the following URL:
protocol://serverAddress:port/
where:
v protocol has the value http or https, depending on whether you are using an
HTTP or an HTTPS connector object
v serverAddress identifies the web user interface server address specified for the
HTTP or HTTPS connector object; for example 127.0.0.1
v port identifies the port that you specified for the HTTP or HTTPS connector
object in the preceding steps (by default the port is 4414)
For example:
http://127.0.0.1:4415
2. Enter your user ID and password and then click Log in to log on to the system.
Users have permissions granted to them according to their role, so
administrators and web users can have different access to broker resources
based on their role. The web interface is tailored to your role, so you see only
the options that are available to you based on the permissions that have been
assigned to your role.
For more information about roles, see Role-based security on page 220. For
information about creating user accounts, see Managing web user accounts
on page 226.
If administration security is not enabled, you can access the web user interface
as the default user without logging on, but you still have access to all data and
broker resources.
3. A window opens, in which you can view and administer your broker resources.
The Navigator view is displayed on the left side of the window (unless it has
been hidden), and the content that is displayed on the right side of the window
varies according to the resource that has been selected in the Navigator view.
Related concepts:
Role-based security on page 220
You can control access to broker resources by associating web users with roles.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Managing web user accounts on page 226
You can control a web user's access to broker resources by associating the web user
ID with a role, which has security permissions assigned to it.
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
Application Server. View and replay the data.
Enabling security for record and replay on page 598
You can restrict the users who can view and replay data for a broker by enabling
security.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
Administering brokers using the web user interface on page 127
You can use the IBM Integration Bus web user interface to administer broker
134
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
resources.
Configuring the web user interface server on page 128
To enable access to broker resources through the web user interface, configure the
IBM Integration Bus web user interface server.
Enabling and disabling the web user interface on page 131
You can enable and disable the web user interface by using the
mqsichangeproperties command.
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
135
Procedure
1. If your WebSphere Application Server server is not running, start it by running
the following command from the install_root\bin or install_root/bin
directory:
v On Windows:
startServer server1 -profileName profile
v On other operating systems:
startServer.sh server1 -profileName profileName
v install_root is the WebSphere Application Server installation root
v server1 is the name of your WebSphere Application Server server
v profile is the name of your profile
2. Open the WebSphere Application Server administrative console.
136
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For example, to open the administrative console on Windows, click Start > All
Programs > IBM WebSphere > IBM WebSphere Application Server - Version
> Profiles > profile > Administrative console
3. To see the collection pages for IBM Integration Bus, click IBM Integration Bus
in the list of collections.
4. To see the Integration nodes page, click IBM Integration Bus > Integration
nodes.
What to do next
You are now ready to create a connection to an existing integration node. Use the
instructions on the page and in the related Help topic. To access the Help topic,
click Help (labeled with a question mark) on the Integration nodes page.
Related tasks:
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
137
WebSphere MQ connections
The number of WebSphere MQ connections a broker requires to its queue manager
depends on the actions of the message flows that access the WebSphere MQ
resource.
Related information:
DB2 V9.1 product documentation (distributed systems)
DB2 V9.5 product documentation (distributed systems)
DB2 Information Center (z/OS)
Quiescing a database
The broker and database exhibit specific behaviors when you quiesce the database.
If you access databases from one or more message flows, your database
administrator might occasionally want to issue the quiesce instruction on a
database. This action is a function of the database, not of the broker.
The following three assumptions are made for the database that you are quiescing:
v The database can be quiesced (not all databases support this function).
v New connections to the database are blocked by the database when it is
quiescing.
v Message flows that access the database eventually become idle.
The following list shows the behavior that is expected while a database is
quiescing:
v Run the command that quiesces the database. When this command starts, the
connections that are in use remain in use, but no new connections to the
database are allowed.
v Messages that are being processed by message flows, which use existing
connections to the database, continue to use their connections until the
connections become idle. Therefore if messages continue to be received by the
message flow, it might be a long time before the quiesce occurs. To ensure that
messages are no longer processed, stop the message flow. Stopping the message
flow stops messages being processed, and releases the database connections that
the flow was using. This action ensures that the database connections that the
flow holds become idle.
v Database connections for the message flow become idle. This situation causes
the broker to release the connections to the databases that the message flow is
138
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
using. When all connections to the database from the broker, and from any other
applications that are using the database, are released, the database can complete
its quiesce function.
For more information, see Database connections.
Related concepts:
Database connections
Databases contain business data that is written and accessed by deployed message
flows. You must create connections from the broker to the database by using
ODBC or JDBC.
Related tasks:
Enabling ODBC connections to the databases
Set up the resources and environment that the broker requires for Open Database
Connectivity (ODBC) connections to databases on distributed systems.
Enabling JDBC connections to the databases
Configure connections to a database through a JDBCProvider configurable service.
Related reference:
Supported databases
You can optionally configure databases to contain data that is accessed by your
message flows. Databases from IBM and other suppliers are supported at specific
versions on supported operating systems.
Listing database connections that the broker holds on page 137
The broker does not provide an interface that you can use to list the connections
that it has to a database. You must use the facilities of the database suppliers to list
connections.
WebSphere MQ connections
The number of WebSphere MQ connections a broker requires to its queue manager
depends on the actions of the message flows that access the WebSphere MQ
resource.
139
v Pooled connections:
When a message flow instance requires a JDBC connection, IBM Integration
Bus assigns an unused connection from the pool.
If all pooled JDBC connections are being used, and the maximum pool size
has not been reached, IBM Integration Bus creates a new pooled JDBC
connection. The maximum pool size is specified in the maxConnectionPoolSize
property of the JDBCProviders configurable service.
Each pooled JDBC connection remains associated with a message flow
instance only for the processing of one input message.
When a message flow instance completes the processing of an input message,
the association with a JDBC connection is removed, and the JDBC connection
is returned to the pool.
Each pooled JDBC connection that is idle for 15 minutes is closed, and is
removed from the pool.
Pooled JDBC connections are not applicable to the DatabaseRetrieve and
DatabaseRoute nodes.
Using a JDBC connection pool enable you to scale database access independently
of the number of message flow threads.
You can create a JDBC connection pool by setting the maxConnectionPoolSize
property of the JDBCProviders configurable service to a non-zero integer value.
The maxConnectionPoolSize property acts at the integration server level to specify
the maximum number of JDBC connection threads that can be used. A value of
zero defaults to the standard WebSphere Message Broker Version 8.0 behavior,
where one JDBC connection is created for each message flow thread.
All message flows within an integration server that use the same JDBCProviders
configurable service also share a connection pool. You can monitor the behavior of
a JDBC connection pool by using broker resource statistics
The maxConnectionPoolSize property is applicable to JDBC connections obtained
using the getJDBCType4Connection() API of the JavaCompute node, and to
database operations in graphical data maps that are called by the Mapping node.
Note: The maxConnectionPoolSize property does not apply to the JDBC
connections used by the DatabaseRetrieve or DatabaseRoute nodes.
Related tasks:
Viewing resource statistics data in the IBM Integration Explorer on page 537
Use the IBM Integration Explorer to view resource statistics data for your
integration servers in the Broker Resources and Broker Resources Graph views.
Viewing the status of resource statistics collection in the IBM Integration
Explorer on page 541
Use the IBM Integration Explorer to view the status of resource statistics collection
in the Broker Resources view.
Managing resources used by brokers on page 137
Manage the resources used by brokers.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
140
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
141
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
142
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
143
Figure 4. Graphic showing the placement of the global cache in a multi-broker environment.
When this integration is deployed to multiple brokers for workload balancing, the
reply will not necessarily return through the same broker as the original request.
144
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Figure 5. Graphic showing the placement of the global cache in a multi-broker environment.
With a global cache, each broker can handle replies, even when the request was
processed by another broker.
145
Figure 6. Graphic showing the placement of the global cache in a multi-broker environment.
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Global cache scenario: Caching static data on page 147
You can use a global cache to store static data. The use of a global cache facilitates
horizontal scaling in situations where a cache is used to minimize network
interactions to a back end system. With a global cache, you can increase the
number of clients while maintaining a predictable response time for each client.
Related tasks:
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Managing data caching on page 141
Store data that you want to reuse by using the embedded global cache or an
external WebSphere eXtreme Scale grid.
Accessing the global cache with a JavaCompute node
You can use a JavaCompute node to interact with a map in a global cache or an
external WebSphere eXtreme Scale grid.
Related reference:
146
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Figure 7. Graphic showing the placement of the global cache in a multiple client scenario.
IBM Integration Bus can provide short response times by caching results in
memory (for example, ESQL shared variables).
147
Figure 8. Graphic showing the placement of the global cache in a multiple client scenario.
However, this configuration does not scale well horizontally. When the number of
clients increases, the number of brokers and integration servers can be increased to
accommodate the clients, but each broker has to maintain a separate in-memory
cache.
Figure 9. Graphic showing the placement of the global cache in a multiple client scenario.
With a global cache, the number of clients can increase while a predictable
response time is maintained for each client.
148
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Figure 10. Graphic showing the placement of the global cache in a multiple client scenario.
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Global cache scenario: Storing state for integrations on page 144
You can use a global cache to store state for integrations. With a global cache, each
broker can handle replies, even when the request was processed by another broker.
Related tasks:
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Managing data caching on page 141
Store data that you want to reuse by using the embedded global cache or an
external WebSphere eXtreme Scale grid.
Accessing the global cache with a JavaCompute node
You can use a JavaCompute node to interact with a map in a global cache or an
external WebSphere eXtreme Scale grid.
Related reference:
Parameter values for the cachemanager component
Select the objects and properties that are associated with the global cache that you
want to change.
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
Chapter 1. Administering brokers and broker resources
149
150
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When you use the default topology, the cache properties for individual integration
servers are read only; an error is issued if you try to change them. When you use
the default topology, you can specify the range of ports that the cache manager
uses, and the listener host that is used by the cache components. If your computer
has more than one host name, setting the listener host ensures that the cache
components use the correct host name. To set specific properties for the integration
server, you must first change the cache policy property to none. The integration
server properties that were set most recently by the broker-level policy are retained
as a starting point for customization.
Multi-broker cache topologies
To share data across brokers, or enhance the availability of the cache, you must
create a policy file. The policy file is an XML file that the cache manager uses to
connect the caches of multiple brokers. Set the cache policy to the fully qualified
name of the policy file. Use the policy file to specify the names of the brokers that
will share the cache data, the number of catalog servers in each broker, and the
port range and listener host for each broker to use. You can also use a policy file to
configure a multi-instance broker to host container servers. Some sample policy
files are provided in the installation directory. You can copy and customize these
policy files for your own system. The sample XML files describe the following
configurations:
v A single broker that hosts two catalog servers; if one catalog server fails, the
global cache switches to the other one.
v Two brokers that share a catalog server that is hosted by the first broker.
v Two brokers that each host a catalog server; if one catalog server fails, the global
cache switches to the catalog server in the other broker.
v Three brokers in a high availability scenario. Two brokers each host a catalog
server, and a multi-instance broker hosts two container servers. If the active
instance of the multi-instance broker fails, the global cache switches to the
container servers in the standby instance.
For more information, see Configuring the global cache for multiple brokers on
page 170 and Configuring the global cache for multi-instance brokers on page
173.
Customizing the embedded topology
You can set properties explicitly for each integration server. For example, you
might want to specify particular integration servers to host the catalog and
container servers so that you can tune broker performance. When the cache policy
is set to none, the cache manager in each integration server uses the values that
you set. The integration server properties that were set most recently by the
broker-level policy are retained as a starting point for customization.
If you stop the integration server that contains the catalog server, the cache
becomes unavailable and the data in the cache is lost. Therefore, if you switch off
the default topology, ensure that you place the catalog server appropriately. If you
restart the integration server that hosts the catalog server, it can no longer
communicate with the container servers in other integration servers. Although
these container servers are still running, they are no longer part of the cache, and
your data is lost. Therefore, you must also restart the integration servers that host
the container servers. Alternatively, restart the broker to reset all cache
components.
151
When you use multiple catalog servers, you can improve performance by taking
the following steps:
v Provide other integration servers that host container servers only, rather than
having only integration servers that host both catalog and container servers.
v Start and stop integration servers in sequence, rather than using the mqsistart
or mqsistop commands to start or stop all integration servers at once. For
example, start the integration servers that host catalog servers before you start
the integration servers that host only container servers.
When you use a global cache that spans multiple brokers, ensure that all
WebSphere eXtreme Scale servers that are clustered in one embedded grid use the
same domain name. Only servers with the same domain name can participate in
the same grid. WebSphere eXtreme Scale clients use the domain name to identify
and distinguish between embedded grids. If you do not specify a domain name in
the integration server or broker-level policy file, the broker creates a name that is
based on the server names of the catalog servers.
By default, each server starts with a domain name that is derived by the broker. In
previous versions of IBM Integration Bus, the domain name for all servers in all
embedded caches was an empty string. Servers in different domains cannot
collaborate in the same grid. Therefore, for a cache that spans multiple brokers,
migrate these brokers at the same time.
You can configure the global cache by using IBM Integration Bus commands, IBM
Integration Explorer, or the IBM Integration API. For more information, see
Configuring the embedded global cache on page 162.
You can disable all cache components in the broker by setting the cache policy
property to disabled. The cache policy is set to disabled by default.
Interaction with the global cache
You can use JavaCompute nodes to store and retrieve data in a map in the global
cache. When you get a global map from an external grid, the getGlobalMap
method makes a connection to the grid if one does not exist. You can use your
own Java classes with the global cache. To use your own Java classes, put the JAR
files that contain the Java classes in the shared classes directory at system level,
broker level, or integration server level. You must make the Java classes available
to all brokers and integration servers that participate in the global cache. For more
information, see Accessing the global cache with a JavaCompute node.
When you get an MbGlobalMap object, you can also specify how long the data
remains in the global cache before it is removed automatically. This time is known
as the time to live and is counted from when that map entry is last updated. The
value applies to all cache entries that are created by using that MbGlobalMap
object in that instance of the message flow. Data that is already in the map that
you specify, or that is created by another MbGlobalMap object, is not affected by
the time to live value. You can create multiple MbGlobalMap objects in different
flows, integration servers, or brokers, all resolving to the same map in the global
cache, but with different time to live values.
By default, the time to live is set to zero so that the data is never removed. To set a
specific time to live, create a session policy, which you can reference from the
MbGlobalMap object. For detailed instructions, see Removing data from the global
cache.
152
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related concepts:
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
WebSphere eXtreme Scale grids
Use one or more external WebSphere eXtreme Scale grids to store data that you
want to reuse.
Global cache scenario: Storing state for integrations on page 144
You can use a global cache to store state for integrations. With a global cache, each
broker can handle replies, even when the request was processed by another broker.
Global cache scenario: Caching static data on page 147
You can use a global cache to store static data. The use of a global cache facilitates
horizontal scaling in situations where a cache is used to minimize network
interactions to a back end system. With a global cache, you can increase the
number of clients while maintaining a predictable response time for each client.
Related tasks:
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Managing data caching on page 141
Store data that you want to reuse by using the embedded global cache or an
external WebSphere eXtreme Scale grid.
Connecting to a WebSphere eXtreme Scale grid on page 179
You can store data in a WebSphere eXtreme Scale grid for use by other message
flows.
Accessing the global cache with a JavaCompute node
You can use a JavaCompute node to interact with a map in a global cache or an
external WebSphere eXtreme Scale grid.
Related reference:
Parameter values for the cachemanager component
Select the objects and properties that are associated with the global cache that you
want to change.
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
WebSphere eXtreme Scale grids:
Use one or more external WebSphere eXtreme Scale grids to store data that you
want to reuse.
WebSphere eXtreme Scale provides a scalable, in-memory data grid. The data grid
dynamically caches, partitions, replicates, and manages data across multiple
servers. The catalog servers and container servers for the IBM Integration Bus
global cache collaborate to act as a WebSphere eXtreme Scale grid. For more
information about the grid that is embedded in the broker, see Embedded global
cache on page 150.
153
In addition to the grid that is available (as the embedded global cache) within IBM
Integration Bus, you can integrate with WebSphere eXtreme Scale grids that are
running elsewhere. You can work with multiple external grids, and the embedded
grid, at the same time. For a diagram that shows how IBM Integration Bus
message flows interact with an external WebSphere eXtreme Scale grid, and for
definitions of the terms that are associated with a grid, see Data caching
terminology on page 155. For more information about grids, see WebSphere
eXtreme Scale product documentation.
You might have an existing WebSphere eXtreme Scale environment that uses a
topology such as one of the following examples:
v A DataPower XC10 device
v Embedded WebSphere eXtreme Scale servers in WebSphere Application Server
network deployment installations
v A stand-alone WebSphere eXtreme Scale software grid
When you are connecting to an external grid, IBM Integration Bus hosts the
WebSphere eXtreme Scale client, but the cache is hosted on an external grid.
Therefore, a separate WebSphere eXtreme Scale installation or appliance is
required, such as a DataPower XC10 device. An installation or appliance can host
more than one grid.
To connect to an external grid, you need the following information:
v The name of the grid
v The host name and port of each catalog server for the grid
v Optional: the object grid file that can be used to override WebSphere eXtreme
Scale properties
By using a configurable service to specify the parameters, you can connect to an
external WebSphere eXtreme Scale grid. IBM Integration Bus message flows can
then access and modify data that is stored in the external grid. If you are
connecting to a secure grid, you can create a security identity by using the
mqsisetdbparms command. To connect to an external grid, follow the instructions in
Connecting to a WebSphere eXtreme Scale grid on page 179.
You can enable SSL for client connections to external WebSphere eXtreme Scale
grids by setting up a public key infrastructure, then enabling SSL for an integration
server. For more details, see Enabling SSL for external WebSphere eXtreme Scale
grids on page 181.
You can use JavaCompute nodes to store and retrieve data in a map in the external
grid. When you get a global map from an external grid, the getGlobalMap method
makes a connection to the grid if one does not exist. For instructions, see Accessing
the global cache with a JavaCompute node.
You can monitor the external grid by viewing the activity log and resource
statistics. For more information, see Monitoring the global cache on page 183.
To enable new function that is available in fix packs, you use the -f parameter on
the mqsichangebroker command. Running this command also enables the
specification of domain names. In previous versions of IBM Integration Bus, the
domain name for all WebSphere eXtreme Scale servers in all embedded caches was
an empty string. Servers in different domains cannot collaborate in the same grid.
Therefore, for a cache that spans more than one broker, you must enable the new
capability for these brokers at the same time.
Related concepts:
154
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
155
cache, but message flows in all six integration servers can use the cache.
Broker
Execution Group 1
Execution Group 3
Message Flows
Message Flows
Execution Group 5
Message Flows
Catalog Server
Container
Container
Global Cache
Container
Message Flows
Execution Group 2
Container
Message Flows
Execution Group 4
Message Flows
Execution Group 6
Figure 11. Diagram showing how integration server 1 hosts a catalog server and a container server, and integration
servers 2, 3, and 4 host container servers only. Integration servers 5 and 6 do not host any cache components, but
their message flows can still communicate with the cache.
156
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Broker 2
Broker 1
Execution Group 1
Execution Group 1
Message Flows
Execution Group 3
Message Flows
Catalog Server
Catalog Server
Container
Container
Execution Group 5
Message Flows
Message Flows
Container
Global Cache
Container
Container
Message Flows
Execution Group 2
Container
Message Flows
Execution Group 2
XML
Message Flows
Execution Group 4
policy_two_brokers_ha.xml
XML Document
2KB
Message Flows
Execution Group 6
Figure 12. Diagram showing two brokers that are participating in an embedded cache. Integration server 1 of broker 1
contains a catalog server and a container server. Integration server 1 of broker 2 also contains a catalog server and
container server. Integration servers 2, 3, and 4 of broker 1 contain container server. Integration server 2 of broker 2
also contains a container server.
The following diagram shows how IBM Integration Bus can connect to both an
embedded cache and an external WebSphere eXtreme Scale grid. A configurable
service is used to connect to the external grid.
157
Remote Grid
Configurable service
Broker
Execution Group 1
Execution Group 3
Message Flows
Message Flows
Catalog Server
Container
Container
Global Cache
Container
Message Flows
Execution Group 2
Container
Message Flows
Execution Group 4
Figure 13. Diagram showing how IBM Integration Bus can connect to an embedded cache and a WebSphere eXtreme
Scale grid at the same time. Integration server 1 in the broker contains a catalog server and a container server.
Integration servers 2, 3, and 4 each host a container server. Double-ended arrows link the message flows in each
integration server to the embedded cache and to a remote WebSphere eXtreme Scale grid. Between the message
flows and remote grid is a box that represents the configurable service that is used to connect to the external grid.
158
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
listener host for the default topology. The broker sets a range of ports to
use, but you can specify a particular range of ports by using the
cachePortRange parameter. You can use the listenerHost parameter to
specify the listener host that is used by the cache components. If your
computer has more than one host name, setting the listener host ensures
that the cache components use the correct host name.
If you set the cache policy to none, you must set the integration server
properties explicitly. The properties that were set most recently by the
broker-level policy are used as a starting point. Therefore, if you set the
cache policy to default first, then switch to none, the default topology
properties are retained.
You can configure the global cache to span multiple brokers by setting the
cache policy to the fully qualified name of an XML policy file. This policy
file lists the brokers that share the cache, and for each broker specifies the
listener host, port range, and the number of catalog servers hosted. You
can use the policy file to set up a single broker that hosts two catalog
servers. If one catalog server is stopped, the broker switches to the other
catalog server, ensuring that no cache data is lost. You can also use the
policy file to configure a multi-instance broker to host more than one
container server. If the active instance of the multi-instance broker fails, the
global cache switches to the container server in the standby instance.
If you set the cache policy to disabled, all cache components in the broker
are disabled. The disabled policy is the default setting.
For more information, see Configuring the embedded global cache on
page 162 and Parameter values for the cachemanager component.
Cache manager
The cache manager is the integration server resource that manages the
cache components that are embedded in that integration server.
In the default topology, one integration server in the broker hosts a catalog
server, and up to three other integration servers in that broker host
container servers. All integration servers can communicate with the global
cache, regardless of whether they are hosting catalog servers, container
servers, or neither. Each integration server contains a cache manager, which
manages the cache components that are embedded in that integration
server. When you turn off the default topology, configure the integration
servers by setting the parameter values for the cachemanager component.
For more information, see Configuring the embedded global cache on
page 162 and Parameter values for the cachemanager component.
Container servers
A container server is a component that is embedded in the integration
server that holds a subset of the cache data. Between them, all container
servers in the global cache host all of the cache data at least once. If more
than one container exists, the default cache policy ensures that all data is
replicated at least once. In this way, the global cache can cope with the loss
of container servers without losing data.
You can host more than one container server in a multi-instance broker. If
the active instance of the multi-instance broker fails, the global cache
switches to the container server in the standby instance.
Catalog servers
The catalog server controls placement of data and monitors the health of
containers. You must have at least one catalog server in your global cache.
Chapter 1. Administering brokers and broker resources
159
To avoid losing cache data when a catalog server is lost, use a policy file to
specify more than one catalog server for a broker. For example, if you
specify two catalog servers for a single broker, if one catalog server fails,
the broker switches to the other catalog server. If the cache is shared by
two brokers, each of which hosts a catalog server, if one catalog server
fails, the brokers switch to the remaining catalog server. Having more than
one catalog server can affect startup time until the cache is available. If you
have more than one catalog server, you must start at least two of them for
the cache to be available. When you configure a cache across multiple
brokers with multiple catalog servers, if you need to start one broker
before the others then you can configure this broker to host two catalog
servers. You cannot host catalog servers in a multi-instance broker.
|
|
|
|
|
|
When you are using multiple catalog servers, you can improve
performance by taking the following steps:
v Provide other integration servers that host container servers only, rather
than having only integration servers that host both catalog and container
servers.
v Start and stop integration servers in sequence, rather than using the
mqsistart or mqsistop commands to start or stop all integration servers
at once. For example, start the integration servers that host catalog
servers before you start the integration servers that host only container
servers.
Domain name
When you are using a global cache that spans multiple brokers, ensure that
all WebSphere eXtreme Scale servers that are clustered in one embedded
grid use the same domain name. Only servers with the same domain name
can participate in the same grid. WebSphere eXtreme Scale clients use the
domain name to identify and distinguish between embedded grids. If you
do not specify a domain name in the integration server or broker-level
policy file, the broker creates a name that is based on the server names of
the catalog servers.
By default, each server starts with a domain name that is derived by the
broker. In previous versions of IBM Integration Bus, the domain name for
all WebSphere eXtreme Scale servers in all embedded caches was an empty
string. Servers in different domains cannot collaborate in the same grid.
Therefore, for a cache that spans more than one broker, migrate those
brokers at the same time.
Grids WebSphere eXtreme Scale provides a scalable, in-memory data grid. The
data grid dynamically caches, partitions, replicates, and manages data
across multiple servers. The catalog servers and container servers for the
IBM Integration Bus global cache collaborate to act as a WebSphere
eXtreme Scale grid. For more information about grids, see WebSphere
eXtreme Scale product documentation.
Maps
Data is stored in maps. A map is a data structure that maps keys to values.
One map is the default map, but the global cache can have several maps.
The cache uses WebSphere eXtreme Scale dynamic maps. Any map name is
allowed, apart from names that begin with SYSTEM.BROKER, which is
reserved for use by the broker. The default map is named
SYSTEM.BROKER.DEFAULTMAP; you can use or clear this map.
ObjectGrid file
An ObjectGrid XML file is used to configure the WebSphere eXtreme Scale
client. You can use this file to override WebSphere eXtreme Scale
160
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
161
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
mqsicacheadmin command
Use the mqsicacheadmin command to provide information about the global cache
and complete basic administration.
Global cache Activity log
The global cache activity log provides a high-level overview of how IBM
Integration Bus interacts with the global cache or external grid so that you can
understand what your message flows are doing.
Resource statistics data: global cache
Learn about the data that is returned for the GlobalCache resource type when you
activate resource statistics collection.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
162
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
servers. If one catalog server is lost, the broker switches to the other catalog server,
ensuring that no cache data is lost. You can also use the policy file to configure a
multi-instance broker to host more than one container server. If the active instance
of the multi-instance broker fails, the global cache switches to the container server
in the standby instance.
To disable all cache components in the broker, set the cache policy property to
disabled. Integration server properties are removed and cannot be changed. When
the cache is enabled, the memory usage of integration servers that host cache
components is larger. If this memory usage is an issue, and you do not need to use
the global cache, set the cache policy property to disabled.
If you stop the integration server that contains the catalog server, the cache
becomes unavailable. Therefore, if you switch off the default topology, ensure that
you place the catalog server appropriately. If you restart the integration server that
hosts the catalog server, it can no longer communicate with the container servers in
other integration servers. Although these container servers are still running, they
are no longer part of the cache, and your data is lost. Therefore, you must also
restart the integration servers that host the container servers. Alternatively, restart
the broker to reset all cache components.
You can configure the properties of the global cache in the following ways:
v By using IBM Integration Bus commands; see Configuring the embedded global
cache by using commands on page 164.
v By using the IBM Integration Explorer; see Configuring the embedded global
cache by using IBM Integration Explorer on page 167.
v By using a policy file; see Configuring the global cache for multiple brokers on
page 170 and Configuring the global cache for multi-instance brokers on page
173.
v By using the IBM Integration API.
The cache manager properties are documented in the Javadoc for the IBM
Integration API (see IBM Integration API.) You can also access the Javadoc for
the IBM Integration API through the Start menu at Start > All Programs > IBM
Integration Bus 9.0.0.0 > IBM Integration Java APIs > IBM Integration API
Documentation.
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Global cache scenario: Storing state for integrations on page 144
You can use a global cache to store state for integrations. With a global cache, each
broker can handle replies, even when the request was processed by another broker.
Global cache scenario: Caching static data on page 147
You can use a global cache to store static data. The use of a global cache facilitates
horizontal scaling in situations where a cache is used to minimize network
interactions to a back end system. With a global cache, you can increase the
number of clients while maintaining a predictable response time for each client.
Related tasks:
163
164
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Broker properties:
Procedure
v To specify a policy for the cache manager to use, set the -b (cachePolicy)
parameter on the mqsicreatebroker or mqsichangebroker command.
The cachePolicy parameter specifies the policy to use for the cache manager.
You can set this parameter to default, disabled, none, or the fully qualified
name of an XML policy file.
If you set this property to default, the default global cache topology is used.
The following example shows how to enable the default cache topology:
mqsichangebroker brokerName -b default
If you set this property to disabled, the global cache components in the
broker are disabled. The cache is disabled by default.
If you set this parameter to none, you must set the integration server
properties explicitly.
If you specify the fully qualified name of a policy file, the brokers listed in
the policy file are configured to share the data in the global cache. The path
name must be absolute, not relative. The following example shows how to
use the mqsichangebroker command to set the name of a policy file:
mqsichangebroker brokerName -b c:\filepath\policy.xml
For more information, see Configuring the global cache for multiple brokers
on page 170.
You must stop the broker before you run the mqsichangebroker command.
Changes take effect when you restart the broker.
v To specify a port range for the cache manager to use, set the -r (cachePortRange)
parameter on the mqsicreatebroker or mqsichangebroker command.
The cachePortRange parameter specifies a range of ports that the cache manager
can use. Set this parameter to generate or to a specific range of ports.
If you specify a range of ports, the value of this parameter must be in the
format xxxx-yyyy, and the range must contain at least 20 ports.
If you specify generate, the broker generates a range of ports that are not
being used by another broker on that computer. The broker chooses a range
that starts from 2800. If, for example, another broker is using ports 2800 to
2819, the broker generates a range from 2820 to 2839.
You must stop the broker before you run the mqsichangebroker command.
Changes take effect when you restart the broker.
Use of these parameters is shown in the following example.
mqsichangebroker broker_name -b default -r 2809-2825
v You can also use the mqsichangeproperties command to change broker
properties while the broker is running, although you do have to restart the
broker for the changes to take effect. To set the policy, port range, and listener
host for the broker, set the -b (componentName) parameter to cachemanager, and
use the -n and -v parameters to set the relevant properties, as shown in the
following example:
mqsichangeproperties broker_name -b cachemanager -o CacheManager -n policy,portRange,listenerHost -v default,generate,host_name
v To report properties for the cache manager, set the -b parameter on the
mqsireportproperties command to cachemanager, as shown in the following
example.
mqsireportproperties broker_name -b cachemanager -o CacheManager -r
Integration server properties:
165
v To provide a specific domain name for the WebSphere eXtreme Scale servers in
an integration server, set the domainName property, as shown in the following
example. Only servers with the same domain name can participate in the same
embedded grid. Therefore, ensure that all servers that participate in the same
embedded grid use the same domain name. If you do not set a specific domain
name, the broker creates a domain name that is based on the server names of
the catalog servers.
mqsichangeproperties broker_name -e execution_group_1 -o ComIbmCacheManager -n domainName -v myDomain
For a list of cache manager properties that you can set for an integration server,
see Parameter values for the cachemanager component.
v To specify a list of listener hosts when using multi-instance brokers, enclose the
comma-separated list with a pair of backslash characters and quotation marks
(\"):
mqsichangeproperties broker_name -e execution_group_2 -o ComIbmCacheManager -n
listenerHost -v \"host1,host2\"
For more information about configuring the global cache for multi-instance
brokers, see Configuring the global cache for multi-instance brokers on page
173.
166
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v To report cache manager properties for the integration server, set the -o
parameter on the mqsireportproperties command to ComIbmCacheManager,
and specify the integration server name, as shown in the following example.
mqsireportproperties broker_name -e execution_group_name -o ComIbmCacheManager -r
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Global cache scenario: Storing state for integrations on page 144
You can use a global cache to store state for integrations. With a global cache, each
broker can handle replies, even when the request was processed by another broker.
Global cache scenario: Caching static data on page 147
You can use a global cache to store static data. The use of a global cache facilitates
horizontal scaling in situations where a cache is used to minimize network
interactions to a back end system. With a global cache, you can increase the
number of clients while maintaining a predictable response time for each client.
Related tasks:
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Managing data caching on page 141
Store data that you want to reuse by using the embedded global cache or an
external WebSphere eXtreme Scale grid.
Accessing the global cache with a JavaCompute node
You can use a JavaCompute node to interact with a map in a global cache or an
external WebSphere eXtreme Scale grid.
Related reference:
Parameter values for the cachemanager component
Select the objects and properties that are associated with the global cache that you
want to change.
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
Configuring the embedded global cache by using IBM Integration Explorer:
You can set cache manager properties at integration node (broker) level and
integration server level by using IBM Integration Explorer.
Before you begin
Before you start:
For more information about the default global cache topology, see Data caching
overview on page 142.
Chapter 1. Administering brokers and broker resources
167
168
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
169
170
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For specific instructions to configure the global cache for multi-instance brokers,
see Configuring the global cache for multi-instance brokers on page 173.
|
|
|
|
|
|
|
|
Two of the sample policies configure the cache to contain two catalog servers. This
configuration means that if one of the catalog servers is stopped, the other catalog
server is used, and no cache data is lost. However, having more than one catalog
server can affect startup time after the broker is started, until the cache is available.
If you have more than one catalog server, you must start at least two of them for
the cache to be available. When you configure a cache across multiple brokers with
multiple catalog servers, if you need to start one broker before the others then you
can configure this broker to host two catalog servers.
When you set the broker-level property to a policy file, the policy file is validated
against an XML schema. A copy of the XML schema file is provided at
install_dir/cachesupport/schema.
Do not edit the sample policy files in their original location; copy them to your
own file system first. The original sample policy files might be replaced when you
apply maintenance to IBM Integration Bus.
You cannot use the policy file to fix specific cache roles to specific integration
servers. Instead, you must use the none policy; see Embedded global cache on
page 150.
The following steps describe how to configure the global cache for multiple
brokers.
Procedure
1. Copy one of the sample policy files from install_dir/sample/globalcache to
another location on your file system.
You can place a copy of the same policy file on each computer where a broker
is running, or you can provide a single copy of the policy file in a shared file
system for all brokers to access.
2. Modify the policy file for your system, specifying the appropriate broker names
and listener hosts, the port range that the broker is to use, and how many
catalog servers the broker hosts. Optionally, you can also specify a domain
name for all catalog servers in the embedded cache. If you do not set a domain
name, the broker creates one.
Ensure that the policy meets the following criteria:
v You can define 0, 1, or 2 catalog servers for an individual broker, but at least
one catalog server must be defined in the policy.
v If two brokers share a host name, you must set a distinct port range for each
broker.
v Ensure that the port range for each broker includes at least 20 ports.
v The broker names and listener hosts specified in the policy must match the
values defined for the brokers.
v You can define only one domain name in the policy file.
v If specified, the domain name must precede the broker elements in the policy
file.
v The policy file must be encoded in UTF-8.
v The policy file must contain valid XML. The policy file is validated against
an XML schema when you set the broker-level property. You can also
171
validate the policy file against the copy of the schema (policy.xsd) that is
provided in install_dir/cachesupport/schema.
v If you are configuring a multi-instance broker, an optional listenerHost
element is provided as a child of the broker element so that you can specify
more than one listener host. In this situation, the listenerHost attribute of
the broker element is also optional. However, you must specify either the
listenerHost element or the listenerHost attribute.
v If you are configuring a multi-instance broker, you cannot specify the
listenerHost element more than once for a broker that is configured to host
one or more catalog servers.
When you use an XML policy file, the broker-level portRange property is
ignored. The port range specified in the XML file overrides the property
specified for the broker.
3. Save the policy file.
4. Set the cache policy to the fully qualified name of the policy file.
The path that you specify must be absolute, not relative. If you use a shared
drive on Windows, you must use the \\hostname\directory path syntax to the
shared drive, instead of a mapped drive letter. The IBM Integration Bus user ID
that is used to access the \\hostname\directory path must have read access to
the file system and must use the same password.
You can set the cache policy by using commands (see Configuring the
embedded global cache by using commands on page 164) or IBM Integration
Explorer (see Configuring the embedded global cache by using IBM
Integration Explorer on page 167).
5. Restart each broker. If your cache is configured for more than one catalog
server, then ensure that at least two catalog servers are started.
|
|
Results
When each broker restarts, it uses the values in the policy file to determine its
cache properties. Each broker contains up to 4 container servers. To find out where
container servers are placed, use the mqsicacheadmin command to run the
showPlacement command, as shown in the following example:
mqsicacheadmin brokerName -c showPlacement
You can also use the mqsicacheadmin command to show cache components in a
multi-broker cache. For example, the listHosts command shows the host names,
number of hosts, and number of catalogs in the cache:
mqsicacheadmin brokerName -c listHosts
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Global cache scenario: Storing state for integrations on page 144
You can use a global cache to store state for integrations. With a global cache, each
broker can handle replies, even when the request was processed by another broker.
172
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
173
Consider the following example. Your global cache consists of 2 brokers that host
catalog servers and container servers, and a multi-instance broker. The active
instance of the multi-instance broker hosts up to 4 container servers. If the active
instance of the multi-instance broker fails, the cache will remain operational as
long as at least one of the catalog servers is still available. Data is temporarily
rebalanced across the remaining container servers in the brokers that host the
catalog servers. When the standby instance of the multi-instance broker starts, the
container servers rejoin the global cache, and cached data is rebalanced
automatically.
A multi-instance broker cannot host a catalog server. Therefore, you cannot
configure an integration server to host a catalog server if that integration server is
defined with multiple listener hosts.
A sample XML policy file is provided as a starting point for your configuration.
The policy_multi_instance.xml file configures three brokers in a high availability
scenario. Two brokers each host a catalog server, and a multi-instance broker hosts
two container servers.
To configure a multi-instance broker, a listenerHost element has been introduced
as an alternative to the listenerHost attribute of the broker element. You can use
the listenerHost element to specify a list of listener hosts. Alternatively, you can
set the listenerHost property on the integration server to a comma-separated list
of listener hosts.
The following steps describe how to configure the global cache for a multi-instance
broker.
Procedure
1. Copy the sample policy file, policy_multi_instance.xml, from
install_dir/sample/globalcache to another location on your file system.
Do not edit the sample policy file in its original location; copy it to your own
file system first. The original sample policy file might be replaced when you
apply maintenance to IBM Integration Bus. You can place a copy of the same
policy file on each computer where a broker is running, or you can provide a
single copy of the policy file in a shared file system for all brokers to access. No
matter how the file is shared between two computers, the policy file must be
placed on the same file path on each computer or shared system.
2. Modify the policy file for your system, specifying the appropriate broker names
and listener hosts, the port range that the broker is to use, and how many
catalog servers the broker hosts. Optionally, you can also specify a domain
name for all catalog servers in the embedded cache. If you do not set a domain
name, the broker creates one.
Ensure that the policy meets the following criteria:
v You can define 0, 1, or 2 catalog servers for an individual broker, but at least
one catalog server must be defined in the policy.
v A multi-instance broker cannot host a catalog server.
v You cannot specify the listenerHost element more than once for a broker
that is configured to host one or more catalog servers.
v If two brokers share a host name, you must set a distinct port range for each
broker.
v Ensure that the port range for each broker includes at least 20 ports.
174
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v The broker names and listener hosts specified in the policy must match the
values defined for the brokers.
v You must specify either the listenerHost element or the listenerHost
attribute for each broker.
v You can define only one domain name in the policy file.
v If specified, the domain name must precede the broker elements in the policy
file.
v The policy file must be encoded in UTF-8.
v The policy file must contain valid XML. The policy file is validated against
an XML schema when you set the broker-level property. You can also
validate the policy file against the copy of the schema (policy.xsd) that is
provided in install_dir/cachesupport/schema.
When you use an XML policy file, the broker-level portRange property is
ignored. The port range specified in the XML file overrides the property
specified for the broker.
3. Save the policy file.
4. Set the cache policy to the fully qualified name of the policy file.
The path that you specify must be absolute, not relative. If you use a shared
drive on Windows, you must use the \\hostname\directory path syntax to the
shared drive, instead of a mapped drive letter. The IBM Integration Bus user ID
that is used to access the \\hostname\directory path must have read access to
the file system and must use the same password.
You can set the cache policy by using commands (see Configuring the
embedded global cache by using commands on page 164) or IBM Integration
Explorer (see Configuring the embedded global cache by using IBM
Integration Explorer on page 167).
5. Restart each broker.
Results
When each broker restarts, it uses the values in the policy file to determine its
cache properties. If multiple listener hosts are specified, the global cache tries to
bind to each one in turn until it finds one that is available on the system. If the
global cache does not find a listener host that is available on the system, it uses the
first listener host in the list.
Each broker contains up to 4 container servers. To find out where container servers
are placed, use the mqsicacheadmin command to run the showPlacement command,
as shown in the following example:
mqsicacheadmin brokerName -c showPlacement
You can also use the mqsicacheadmin command to show cache components in a
multi-broker cache. For example, the listHosts command shows the host names,
number of hosts, and number of catalogs in the cache:
mqsicacheadmin brokerName -c listHosts
Related concepts:
Data caching overview on page 142
WebSphere eXtreme Scale provides IBM Integration Bus with data caching
capability.
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Chapter 1. Administering brokers and broker resources
175
176
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
177
178
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related reference:
Parameter values for the cachemanager component
Select the objects and properties that are associated with the global cache that you
want to change.
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
Connecting to a WebSphere eXtreme Scale grid:
You can store data in a WebSphere eXtreme Scale grid for use by other message
flows.
Before you begin
Before you start:
v Read the concept information about external grids in WebSphere eXtreme Scale
grids on page 153.
v Ask your WebSphere eXtreme Scale administrator for the following information
about the external grid to which you are connecting:
The name of the grid
The host name and port of each catalog server for the grid
Optional: The object grid file that can be used to override WebSphere eXtreme
Scale properties
v To enable SSL for connections to external WebSphere eXtreme Scale grids, follow
the instructions in Enabling SSL for external WebSphere eXtreme Scale grids
on page 181.
About this task
The following steps describe how to connect to a WebSphere eXtreme Scale grid by
using a configurable service.
Procedure
1. Optional: If you are connecting to a secure grid, use the mqsisetdbparms
command to create a security identity, as shown in the following example.
mqsisetdbparms IB9NODE -n wxs::id1 -u userId -p password
For more information, see mqsisetdbparms command.
2. Create a WXSServer configurable service by using the
mqsicreateconfigurableservice command or IBM Integration Explorer.
For more information, see mqsicreateconfigurableservice command or
Creating a new configurable service.
3. Use the values provided by your WebSphere eXtreme Scale administrator to
configure the connection to the external grid, as shown in the following
example. For an explanation of the parameters of the configurable service, see
Configurable services properties.
Chapter 1. Administering brokers and broker resources
179
As you can see from this example, when you specify the security identity, you
omit the prefix (wxs::) that you used when creating the security identity with
the mqsisetdbparms command.
If the object grid file is on a shared drive on Windows, you must use the
\\hostname\directory path syntax to the shared drive, instead of a mapped
drive letter. The IBM Integration Bus user ID that is used to access the
\\hostname\directory path must have read access to the file system and must
use the same password that is required to access the shared drive.
What to do next
After you create the WXSServer configurable service, you can interact with the
external grid by using a JavaCompute node. (For detailed instructions, see
Accessing the global cache with a JavaCompute node.) When you use a
JavaCompute node to get a global map from an external grid, the getGlobalMap
method makes the connection to the grid if one does not exist. To modify a flow
that previously used the embedded cache to connect to an external grid instead,
you must update your JavaCompute node by specifying the name of the map on
the external grid and the name of the configurable service that is used to connect
to the grid. You can work with multiple external grids, and the embedded grid, at
the same time.
Statistics are recorded for the interactions between message flows and the external
grid. The global cache activity log also provides a high-level overview of how IBM
Integration Bus interacts with the external grid. For more information, see
Monitoring the global cache on page 183.
Related concepts:
Data caching terminology on page 155
The global cache is embedded in the broker. You can also connect to an external
WebSphere eXtreme Scale grid.
Related tasks:
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Managing data caching on page 141
Store data that you want to reuse by using the embedded global cache or an
external WebSphere eXtreme Scale grid.
Accessing the global cache with a JavaCompute node
You can use a JavaCompute node to interact with a map in a global cache or an
external WebSphere eXtreme Scale grid.
Related reference:
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
180
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
WebSphere eXtreme Scale product documentation
WebSphere eXtreme Scale product web page
Enabling SSL for external WebSphere eXtreme Scale grids:
Enable SSL for an external WebSphere eXtreme Scale grid by setting up a public
key infrastructure, then enabling SSL on the integration server.
Before you begin
Before you start:
Read the concept information in WebSphere eXtreme Scale grids on page 153
and Public key cryptography on page 206.
About this task
You can enable SSL for client connections to external WebSphere eXtreme Scale
grids. You cannot enable SSL for servers in the embedded global cache.
To enable SSL communication, configure the keystore, truststore, passwords, and
certificates. To enable server authentication, import the public certificate from the
WebSphere eXtreme Scale server into the broker or integration server truststore. If
the server requires client authentication, you must also create a private key in the
broker or integration server keystore that the WebSphere eXtreme Scale server
trusts.
You then set properties on the integration server to enable SSL and specify the
required protocol. You can also nominate a particular key to use if you have more
than one. SSL connections can be made only from integration servers that are not
hosting catalog or container servers.
The following steps describe how to enable SSL for an external WebSphere
eXtreme Scale grid.
Procedure
1. Set up a public key infrastructure by following the instructions in Setting up a
public key infrastructure on page 415. You can set up the public key
infrastructure at broker or integration server level.
Connections to external WebSphere eXtreme Scale grids cannot implicitly use
public certificates that are located in the JVM cacerts file.
2. To ensure that you are enabling SSL on an integration server that does not host
a catalog or container server, use one of these methods:
v Set the broker-level policy to none to specify roles for the integration servers
manually. For example, to ensure that an integration server does not host a
catalog or container server, run the following mqsichangeproperties
command:
mqsichangeproperties broker_name -e execution_group_1 -o ComIbmCacheManager -n enableCatalogService,enableContainerService -v false,false
v Set the broker-level policy to disabled to switch off the embedded global
cache and ensure that no integration servers are hosting WebSphere eXtreme
Scale server components.
Chapter 1. Administering brokers and broker resources
181
v From the IBM Integration Explorer, select the properties for each integration
server, then select Global Cache. Confirm that the Catalog server enabled
and Container Server enabled properties are not selected.
4. To enable SSL, set the following properties on the appropriate integration
server:
v To enable SSL, set clientsDefaultToSSL to true.
v Optional: To specify an SSL protocol, set sslProtocol to a value that is
recognized by the IBM JSSE2 security provider.
v Optional: If the external grid requires client authentication and you have
more than one trusted private key in the broker keystore, set sslAlias to the
appropriate key.
For more information about these properties, see Parameter values for the
cachemanager component.
To set these properties on the integration server, use one of the following
methods:
v From the command line, run the mqsichangeproperties command, as shown
in the following example:
mqsichangeproperties broker_name -e execution_group_1 -o ComIbmCacheManager
-n clientsDefaultToSSL,sslProtocol,sslAlias -v true,SSL_TLS,ProdKey
v From the IBM Integration Explorer, select the properties for each integration
server, then select Global Cache. Select clientsDefaultToSSL and, if
required, set the SSL protocol and SSL key alias.
5. Restart the integration server. For more information, see mqsireload command.
6. Connect to the WebSphere eXtreme Scale grid by following the instructions in
Connecting to a WebSphere eXtreme Scale grid on page 179.
Results
Keystore, truststore, and protocol settings are verified the first time that a
connection is made from the integration server (either to the embedded grid, or for
the first remote connection). Errors in the configuration are reported as a warning,
and SSL connections are then prohibited. For example, a warning is issued if a
keystore file is not found, the file is corrupted, or the keystore password is
incorrect.
If you enable SSL and try to connect from an integration server that hosts
WebSphere eXtreme Scale server components, the connection fails with a detailed
exception message, BIP7144, which explains why the connection failed. If an SSL
182
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
handshake exception occurs, the message flow fails and the exception message
BIP7147 is issued.
Related concepts:
Public key cryptography on page 206
All encryption systems rely on the concept of a key. A key is the basis for a
transformation, usually mathematical, of an ordinary message into an unreadable
message. For centuries, most encryption systems have relied on private key
encryption. Public key encryption is the only challenge to private key encryption
that has appeared in the last 30 years.
WebSphere eXtreme Scale grids on page 153
Use one or more external WebSphere eXtreme Scale grids to store data that you
want to reuse.
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Setting up a public key infrastructure on page 415
Configure keystores, truststores, passwords, and certificates to enable SSL
communication, and Web Services Security.
Connecting to a WebSphere eXtreme Scale grid on page 179
You can store data in a WebSphere eXtreme Scale grid for use by other message
flows.
Configuring the embedded global cache on page 162
Configure properties of the embedded global cache by using commands, IBM
Integration Explorer, an XML policy file, or the IBM Integration API.
Related reference:
Parameter values for the cachemanager component
Select the objects and properties that are associated with the global cache that you
want to change.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
183
mqsicacheadmin command
The mqsicacheadmin command provides information about the global cache
that is embedded in a broker. For example, you can find out the size of a
map and list the hosts that are participating in the cache. You can also use
this command to clear data from a map. See Running the mqsicacheadmin
command.
Activity log
Activity logs provide a high-level overview of how IBM Integration Bus
interacts with external resources, therefore helping you to understand what
your message flows are doing. See Viewing the activity log.
Resource statistics
Resource statistics are collected by a broker to record performance and
operating details of resources that are used by integration servers. See
Collecting resource statistics on page 185.
Running the mqsicacheadmin command:
About this task
To use the command to find information about the global cache that is embedded
in a broker, complete the following steps.
Procedure
1. Before you run the mqsicacheadmin command, ensure that the broker is running
and that the global cache is available.
The cache is disabled by default. To use the cache, select a broker-level cache
policy (see Configuring the embedded global cache on page 162).
2. Run the mqsicacheadmin command, specifying the appropriate parameters, as
described in mqsicacheadmin command. Use the -c parameter to run a
WebSphere eXtreme Scale command.
For example, to list all container servers and their shards in the embedded
cache, run the WebSphere eXtreme Scale command, showPlacement:
mqsicacheadmin myBroker -c showPlacement
To clear all data from the map called myMap in the broker myBroker, run the
following command:
mqsicacheadmin myBroker -c clearGrid -m myMap
The data is cleared immediately; you do not need to restart the broker for this
action to take effect.
You do not have to specify a broker name with this command. For example,
use the -cep parameter to connect to a catalog server and show the routing
table for each WebSphere eXtreme Scale shard:
mqsicacheadmin -cep server.company.com:2800 -c routetable
3. Examine the output and usage information that is returned by the command.
Viewing the activity log:
About this task
To open the activity log view in IBM Integration Explorer, complete the following
steps.
Procedure
1. Ensure that the global cache is available.
184
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The cache is disabled by default. To use the cache, select a broker-level cache
policy (see Configuring the embedded global cache on page 162).
2. In the WebSphere MQ Explorer - Navigator view, expand the Integration
Nodes folder, then expand the folder for the relevant integration server.
3. To view the activity log for either a message flow or the global cache resource
type, complete one of the following steps.
v To open the activity log for a message flow, right-click the message flow and
click Open Activity Log.
v To open the activity log for the global cache, expand the Resource Managers
folder, right-click the global cache resource type, then click Open Activity
Log.
Activity information is displayed for the cache or the message flow. For more
information about the activities that are recorded for the global cache, see
Global cache Activity log.
4. You can save or copy information in the activity log; for more information, see
Working with Activity logs in IBM Integration Explorer on page 625.
Collecting resource statistics:
About this task
To view resource statistics for the global cache, complete the following steps.
Procedure
1. Ensure that the global cache is available.
The cache is disabled by default. To use the cache, select a broker-level cache
policy (see Configuring the embedded global cache on page 162).
2. To start collecting resource statistics, use one of the following methods.
For more information about working with resource statistics, see Analyzing
resource performance on page 529.
v Ensure that the broker is running, then run the mqsichangeresourcestats
command, setting the -c parameter to active.
For example, to start collecting resource statistics for integration server myIS
on broker myBroker, run the following command.
mqsichangeresourcestats myBroker -c active -e myIS
For more information about this command, see mqsichangeresourcestats
command.
v In the WebSphere MQ Explorer - Navigator view of IBM Integration
Explorer, expand the Brokers folder. Right-click one or more integration
servers and click Statistics > Start Resource Statistics.
3. To view the statistics, use IBM Integration Explorer.
For more information about the data that is collected for the global cache, see
Resource statistics data: global cache.
a. In IBM Integration Explorer, click Window > Show View > Resource
Statistics. The Resource Statistics and Resource Statistics Graph views open.
b. In the Resource Statistics view, click the global cache tab.
If you are displaying statistics for this integration server for the first time,
the views might be empty until the first data is received. Update messages
are sent every 20 seconds, and the views refresh automatically.
Related concepts:
185
186
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
187
Related reference:
JavaCompute node
Use the JavaCompute node to work with messages by using the Java language.
188
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
189
190
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
on the integration node (broker) by all users. Alternatively, you can view the
results of deployment actions from a single user using the Deployment Log view
in the IBM Integration Toolkit, see Deployment Log view.
The Administration Log view contains information about events that occur within
your integration nodes. These events can be information, errors, or warnings and
relate to your own actions. To view events for a particular integration node, look
for the name of the integration node in the Source column.
Each event contains the following information:
v Message: The event number.
v Source: Where the event has come from.
v TimeStamp: The date and time that the event occurred. Time stamps are taken
from the computer that is hosting the integration node.
v Details: What has caused the event and what action is needed to rectify it.
You can only view Administration log information for a specific integration node
using the IBM Integration Explorer if the integration node is both running and
connected. Local integration nodes are automatically connected, but you must
manually connect to remote integration nodes.
Procedure
1. To view Administration log information in the IBM Integration Explorer, ensure
that the Administration Log view is visible. If the Administration Log view is
not visible, from the menu, click Window > Show View > Administration Log.
2. Expand the Integration Nodes folder, and select the integration node with
which you want to work. The Administration log information for the selected
integration node is displayed in the Administration Log view. The
Administration log information is displayed in time and date order.
3. Double-click the message to display the full details for a message. The message
is opened in a new window.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Clearing Administration log information on page 193
Clear Administration log information to reduce the size of the log by using either
the IBM Integration Explorer or the CMP.
Saving Administration log information on page 192
Save the Administration log information that is written to the Administration Log
view in the IBM Integration Explorer.
Related reference:
191
Procedure
1. In the IBM Integration Explorer, expand the Integration Nodes folder in the
Navigator view.
2. Select the integration node with which you want to work, to display the
Administration log information in the Administration Log view.
3. Right-click in the Administration Log view, and click Save Log As.
4. Enter an appropriate directory in which to save the log information.
5. Enter a name for the log file, and click Save Log.
Results
Each message recorded in the Administration log is written to the text file with the
same information that is detailed in the Administration log itself.
To view the saved log, open the log file in an appropriate text editor.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Viewing Administration log information on page 190
You can view Administration log information by using either the IBM Integration
Explorer, or the CMP.
Clearing Administration log information on page 193
Clear Administration log information to reduce the size of the log by using either
the IBM Integration Explorer or the CMP.
Related reference:
192
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Expand the Integration Nodes folder in the Navigator view.
2. Select the integration node (broker) with which you want to work, to display
the Administration log information in the Administration Log view.
3. Right-click in the Administration Log view, and click Clear Administration
Log.
If you have set the IBM Integration Explorer preference to warn before deleting
log events, a prompt asks you to confirm deletion. Click OK.
If you have not set the IBM Integration Explorer preference to warn before
deleting log events, the Administration log is cleared automatically.
All log entries will be deleted for this user.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Viewing Administration log information on page 190
You can view Administration log information by using either the IBM Integration
Explorer, or the CMP.
Saving Administration log information on page 192
Save the Administration log information that is written to the Administration Log
view in the IBM Integration Explorer.
Related reference:
193
Procedure
1. Click Window > Preferences.
2. Expand the IBM Integration category in the left pane.
3. Make your selections.
4. Click OK.
Related tasks:
Accessing Administration log information on page 190
Active brokers record information about their operations in the Administration log.
Access the events that are written by the broker by using the IBM Integration
Explorer and the IBM Integration Toolkit. For some actions, you can also use the
IBM Integration API (also known as the CMP).
Related reference:
Administration Log view
The Administration Log view shows administration requests and their results,
changes made to objects, and the result of deployment actions on brokers. The
Administration Log view can also describe configuration changes that have been
automatically applied as a result of moving the broker from one version to
another; for example, after applying maintenance.
194
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Shut down all IBM Integration Bus services and processes.
2. Create a new partition on the system. The new partition can be on the same
drive as the old work path, or on a different drive.
3. In the IBM Integration Console, locate the work path directory for your
installation on the local system by running the following command:
echo %MQSI_WORKPATH%
4. Copy the contents of the work path directory to the new partition.
5. Delete the contents of the old work path directory.
6. Open the Computer Management dialog: click Start > Settings > Control
Panel > Administrative Tools > Computer Management; the Computer
Management dialog opens.
7. In the left pane of the Computer Management dialog, click Disk
Management. The new partition that you added, and any existing partitions,
are listed in the right pane.
8. Right-click the new partition, then click Change Drive Letter and Paths. The
Change Drive Letter and Paths dialog opens.
9. Click Add. The Add Drive Letter or Path dialog opens.
10. Ensure that Mount in the following empty NTFS folder is selected, then
browse to the old work path location.
11. Click OK, then click OK again.
Results
Any files that IBM Integration Bus creates in the work path location are stored on
the new partition.
195
Procedure
1. Shut down all IBM Integration Bus services and processes.
2. Create a new directory on a suitable file system.
3. Locate the work path directory for your installation on the local system by
running the following command:
echo $MQSI_WORKPATH
4. Copy the contents of the work path directory to the new partition.
5. Delete the contents of the old work path directory.
6. Perform one of the following tasks so that the IBM Integration Bus installation
uses the new work path location:
v Use the mount command to mount the new work path directory at the
location of the old work path directory.
v Delete the old work path directory and replace it with a soft link. Give the
soft link the same name as the old work path directory and point the link to
the new work path directory.
Results
Any files that IBM Integration Bus creates in the work path location are stored in
the new location.
Related tasks:
Can you see all of your files and folders? on page 654
How to show all files in Windows Explorer:
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
Backing up resources
Back up your broker components, and the working files associated with brokers,
the IBM Integration Explorer, and the IBM Integration Toolkit, so that you can
restore these resources if required.
196
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
flows and message model schema files. If you use a development repository to
store application resources, such as Rational ClearCase, see the documentation
associated with that repository to check how you can back up this data.
The following topics tell you how to back up and restore brokers and the IBM
Integration Toolkit workspace:
v Backing up the broker
v Restoring the broker on page 198
v Backing up the IBM Integration Explorer and IBM Integration Toolkit
workspace on page 200
On distributed systems, you can use the backed up components to restore the
broker only on an identical operating environment. The operating system must be
at the same level, and the broker and queue manager names must be identical.
Related concepts:
Development repository
Use a development repository to benefit from features such as version control and
access control of files, which make it easier for teams to work on shared resources.
Related tasks:
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
You can run this command for a broker that is active. However, you must
not take a backup while the broker is processing configuration changes and
deployments; the backup file created might contain incomplete
information. If the file contains partial records, you cannot use it to restore
the broker at a later time.
To ensure that the backup is complete and correct, take a backup either
when the broker is not processing a configuration change (such as a
deployment or change property) or when the broker is stopped.
197
Procedure
1. If you want to back up an active broker, check that no configuration change
requests are in progress. For example, if you are changing broker properties, or
have initiated a deployment, wait for these actions to complete before you back
up the broker. Active message flows are unaffected by the backup process.
If you prefer, you can stop the broker before you take a backup by using the
mqsistop command.
2. Back up the broker. Specify the broker name and the location in which the
backup file is created. You can also optionally specify the name of the backup
file, and the name of a file to which a detailed trace is written.
v
UNIX
Windows
Results
The current broker configuration is saved in the backup file. Keep the file safe so
that you can restore the broker at a later date if required.
Related tasks:
Restoring the broker
Restore a broker configuration that you backed up previously.
Customizing the broker JCL
This subtask is part of the larger task of creating a broker on z/OS.
Related reference:
mqsibackupbroker command
Use the mqsibackupbroker command to back up the current configuration of a
broker.
mqsirestorebroker command
Use the mqsirestorebroker command to restore the broker configuration from a
backup file.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
198
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. If you have deleted the broker and it no longer exists, or if you are restoring it
on a different computer, create it by using the mqsicreatebroker command. Use
the same name and parameters that you used for the broker that you backed
up, including the name of the queue manager.
2. If the broker is running, stop it by using the mqsistop command. If you intend
to restore common configuration information from other brokers that you have
configured on this computer, you must also stop all the brokers that share this
common information. For example, you can restore profile information from
common files.
3. Restore the broker. Specify the broker name and the name and location of the
backup file. If you want to restore common configuration information, or if you
want a trace of the actions taken, specify the appropriate parameters for your
platform.
v
UNIX
Windows
What to do next
Next: The broker configuration has been restored; you can continue your work
with this broker.
Related tasks:
Backing up the broker on page 197
Back up the broker configuration and all associated resources.
Customizing the broker JCL
This subtask is part of the larger task of creating a broker on z/OS.
Related reference:
mqsibackupbroker command
Use the mqsibackupbroker command to back up the current configuration of a
broker.
mqsirestorebroker command
Use the mqsirestorebroker command to restore the broker configuration from a
backup file.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
Chapter 1. Administering brokers and broker resources
199
Windows
On Windows, the default workspace directory is created at
C:\Users\user_ID\IBM\MQ Explorer\<server project>\.
where user_ID is the user name with which you are logged on. Back up files in
these locations, and in all other locations in which you have saved workspace files.
The default workspace directory for the IBM Integration Toolkit depends on the
platform on which it is running:
v
v
Windows
On Windows: C:\Users\user_ID\IBM\IntegrationToolkit90\
workspace.
Linux
On Linux: /home/user_ID/IBM/IntegrationToolkit90/workspace.
where user_ID is the user name with which you are logged on. Back up files in
these locations, and in all other locations in which you have saved workspace files.
The IBM Integration Toolkit workspace directory contains a directory called
.metadata, which contains your personal settings and preferences for the IBM
Integration Toolkit. If the .metadata directory gets corrupted, you lose these
settings, and the IBM Integration Toolkit reverts to the default layout and
preferences. If you have not backed up the .metadata directory, you must manually
set all preferences again, and import all projects, such as message flow projects,
that were displayed in the Application Development view. To back up the
.metadata directory, take a copy of the directory.
The IBM Integration Toolkit workspace also contains a directory for each project
(for example, a message flow project) that you have created in the IBM Integration
Toolkit. These directories contain your data, which you must back up.
Use one of the following methods to back up the data in your workspace; the
instructions are the same for both the IBM Integration Explorer and the IBM
Integration Toolkit.
Procedure
v Export your working projects. You can export the projects directly as a
compressed file. For further information, see Exporting in the Eclipse Workbench
User Guide.
v Copy the project directories from the workspace directory to another location.
v IBM Integration Explorer only: Export all .broker connection files to save the
details of connections to all your brokers.
200
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v IBM Integration Toolkit only: Take copies of all your BAR files to back up their
contents. Include all the associated source files when you build your broker
archive (BAR) files; you can then save all content by saving only the BAR file. To
add resources to a BAR file that is ready for deployment, select Include source
files, which adds the message flow and message set source files, and the
compiled files.
What to do next
If you want to restore the resources, copy the directories back into your workspace
directory and import the projects. For instructions, see Importing in the Eclipse
Workbench User Guide.
Related concepts:
Resources
The projects, folders, and files that you work with in the IBM Integration Toolkit
workspace are called resources. By default, these resources are stored with their
metadata in the workspace directory in your local file system. The workspace
directory is created the first time that you start the IBM Integration Toolkit.
Related tasks:
Backing up resources on page 196
Back up your broker components, and the working files associated with brokers,
the IBM Integration Explorer, and the IBM Integration Toolkit, so that you can
restore these resources if required.
Related information:
Workbench User Guide - Customizing the Workbench
201
202
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
Security is an important consideration for both developers of IBM Integration Bus
applications, and for system administrators configuring IBM Integration Bus
authorities.
When you are designing an IBM Integration Bus application, it is important to
consider the security measures that are needed to protect the information in the
system.
The Security overview introduces the concepts that you need to understand
before you set up security for IBM Integration Bus.
The following topics explain the different aspects of security that you need to
consider when you are designing your applications:
v Administration security on page 213
v Message flow security on page 242
v Integration Bus server security on page 396
Related concepts:
What's new in Version 9.0?
Learn about the main new functions in IBM Integration Bus Version 9.0.
WS-Security
Web Services Security (WS-Security) describes enhancements to SOAP messaging
to provide quality of protection through message integrity, message confidentiality,
and single message authentication. WS-Security mechanisms can be used to
accommodate a wide variety of security models and encryption technologies.
Related reference:
Security requirements for administrative tasks
You can configure access permissions to govern which users and groups can
manipulate objects in the broker network. Security requirements for administrative
tasks depend on the platform that you use.
Security overview
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
An important aspect of securing an enterprise system is the ability to protect the
information that is passed from third parties. This capability includes restricting
access to WebSphere MQ and JMS queues. For information about the steps
involved, refer to the documentation supplied by your transport provider. If you
are using HTTPS, you need to set specific properties in the HTTP nodes. For
information about this option, see HTTPInput node, HTTPRequest node, and
HTTPReply node.
In addition to securing the transport, you can secure individual messages based on
their identity. For more information about securing messages in a message flow,
see Message flow security on page 242.
Copyright IBM Corp. 1999, 2014
203
WS-Security
Web Services Security (WS-Security) describes enhancements to SOAP messaging
to provide quality of protection through message integrity, message confidentiality,
and single message authentication. WS-Security mechanisms can be used to
accommodate a wide variety of security models and encryption technologies.
What's new in Version 9.0?
Learn about the main new functions in IBM Integration Bus Version 9.0.
Related tasks:
Integration Bus server security on page 396
You must consider several security aspects when you are setting up brokers
running on Windows, Linux, z/OS, or UNIX platforms.
Setting up administration security on page 221
Control the actions that users can request against a broker and its resources.
Related reference:
204
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Security exits
Use security exit programs to verify that the partner at the other end of a
connection is genuine.
When you connect from the IBM Integration Toolkit or IBM Integration Explorer to
a broker on another computer, a security exit is not started by default to monitor
the connection. If you want to protect access to the broker from client programs,
you can use the WebSphere MQ security exit facility.
You can enable a security exit at each end of the connection between your client
session and the broker:
v Set up a security exit on the channel at the broker end. This security exit has no
special requirements; you can provide a standard security exit.
v Set up a security exit in the IBM Integration Toolkit or IBM Integration Explorer.
Identify the security exit properties when you connect to the broker. The security
exit is a standard WebSphere MQ security exit, written in Java.
For an overview of security exits and details of their implementation, see "Channel
security exit programs" in the Intercommunication section of the WebSphere MQ
Version 7 product documentation online.
Chapter 2. Security
205
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Related tasks:
Using security exits on page 399
Define a security exit on the WebSphere MQ channel when you create an
integration node (broker) connection.
Integration Bus server security on page 396
You must consider several security aspects when you are setting up brokers
running on Windows, Linux, z/OS, or UNIX platforms.
Related reference:
Security requirements for administrative tasks
You can configure access permissions to govern which users and groups can
manipulate objects in the broker network. Security requirements for administrative
tasks depend on the platform that you use.
Related information:
WebSphere MQ Version 7 product documentation
206
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
207
Digital certificates
Certificates provide a way of authenticating users. Instead of requiring each
participant in an application to authenticate every user, third-party authentication
relies on the use of digital certificates.
A digital certificate is equivalent to an electronic ID card. The certificate serves two
purposes:
v Establishes the identity of the owner of the certificate
v Distributes the owner's public key
Certificates are issued by trusted third parties, called certificate authorities (CAs).
These authorities can be commercial ventures or local entities, depending on the
requirements of your application. The CA is trusted to adequately authenticate
users before issuing certificates. A CA issues certificates with digital signatures.
When a user presents a certificate, the recipient of the certificate validates it by
using the digital signature. If the digital signature validates the certificate, the
certificate is recognized as intact and authentic. Participants in an application need
to validate certificates only; they do not need to authenticate users. The fact that a
user can present a valid certificate proves that the CA has authenticated the user.
The designation, "trusted third parties", indicates that the system relies on the
trustworthiness of the CAs.
The certificates and private keys are stored in files called keystores and truststores.
v A keystore holds the private keys and public key certificates for an application.
v A truststore contains the CA certificates required to authenticate certificates that
are presented by another application.
208
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The idea of a certificate is that a CA takes the public key of the owner, signs the
public key with its own private key, and returns the information to the owner as a
certificate. When the owner distributes the certificate to another party, it signs the
certificate with its private key. The receiver can extract the certificate that contains
the CA signature with the public key of the owner. By using the CA public key
and the CA signature on the extracted certificate, the receiver can validate the CA
signature. If valid, the public key that is used to extract the certificate is considered
good. The owner signature is validated, and if the validation succeeds, the owner
is successfully authenticated to the receiver.
The additional information in a certificate helps an application to determine
whether to honor the certificate. With the expiration date, the application can
determine if the certificate is still valid. With the name of the issuing CA, the
application can check that the CA is considered trustworthy by the site.
An application that needs to authenticate itself must provide its personal
certificate, the one containing its public key, and the certificate of the CA that
signed its certificate, called a signer certificate. In cases where chains of trust are
established, several signer certificates can be involved.
Requesting certificates
To get a certificate, send a certificate request to the CA. The certificate request
includes:
v The distinguished name of the owner or the user for whom the certificate is
requested
v The public key of the owner
v The digital signature of the owner
The message digest function creates a signature based on all the previously listed
fields.
The CA verifies the signature with the public key in the request to ensure that the
request is intact and authentic. The CA then authenticates the owner. Exactly what
the authentication consists of depends on a prior agreement between the CA and
the requesting organization. If the owner in the request is authenticated
successfully, the CA issues a certificate for that owner.
Chapter 2. Security
209
210
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Client
Server
keystore
Server certificate
Server certificate
CA certificate
C1
CA certificate
C1
truststore
CA certificate
C1
Figure 14. This diagram shows how a client authenticates a server, and is described in the preceding text.
If mutual authentication is needed, the client keystore file must contain the client
private key and certificate. The server truststore file requires a copy of the
certificate of the client CA. The following diagram illustrates mutual
authentication.
Client
Server
keystore
keystore
Client certificate
Server certificate
Server certificate
CA certificate
C2
CA certificate
C1
CA certificate
C1
truststore
Client certificate
truststore
CA certificate
C2
CA certificate
C1
CA certificate
C2
Figure 15. This diagram illustrates mutual authentication, and is described in the preceding text.
Related concepts:
Chapter 2. Security
211
Digital signatures
A digital signature is a number that is attached to a document. For example, in an
authentication system that uses public-key encryption, digital signatures are used
to sign certificates.
This signature establishes the following information:
v The integrity of the message: Is the message intact? That is, has the message
been modified between the time it was digitally signed and now?
v The identity of the signer of the message: Is the message authentic? That is, was
the message signed by the user who claims to have signed it?
A digital signature is created in two steps. The first step distills the document into
a large number. This number is the digest code or fingerprint. The digest code is
then encrypted, which results in the digital signature. The digital signature is
appended to the document from which the digest code is generated.
Several options are available for generating the digest code. This process is not
encryption, but a sophisticated checksum. The message cannot regenerate from the
resulting digest code. The crucial aspect of distilling the document to a number is
that if the message changes, even in a trivial way, a different digest code results.
When the recipient gets a message and verifies the digest code by recomputing it,
any changes in the document result in a mismatch between the stated and the
computed digest codes.
To stop someone from intercepting a message, changing it, recomputing the digest
code, and retransmitting the modified message and code, you need a way to verify
the digest code as well. To verify the digest code, reverse the use of the public and
private keys. For private communication, it makes no sense to encrypt messages
with your private key; these keys can be decrypted by anyone with your public
212
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
key. However, this technique can be useful for proving that a message came from
you. No one can create it because no-one else has your private key. If some
meaningful message results from decrypting a document by using someone's
public key, the decryption process verifies that the holder of the corresponding
private key did encrypt the message.
The second step in creating a digital signature takes advantage of this reverse
application of public and private keys. After a digest code is computed for a
document, the digest code is encrypted with the sender's private key. The result is
the digital signature, which is attached to the end of the message.
When the message is received, the recipient follows these steps to verify the
signature:
1. Recomputes the digest code for the message.
2. Decrypts the signature by using the sender's public key. This decryption yields
the original digest code for the message.
3. Compares the original and recomputed digest codes. If these codes match, the
message is both intact and authentic. If not, something has changed and the
message is not to be trusted.
Related concepts:
Public key cryptography on page 206
All encryption systems rely on the concept of a key. A key is the basis for a
transformation, usually mathematical, of an ordinary message into an unreadable
message. For centuries, most encryption systems have relied on private key
encryption. Public key encryption is the only challenge to private key encryption
that has appeared in the last 30 years.
Digital certificates on page 208
Certificates provide a way of authenticating users. Instead of requiring each
participant in an application to authenticate every user, third-party authentication
relies on the use of digital certificates.
Policy sets
Policy sets and bindings define and configure your WS-Security and WS-RM
requirements, supported by IBM Integration Bus, for the SOAPInput, SOAPReply,
SOAPRequest, SOAPAsyncRequest, and SOAPAsyncResponse nodes.
WS-Security
Web Services Security (WS-Security) describes enhancements to SOAP messaging
to provide quality of protection through message integrity, message confidentiality,
and single message authentication. WS-Security mechanisms can be used to
accommodate a wide variety of security models and encryption technologies.
WS-Security mechanisms
The WS-Security specification provides three mechanisms for securing Web
services at the message level: authentication, integrity, and confidentiality.
Administration security
Administration security controls the rights of users to complete administrative
tasks for a broker and its resources.
The following topics introduce the concepts that you need to understand before
you can set up administration security, and explain the steps involved in securing
integration nodes and their resources:
Chapter 2. Security
213
214
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When you create an integration server on a broker for which you have enabled
security, the integration server authorization queue SYSTEM.BROKER.AUTH.EG is
created, where EG is the name of the integration server. Read, write, and execute
authorities are automatically granted to the user group mqbrkrs on this queue.
If you are migrating from WebSphere Message Broker Version 6.1, and you use
Access Control Lists (ACLs) that you define to the Configuration Manager, you
cannot migrate your ACLs directly to later versions of IBM Integration Bus.
Review the guidance provided in Migrating Configuration Manager ACLs to
understand how to set up security by using the ACLs as a basis for security in
your later IBM Integration Bus environment.
See the following topics for more information about permissions and queues:
v IBM Integration Bus permissions and equivalent WebSphere MQ permissions
on page 217
v Authorization queues for broker administration security on page 218
v Role-based security on page 220
Authorization on z/OS
On z/OS, WebSphere MQ uses the System Authorization Facility (SAF) to route
requests for authority checks to an external security manager (ESM) such as the
z/OS Security Server Resource Access Control Facility (RACF). WebSphere MQ
does no authority checks of its own. All information about broker administration
security on z/OS assumes that you are using RACF as your ESM. If you are using
a different ESM, you might need to interpret the information provided for RACF in
a way that is relevant to your ESM.
If you are activating security on the WebSphere MQ queue manager on z/OS for
the first time, you must set up the profiles or other resources that are required by
your ESM to access queues. You must also check that the queue manager is
configured to access the security profiles in the correct class; MQQUEUE for
uppercase queue names and MXQUEUE for mixed case queue names.
For further information about queue manager security and security profiles, see the
z/OS System Administration Guide and z/OS System Setup Guide sections of the
WebSphere MQ Version 7 product documentation online.
Authority checking
If you have activated broker administration security, all actions performed by users
of the following interfaces are subject to authority checking:
v IBM Integration Toolkit sessions
v IBM Integration Explorer sessions
v
v
v
v
215
mqsistartmsgflow
mqsistopmsgflow
mqsiwebuseradmin
For additional authorization required for these commands, see Commands and
authorizations for broker administration security.
You can run all commands that are not stated here only on the computer on
which the broker is running. Either your user ID, or the ID under which the
broker is running, must be a member of the security group mqbrkrs when you
run the unlisted commands. Each command topic describes the authority that is
required.
Users of the IBM Integration Explorer and IBM Integration Toolkit who do not
have read, write, and execute authority for the broker or integration servers, have
only restricted access to those resources. An icon is displayed against each resource
to indicate that user authority is restricted. The actions that the user can request
against a resource are determined by the restricted authority that is in place for
that user.
Authority persistence
If a user ID is granted authority to access a broker, the access is retained at least
until the current connection or session is ended by one of the following events:
v The user closes the IBM Integration Explorer or IBM Integration Toolkit session
v The CMP application disconnects from the BrokerProxy object
Even if you update or remove the authority for this user ID, the authorization does
not change while the connection is active.
However, authorization is always checked for operations against integration
servers and message flows; if you change or remove the authorization for a user
ID to an integration server, subsequent requests in the current connection might
fail.
216
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
WebSphere MQ permission
Read
Inquire
Write
Put
Execute
Set
For information about the authorizations that are required for specific tasks, see
Tasks and authorizations for administration security.
Chapter 2. Security
217
218
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
219
If you rename an integration server, you must first create an authorization queue
with the appropriate name. You must also re-create the WebSphere MQ
permissions associated with the original authorization queue on this queue before
you rename the integration server; the broker does not perform this task on your
behalf. The broker rejects the rename request if the authorization queue does not
exist, to ensure that security is not affected by the renaming. If you do not re-create
these permissions, no user IDs are authorized to perform a task against the
renamed integration server.
When you delete a broker, you can specify that all its authorization queues are also
deleted; they are not deleted by default. If you specify that the queue manager is
deleted at this time, all queues are deleted.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
IBM Integration Bus permissions and equivalent WebSphere MQ permissions on
page 217
If you have enabled broker administration security, you can give different
permissions to user IDs to allow them to complete various actions against a broker
or its resources.
Related tasks:
Enabling administration security on page 222
Enable administration security on a broker to control which users can complete
specific tasks against that broker and its resources.
Authorizing users for administration on page 228
Grant authority to one or more groups or users to authorize them to complete
specific tasks against a broker and its resources.
Related information:
WebSphere MQ Version 7 product documentation
Role-based security
You can control access to broker resources by associating web users with roles.
A role is a system user account that has a set of security permissions assigned to it,
and each web user account is associated with a particular role. The permissions are
checked to determine a web user's authorization to perform tasks in the web user
interface or the REST application programming interface (API).
As a broker administrator, you can control the access that web users have to broker
resources, by assigning each user to a predefined role. You can authorize users
with a particular role to complete specific actions, by enabling or disabling aspects
of the web or REST interface, or by configuring the web user interface to display
only the options for which users are authorized. For example, you might allow
users with one role to view broker resources, while allowing users with another
role to modify them.
You can grant the same authorizations to multiple users by assigning them to the
same role, but each user can be assigned to only one role.
For more information about assigning web users to roles, see Managing web user
accounts on page 226, Controlling access to data and resources in the web user
interface on page 239, and the mqsiwebuseradmin command.
220
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Accessing the web user interface on page 133
You can access broker resources by logging on to the web user interface.
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
Application Server. View and replay the data.
Enabling security for record and replay on page 598
You can restrict the users who can view and replay data for a broker by enabling
security.
Administering brokers using the web user interface on page 127
You can use the IBM Integration Bus web user interface to administer broker
resources.
Chapter 1, Administering brokers and broker resources, on page 1
Administering brokers and associated integration node resources includes the tasks
that you perform frequently to activate and manage those resources. Choose the
method you prefer to administer your brokers and associated resources.
221
Procedure
1. To enable broker administration security when you create the broker, select the
security option in the Create broker wizard in IBM Integration Explorer, or
specify the parameter -s active on the mqsicreatebroker command. For
example, to create a broker called IB9NODE with security enabled on AIX,
enter the following command:
mqsicreatebroker IB9NODE -q IB9QMGR -s active
The broker creates the authorization queue SYSTEM.BROKER.AUTH. This
queue is used to define which users are authorized to perform an action on the
broker.
The broker also assigns default permissions of inquire, put, and set authority to
this queue. These permissions grant read, write, and execute authority on the
broker to all members of the mqbrkrs group. Therefore, you must ensure that at
least one member of your broker administration team is a member of this
group. You must also manage the membership of this group with care, and
ensure that this level of authorization is granted only to users who require it.
On z/OS, these permissions are implemented as levels of authority in the
external security manager (ESM) that you are using with WebSphere MQ. If
you are using RACF as your ESM, the levels are hierarchical: for example,
ALTER access implies READ and WRITE access. You must therefore check the
222
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
Next: Grant authority to users to reflect what tasks you want them to be able to
complete, by populating the queues with the appropriate details. This task is
Chapter 2. Security
223
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsireportbroker command
Use the mqsireportbroker command to display broker registry entries.
Tasks and authorizations for administration security
If you have enabled broker administration security, users require specific authority
so that they can complete administration tasks.
Commands and authorizations for broker administration security
If you have enabled broker administration security, users require specific authority
to be able to run the administration commands.
mqsiwebuseradmin command
Use the mqsiwebuseradmin command to administer user accounts for the web user
interface.
Related information:
WebSphere MQ Version 7 product documentation
224
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When you access the broker through these interfaces, the broker accepts the system
user ID and uses it to check against authorization queues.
For more information about authenticating users for broker administration, see
Managing web user accounts on page 226 and Accessing the web user
interface on page 133.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Administration security on page 213
Administration security controls the rights of users to complete administrative
Chapter 2. Security
225
226
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
227
228
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can grant authorities to individual principals (user IDs), to groups of users, or
both, on all platforms:
v If you grant a group or a user ID authority at the broker level (on queue
SYSTEM.BROKER.AUTH), it does not inherit authority for integration servers.
You must explicitly grant authority to all, or to individual, integration servers.
v On Linux and UNIX, you can authorize both principals and groups. However,
when authorizing a principal, Message Broker additionally authorizes the
primary group of that principal. If there are many users who belong to that
primary group, they become authorized at the same time. Message Broker users
should consider using groups instead of primary groups for authorization,
because of differences in how variants of UNIX use primary groups.
v If a user ID is a member of the WebSphere MQ security group mqm, it
automatically has authority to all WebSphere MQ objects.
v On Windows, if a user ID is a member of the security group Administrators, it
automatically has authority to all WebSphere MQ objects.
When you change authorizations on a queue, the broker accesses the updated
values the next time that a request is processed. You do not have to stop and
restart the broker.
If you update user ID or group membership by using the operating system
facilities on the platform on which the broker queue manager is running, you must
ensure that the queue manager is aware of these changes. Select the option Refresh
Authorization Service in the WebSphere MQ Explorer to notify the queue manager
of the updated status.
The authority that is required depends on the requirements of the user:
v Required authority for administrators
v Required authority for users who connect to the broker on page 230
v Required authority for recording and replaying data on page 231
v Required authority for users of the web user interface on page 230
v Required authority for developers on page 231
The way in which you set up the required authorities differs by platform:
v Granting and revoking authority on Linux, UNIX, and Windows systems on
page 232
v Granting and revoking authority on z/OS systems on page 234
These platform-specific topics also give examples of command usage for viewing
what authorizations are in place by using the WebSphere MQ dspmqaut command,
and for dumping this information by using the dmpmqaut command.
For information about the additional permissions that are required for recording
and replaying data, see Enabling security for record and replay on page 598.
Required authority for administrators:
About this task
When you activate administration security, the WebSphere MQ permissions for
inquire, put, and set are granted for the group mqbrkrs for the queue
SYSTEM.BROKER.AUTH. These permissions grant read, write, and execute
authority on the broker and its properties to all user IDs that are members of
mqbrkrs.
Chapter 2. Security
229
If you want additional user IDs to have administrator authorization, either add
those IDs to the group mqbrkrs, or add WebSphere MQ permissions for inquire,
put, and set for those user IDs to this queue.
The following table summarizes the WebSphere MQ permissions that are required:
Object
Name
Permissions
Queue manager
Connect
Inquire
Queue
SYSTEM.BROKER.DEPLOY.QUEUE
Put
Queue
SYSTEM.BROKER.DEPLOY.REPLY
Get
Put
Queue
SYSTEM.BROKER.AUTH
Inquire
Put
Set
Queue
SYSTEM.BROKER.AUTH.EG
Inquire
Put
Set
Name
Permissions
Queue manager
Connect
Inquire
Queue
SYSTEM.BROKER.DEPLOY.QUEUE
Put
Queue
SYSTEM.BROKER.DEPLOY.REPLY
Get
Put
Queue
SYSTEM.BROKER.AUTH
Inquire1
Queue
SYSTEM.BROKER.AUTH.EG
Inquire1
Notes:
1. Users and applications can connect to the broker without this level of authority,
but are unable to request actions against the broker, including viewing
properties.
Additional permissions are also required for users who will connect to the broker
through the web user interface, as described in Required authority for users of the
web user interface.
Required authority for users of the web user interface:
230
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Name
Permissions
Queue
SYSTEM.BROKER.WEBADMIN.SUBSCRIPTION
GET
PUT
Topic
SYSTEM.BROKER.MB.TOPIC
SUBSCRIBE
PUBLISH
For more information about roles and web user accounts, see Role-based security
on page 220 and Managing web user accounts on page 226.
Required authority for recording and replaying data:
About this task
Before you can record and replay data, you must set security permissions for data
capture in addition to setting administrative security. The queue
SYSTEM.BROKER.DC.AUTH controls the record and replay actions that a user can
complete on the broker. Ensure that users have the appropriate authorizations to
complete the following actions on this queue:
Action
Authority required
READ (+INQ)
To replay data
EXECUTE (+SET)
231
232
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
233
Using a generic WebSphere MQ revoke write authority on a UNIX system for all
integration servers for the user IDs that are defined in the group group3:
setmqaut -m test -t queue -n "SYSTEM.BROKER.AUTH.**" -g group3 -all put
dspmqaut -m test -t queue -n "SYSTEM.BROKER.AUTH.**" -g group3
Grant only read authority for a specific integration server called default for group
group4:
setmqaut -m test -t queue -n SYSTEM.BROKER.AUTH.default -g group4 -all +inq
dspmqaut -m test -t queue -n SYSTEM.BROKER.AUTH.default -g group4
Revoke execute and write authority for a specific integration server called default
for group group5:
setmqaut -m test -t queue -n SYSTEM.BROKER.AUTH.default -g group5 -set -put
dspmqaut -m test -t queue -n SYSTEM.BROKER.AUTH.default -g group5
Using a generic WebSphere MQ on a non-UNIX system, dump all WebSphere MQ
authorities for all integration servers:
dmpmqaut -m test -t queue -n SYSTEM.BROKER.AUTH.**
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Administration security overview on page 214
Broker administration security controls the rights of users to complete
administrative tasks for a broker and its resources.
Related tasks:
Enabling administration security on page 222
Enable administration security on a broker to control which users can complete
specific tasks against that broker and its resources.
Disabling administration security on page 240
Disable administration security to remove control over a broker and its resources.
Authorizing users for administration on page 228
Grant authority to one or more groups or users to authorize them to complete
specific tasks against a broker and its resources.
Granting and revoking authority on z/OS systems
Grant or revoke authority to one or more groups or users to complete specific
tasks against a broker running on z/OS.
Related information:
WebSphere MQ Version 7 product documentation
Granting and revoking authority on z/OS systems:
Grant or revoke authority to one or more groups or users to complete specific
tasks against a broker running on z/OS.
Before you begin
Before you start:
Activate broker administration security for the broker before you grant and revoke
authority for requests sent to that broker.
234
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
WebSphere MQ permission
Read
Inquire
READ
Write
Put
UPDATE
Execute
Set
ALTER
Examples
All the examples shown here are for a broker that is associated with the queue
manager MQ01.
Add execute permission for group GROUP1 to the broker:
PERMIT MQ01.SYSTEM.BROKER.AUTH CLASS(MQQUEUE) ID(GROUP1) ACCESS(ALTER)
Remove broker execute permission to the broker for group GROUP2:
PERMIT MQ01.SYSTEM.BROKER.AUTH CLASS(MQQUEUE) ID(GROUP2) ACCESS(ALTER) DEL
Add write permission to all integration servers for group GROUP3:
PERMIT MQ01.SYSTEM.BROKER.AUTH.** CLASS(MXQUEUE) ID(GROUP3) ACCESS(UPDATE)
Chapter 2. Security
235
236
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
MA17.NO.SUBSYS.SECURITY
MA18.NO.SUBSYS.SECURITY
MA19.NO.SUBSYS.SECURITY
MA20.NO.SUBSYS.SECURITY
MI00.NO.SUBSYS.SECURITY
MI01.NO.SUBSYS.SECURITY
MI02.NO.SUBSYS.SECURITY
MI03.NO.SUBSYS.SECURITY
MI04.NO.SUBSYS.SECURITY
MI05.NO.SUBSYS.SECURITY
MI06.NO.SUBSYS.SECURITY
MI07.NO.SUBSYS.SECURITY
MI08.NO.SUBSYS.SECURITY
MI09.ALTERNATE.USER.MI09STC
MI09.ALTERNATE.USER.NHARRIS
MI09.NO.CMD.CHECKS
MI09.NO.CONNECT.CHECKS
MI09.NO.CONTEXT.CHECKS
MI09.NO.SUBSYS.SECURITY
MI10.NO.SUBSYS.SECURITY
MI11.NO.SUBSYS.SECURITY
MI12.NO.SUBSYS.SECURITY
MI13.NO.SUBSYS.SECURITY
MI14.NO.SUBSYS.SECURITY
MI15.NO.SUBSYS.SECURITY
MI16.NO.SUBSYS.SECURITY
MI17.NO.SUBSYS.SECURITY
MI18.NO.SUBSYS.SECURITY
MI19.NO.SUBSYS.SECURITY
MI20.NO.SUBSYS.SECURITY
MI09.CHANNEL.** (G)
MI09.QUEUE.** (G)
READY
/* LIST UPPERCASE PROFILES IN THE MQQUEUE MEMBER CLASS */
READY
SEARCH CLASS(MQQUEUE)
MA11.INPUT2.QUEUE
MA11.KMBRK
MA11.MA11.DEAD.QUEUE
MA11.MA15
MA11.REG1
MA11.SUBSCRIBER.RESULTS.QUEUE
MA11.SUBSCRIBER3.RESULTS.QUEUE
MA11.SUBSCRIBER4.RESULTS.QUEUE
MA11.SUBSCRIBER5.RESULTS.QUEUE
MA11.SUBSCRIBER6.RESULTS.QUEUE
MA11.SUBSCRIBER9.RESULTS.QUEUE
MA11.SYSTEM.CHANNEL.EVENT
MA11.SYSTEM.CHANNEL.SYNCQ
MA11.SYSTEM.CLUSTER.COMMAND.QUEUE
MA11.SYSTEM.COMMAND.INPUT
MA11.SYSTEM.COMMAND.REPLY.MODEL
MI09.SYSTEM.BROKER.AUTH.SECURITY_EXE
MA11.SYSTEM.BROKER.** (G)
MA11.SYSTEM.** (G)
MA11.** (G)
MI09.** (G)
READY
/* LIST MIXED CASE PROFILES IN THE MQQUEUE MEMBER CLASS */
READY
SEARCH CLASS(MXQUEUE)
NO ENTRIES MEET SEARCH CRITERIA
READY
Chapter 2. Security
237
OWNER
-------MQTEST
UNIVERSAL ACCESS
---------------NONE
YOUR ACCESS
----------NONE
WARNING
------NO
INSTALLATION DATA
----------------NONE
APPLICATION DATA
---------------NONE
SECLEVEL
-------NO SECLEVEL
CATEGORIES
---------NO CATEGORIES
SECLABEL
-------NO SECLABEL
AUDITING
-------FAILURES(READ)
NOTIFY
-----NO USER TO BE NOTIFIED
CREATION DATE
(DAY) (YEAR)
------------237
09
ALTER COUNT
----------000000
UPDATE COUNT
-----------000000
READ COUNT
---------000000
USER
ACCESS
ACCESS COUNT
-------------- ----NO USERS IN ACCESS LIST
ID
238
ACCESS
ACCESS COUNT
CLASS
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
ENTITY
NAME
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Administration security overview on page 214
Broker administration security controls the rights of users to complete
administrative tasks for a broker and its resources.
Related tasks:
Enabling administration security on page 222
Enable administration security on a broker to control which users can complete
specific tasks against that broker and its resources.
Disabling administration security on page 240
Disable administration security to remove control over a broker and its resources.
Authorizing users for administration on page 228
Grant authority to one or more groups or users to authorize them to complete
specific tasks against a broker and its resources.
Granting and revoking authority on Linux, UNIX, and Windows systems on
page 232
Grant or revoke authority to one or more groups or users to complete specific
tasks against a broker running on Linux, UNIX, or Windows.
Controlling access to data and resources in the web user interface:
Broker administrators can control web users' access to data and broker resources
by assigning permissions to users based on their role.
Before you begin
Before you start:
v Read the following topics:
Administering brokers using the web user interface on page 127
Role-based security on page 220
v Ensure that your web administration server has been configured; for more
information, see Configuring the web user interface server on page 128
v Sign in to the web administration server, as described in Accessing the web
user interface on page 133
About this task
Broker administrators can restrict web users' access to data and broker resources
only if administration security is enabled. If administration security is disabled,
web users can interact with the web UI without logging on, which means that they
access the web UI as the 'default' user and have access to all data and broker
resources.
As a broker administrator, you can restrict users' access by setting permissions on
authorization queues. For example, you can ensure that data technicians see only
Chapter 2. Security
239
their profile and the Data viewer in the web UI, by granting them read (+inq)
authority on the SYSTEM.BROKER.DC.AUTH queue, and no permissions on the
SYSTEM.BROKER.AUTH queue.
Web users with no permissions on the SYSTEM.BROKER.AUTH queue, but with
read (+inq) authority on the SYSTEM.BROKER.DC.AUTH queue, are able to view
and download recorded messages. Web users with no permissions on the
SYSTEM.BROKER.AUTH queue, but with read (+inq) and execute (+set) authority
on the SYSTEM.BROKER.DC.AUTH queue, are able to view, download, and replay
recorded messages.
With administration security enabled, REST users can view only the URIs for
which they are authorized. For example, a user with no permissions on the
SYSTEM.BROKER.AUTH queue, but with read (+inq) authority on the
SYSTEM.BROKER.DC.AUTH queue, can request information about messages
recorded under a DataCaptureStore, whereas a user with read and execute (+inq
and +set) authority on the SYSTEM.BROKER.DC.AUTH queue can view and
replay messages. If administration security is disabled, all REST requests are
unrestricted.
Broker administrators can also allow web users to start and stop integration
servers, applications, and message flows from the web user interface, by granting
permissions to the roles that are associated with the users.
For more information about role-based access, see Role-based security on page
220 and Managing web user accounts on page 226.
Related concepts:
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Administering brokers using the web user interface on page 127
You can use the IBM Integration Bus web user interface to administer broker
resources.
Configuring the web user interface server on page 128
To enable access to broker resources through the web user interface, configure the
IBM Integration Bus web user interface server.
Accessing the web user interface on page 133
You can access broker resources by logging on to the web user interface.
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
Application Server. View and replay the data.
Procedure
1. Stop the broker in the IBM Integration Explorer, or run the mqsistop command.
240
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
2. Clear the security option for this broker in the IBM Integration Explorer, or run
the mqsichangebroker command, specifying the parameter -s inactive. For
example, to disable security for the broker IB9NODE, enter the following
command:
mqsichangebroker IB9NODE -s inactive
3. Start the broker in the IBM Integration Explorer, or run the mqsistart
command.
Results
When this command completes, all users are able to complete tasks against the
broker; for example, they can run the mqsichangeproperties command to change
broker properties. They can also complete all tasks against all integration servers
that have been defined, and are defined in the future, on this broker.
When you disable broker administration security, the authorization queues that are
associated with this broker are retained. If you enable security again, these queues
are reused, therefore you must ensure that the authorizations defined by these
queues are correct.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Administration security overview on page 214
Broker administration security controls the rights of users to complete
administrative tasks for a broker and its resources.
Related tasks:
Enabling administration security on page 222
Enable administration security on a broker to control which users can complete
specific tasks against that broker and its resources.
Authorizing users for administration on page 228
Grant authority to one or more groups or users to authorize them to complete
specific tasks against a broker and its resources.
Related reference:
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
Chapter 2. Security
241
If more precise control over the access granted to connecting systems is required at
a channel level, channel authentication security can be enabled. For more details,
see WebSphere MQ Version 7.1 Channel authentication records
To enable channel authentication security in order to start using channel
authentication records you must run this MQSC command:
ALTER QMGR CHLAUTH(ENABLED
Once enabled, there will be consequences for any channel based communication
with a broker. However, this should not affect any privileged or non-privileged
user from accessing local brokers. See following table for a definition of privileged
users who have full administrative authorities:
Table 2. . Privileged users by platform.
Platform
Privileged users
Windows systems
v SYSTEM
v Members of the mqm group
v Members of the Administrators group
Procedure
1. Enable remote administration on Queue Manager
2. setmqaut -m QMNAME -n SYSTEM.MQEXPLORER.REPLY.MODEL -t queue -p username
+dsp +inq +put +get
3. SET CHLAUTH('SYSTEM.BKR.CONFIG')TYPE(ADDRESSMAP)ADDRESS('address-ofmachine-who-is-allowed')MCAUSER('NonPrivilegedUser')ACTION(ADD)
Where 'NonPrivilegedUser' is a user defined on the remote machine.
What to do next
The rule would need to be set up for any ip-address wanting to administer the
broker remotely.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
242
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The following topics introduce the concepts that you need to understand before
you can configure message flow security, and they explain the steps involved in
setting up security for your message flows:
v Message flow security overview
v Setting up message flow security on page 292
Related concepts:
Chapter 2, Security, on page 203
Security is an important consideration for both developers of IBM Integration Bus
applications, and for system administrators configuring IBM Integration Bus
authorities.
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
WS-Security
Web Services Security (WS-Security) describes enhancements to SOAP messaging
to provide quality of protection through message integrity, message confidentiality,
and single message authentication. WS-Security mechanisms can be used to
accommodate a wide variety of security models and encryption technologies.
Related tasks:
Setting up administration security on page 221
Control the actions that users can request against a broker and its resources.
243
244
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v SOAPAsyncRequest
If the message flow is a Web Service that is implemented by using the SOAP
nodes, the identity can be taken from the WS-Security header tokens that are
defined through appropriate Policy sets and bindings.
To improve performance, the authentication, authorization, and mapping
information from the configured providers is cached for reuse. You can use the
mqsireloadsecurity command to reload the security cache, and you can use the
mqsichangeproperties command to set the expiry and sweep intervals for the
security cache.
For a SOAPRequest and SOAPAsyncRequest node, an appropriate policy set and
bindings can be defined to specify how the token is placed in the WS-Security
header (rather than the underlying transport headers). For more information, see
Policy sets.
The following topics in this section provide more detailed information about
message flow security:
v Identity on page 251
v Security profiles on page 247
v Authentication and validation on page 257
v Authorization on page 261
v Identity mapping on page 263
v Identity and security token propagation on page 286
v Security identities for integration nodes connecting to external systems on
page 289
v Invoking message flow security using a security enabled input node on page
266
v Invoking message flow security using a SecurityPEP node on page 272
v Authentication, mapping, and authorization with TFIM V6.2 and TAM on
page 280
v Authentication, mapping, and authorization with TFIM V6.1 and TAM on
page 277
v Security exception processing on page 290
Related concepts:
Invoking message flow security using a security enabled input node on page 266
You can invoke the message flow security manager by configuring a security
enabled input node.
Invoking message flow security using a SecurityPEP node on page 272
You can invoke the message flow security manager at any point in a message flow,
between an input node and an output or request node, by using a SecurityPEP
node.
Related tasks:
Setting up message flow security on page 292
Set up security on a message flow to control access based on the identity of a
message passing through the message flow.
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
Chapter 2. Security
245
246
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
SCAInput node
Use the SCAInput node with the SCAReply node to process messages from
WebSphere Process Server.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Security profiles
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security profiles are configured by the broker administrator before deploying a
message flow, and are accessed by the security manager at run time.
A security profile allows a broker administrator to specify whether identity and
security token propagation, authentication, authorization, and mapping are
performed on the identity or security tokens associated with messages in the
message flow, and if so, which external security provider (also known as a Policy
Decision Point or PDP) is used. IBM Tivoli Federated Identity Manager (TFIM)
V6.1, and WS-Trust v1.3 compliant security token servers (including TFIM V6.2),
are supported for authentication, authorization, and mapping. Lightweight
Directory Access Protocol (LDAP) is supported for authentication and
authorization.
Security profiles apply to the SecurityPEP node and to security enabled input,
output, and request nodes, and are configured by the administrator at deployment
time in the Broker Archive editor. These nodes have a Security Profile property
(in the Broker Archive editor), which can be left blank, set to No Security, or set to
a specific security profile name. Set No Security to explicitly turn off security for the
node. If you leave the Security Profile property blank, the node inherits the
Chapter 2. Security
247
Security Profile property that is set at the message flow level. If you leave the
Security Profile property blank at both levels, security is turned off for the node.
When this property is set to the name of a specific security profile, that profile
determines what message flow security is configured. If the named security profile
does not exist in the run time, the message flow fails to deploy. If the specified
external security provider does not support the type of token configured on the
node for the security operation, an error is reported and the message flow fails to
deploy.
The security profile also specifies whether propagation is required. A
pre-configured profile that specifies propagation is provided for use by output and
request nodes. This profile is the Default Propagation security profile. This profile
can also be used on an input node to extract tokens and put them into the message
tree ready for propagation or processing in a SecurityPEP node.
Security profiles contain values for the following properties:
authentication
Defines the type of authentication that is performed on the source identity.
This property applies only to SecurityPEP nodes and input nodes. For
more information, see Authentication and validation on page 257.
authenticationConfig
Defines the information that the broker needs to connect to the provider,
and the information needed to look up the identity tokens. It is a
provider-specific configuration string. This property applies only to
SecurityPEP nodes and input nodes.
mapping
Defines the type of mapping that is performed on the source identity. This
property applies only to SecurityPEP nodes and input nodes. For more
information, see Identity mapping on page 263.
mappingConfig
Defines how the broker connects to the provider, and contains additional
information required to look up the mapping routine. It is a
provider-specific configuration string. This property applies only to
SecurityPEP nodes and input nodes.
authorization
Defines the types of authorization checks that are performed on the
mapped or source identity. This property applies only to SecurityPEP
nodes and input nodes. For more information, see Authorization on page
261.
authorizationConfig
Defines how the broker connects to the provider, and contains additional
information that can be used to check access (for example, a group that can
be checked for membership). It is a provider-specific configuration string.
This property applies only to SecurityPEP nodes and input nodes.
passwordValue
Defines how passwords are treated when they enter a message flow. If
PLAIN is selected, the password appears in the Properties folder in plain
text. If OBFUSCATE is selected, the password appears in the Properties
folder in base64 encoding. If MASK is selected, the password appears in
the Properties folder as four asterisks (****). This property applies only to
SecurityPEP nodes and input nodes.
248
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Propagation
Enables or disables identity propagation on output and request nodes. On
the security enabled input nodes, you can choose to select only identity
propagation, without specifying any other security operations, to make the
extracted incoming identity or security token available for use in the other
nodes in the message flow, such as output or request nodes. For more
information, see Identity and security token propagation on page 286.
For information on configuring a security profile for LDAP, TFIM, or a WS-Trust
v1.3 compliant security token server (STS), see Creating a security profile on
page 294.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Configuring identity mapping on page 333
Configure a security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2, to map the incoming security token and, if required, to authenticate
and authorize it.
Chapter 2. Security
249
250
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
Identity
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
When a SecurityPEP node or a supported input node is configured with a security
profile, the extracted identity is held in the broker as eight properties in the
Properties folder of the message tree structure. These properties define two
identities in the broker: source and mapped. For both the source and mapped
identities, values are held for Type, Token, Password, and IssuedBy properties:
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
Properties
IdentityMappedType
IdentityMappedToken
IdentityMappedPassword
IdentityMappedIssuedBy
The Identity token type property on the security-enabled input nodes can be set
to a value of Transport Default, which causes the token type to be created from the
default identity header or fields of the transport. For WebSphere MQ, Transport
Default provides an identity type of Username. For HTTP, Transport Default provides
an identity type of Username and Password. The Identity token type property on the
Chapter 2. Security
251
SecurityPEP node can be set to Current Token, which enables it to use the identity
in the Properties folder fields instead of extracting a new identity from the
message.
The following table shows the support that is provided (by the message flow
security manager and external security providers) for the extraction of different
types of security token. For information about the token types that are supported
for identity propagation, see Identity and security token propagation on page
286.
Table 3. Support for security token types - token extraction
Token type (format)
Username
252
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
253
254
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The source identity is set by the SecurityPEP or input node only if a security
profile is associated with the node. The information to complete these fields is
typically found in the headers of a message but can also be located in the body
(provided that the node has been configured with an ESQL Path or XPath reference
for the various properties). If multiple identities are available (for example, if you
are using message aggregation), the first identity is used. The token extraction is
transport specific and can be performed only using transports that support the
flow of identities. These transports are: Websphere MQ, HTTP(S), and SOAP. See
MQInput node and HTTPInput node for more information.
You can modify the values in the properties (for example, from ESQL), but do not
write to the IdentitySource* values. For example, you can create a custom identity
mapping routine in ESQL or Java by using the IdentitySource* values to create
custom IdentityMapped* values.
SAML and Universal WSSE tokens are stored in the Properties tree
IdentitySourceToken or IdentityMappedToken field as a character bit stream. To
access this data as a message tree, parse it into a suitable parser, such as XMLNSC:
-- Parse the mapped SAML2.0 token in the properties folder and set it in the message body
CREATE LASTCHILD OF OutputRoot DOMAIN(XMLNSC) PARSE(InputRoot.Properties.IdentityMappedToken,
InputProperties.Encoding, InputProperties.CodedCharSetId);
Chapter 2. Security
255
To set either SAML or Universal WSSE tokens into the properties fields, you must
obtain the bit stream of a tree; for example, by using the ESQL ASBITSTREAM
function.
Related concepts:
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Integrated Windows Authentication on page 260
Integrated Windows Authentication (IWA) refers to a set of authentication
protocols, NTLM, Kerberos, and SPNEGO, that are used to provide transport-level
security. You can configure IBM Integration Bus to provide an IWA-secured service
on a broker running on any operating system, and to consume an IWA-secured
service on a broker running on Windows, when you are using the HTTP and
SOAP nodes.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Configuring identity mapping on page 333
Configure a security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2, to map the incoming security token and, if required, to authenticate
and authorize it.
Providing credentials in HTTP requests on page 328
Use a security profile to configure HTTPRequest and SOAPRequest nodes to
authenticate with a remote server.
256
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
257
Properties
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
IdentityMappedType
Authentication
IdentityMappedToken
IdentityMappedPassword
Identity
Provider
IdentityMappedIssuedBy
The following external security providers (also known as Policy Decision Points)
are supported for authentication:
v Lightweight Directory Access Protocol (LDAP)
v Tivoli Federated Identity Manager (TFIM) V6.1
v WS-Trust V1.3 security token servers (STS), including TFIM V6.2
v Windows domain controller and Kerberos Key Distribution Center
The external security provider checks the identities and returns a value to confirm
whether the identity is authentic. If the identity is not authentic, a security
exception is raised.
Some identity providers support only a single type of authentication token. If a
token of another type is passed into the message flow, an exception is raised. For
example, LDAP supports only a Username and password token.
You can use an LDAP provider for the authentication of an incoming identity
token. The LDAP server must be LDAP Version 3 compliant.
Alternatively, you can use a WS-Trust v1.3 STS provider (for example, TFIM
Version 6.2) for the authentication of an incoming identity or security token. The
security manager invokes the WS-Trust v1.3 provider once, even if it is set for
additional security operations (such as mapping or authorization). As a result,
when you are using TFIM, you must configure a single module chain to perform
all the required authentication, mapping, and authorization operations.
For more information about using TFIM V6.2 for authentication, see
Authentication, mapping, and authorization with TFIM V6.2 and TAM on page
280.
258
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
TFIM V6.1 is also supported, for compatibility with previous versions of IBM
Integration Bus. For more information about using TFIM V6.1 for authentication,
see Authentication, mapping, and authorization with TFIM V6.1 and TAM on
page 277.
|
|
|
Windows domain controller and Kerberos Key Distribution Center providers are
reached by using Integrated Windows Authentication. For more information, see
Integrated Windows Authentication on page 260.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Related tasks:
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Providing credentials in HTTP requests on page 328
Use a security profile to configure HTTPRequest and SOAPRequest nodes to
authenticate with a remote server.
Creating a security profile on page 294
You can create a security profile for use with Lightweight Directory Access
Protocol (LDAP) or a WS-Trust V1.3 compliant security token server (STS), such as
Tivoli Federated Identity Manager (TFIM) V6.2. Support is also provided for TFIM
V6.1, for compatibility with previous versions of IBM Integration Bus. You can
create the security profile by using either the mqsicreateconfigurableservice
command or an editor in the IBM Integration Explorer.
Setting up message flow security on page 292
Set up security on a message flow to control access based on the identity of a
message passing through the message flow.
Related reference:
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
Chapter 2. Security
259
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NTLM
|
|
|
|
Kerberos
An authentication protocol (defined by RFC 4120), developed by The
Massachusetts Institute of Technology, which allows resources to be
secured by using a trusted third party, the Kerberos KDC.
|
|
|
|
SPNEGO
An open standard (RFC 4559) for negotiating an underlying security
mechanism. SPNEGO is used to negotiate the use of either NTLM or
Kerberos.
|
|
|
|
|
You can use IWA with the HTTPInput and SOAPInput nodes to provide a service.
For more information on configuring IBM Integration Bus to provide an
IWA-secured service, see Authenticating incoming requests with IWA on
Windows on page 313 and Authenticating incoming requests with IWA on Linux
or UNIX on page 315.
|
|
|
|
Related reference:
|
|
|
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
260
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
|
|
|
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
|
|
|
SOAPRequest node
Use the SOAPRequest node to send a SOAP request to the remote Web service.
Related information:
|
|
Authorization
Authorization is the process of verifying that an identity token has permission to
access a message flow.
If authentication and mapping are configured, they are used to verify the identity
before it is authorized.
Properties
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
IdentityMappedType
Authorization
/Policy
Enforcement
Point
IdentityMappedToken
IdentityMappedPassword
Access Manager
/Policy Decision
Point
IdentityMappedIssuedBy
261
If you specify LDAP as the provider for authorization, the security manager
queries the configured LDAP server (which must be LDAP Version 3 compliant), to
validate that the identity is a member of the LDAP group that is configured in the
security profile.
If you specify WS-Trust v1.3 STS as the provider for authorization, the security
manager invokes the security token server (STS), such as Tivoli Federated Identity
Manager (TFIM) V6.2, to validate that the identity token provided has permission
to access the message flow. If you are using TFIM V6.1 rather than TFIM V6.2, you
can specify TFIM as the provider for authorization.
For more information about using TFIM V6.2 for authorization, see
Authentication, mapping, and authorization with TFIM V6.2 and TAM on page
280.
For information about using TFIM V6.1 for authorization, see Authentication,
mapping, and authorization with TFIM V6.1 and TAM on page 277.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Authentication, mapping, and authorization with TFIM V6.2 and TAM on page
280
You can use IBM Integration Bus, Tivoli Federated Identity Manager (TFIM) V6.2,
and Tivoli Access Manager (TAM) to control authentication, mapping, and
authorization.
Authentication, mapping, and authorization with TFIM V6.1 and TAM on page
277
Use IBM Integration Bus, Tivoli Federated Identity Manager (TFIM) V6.1, and
Tivoli Access Manager (TAM) to control authentication, mapping, and
authorization.
Related tasks:
262
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Identity mapping
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Chapter 2. Security
263
Properties
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
IdentityMappedType
Identity
Mapping
IdentityMappedToken
IdentityMappedPassword
Identity Mapper
/FIM
IdentityMappedIssuedBy
IBM Integration Bus provides support for identity mapping (also known as
identity federation) and token issuance and exchange. Identity mapping is the
process of mapping an identity in one realm to another identity in a different
realm. For example, you might map User001 from the eSellers realm to
eSellerUser01 in the eShipping realm. Token issuance and exchange involves the
mapping of a token of one type to a token of a different type. For example, an
incoming Username and Password token from a client over MQ might be mapped
into an equivalent SAML assertion, to be propagated to a Web Services call.
Alternatively, you might exchange a SAML 1.1 assertion from a client application
for an equivalent SAML 2.0 assertion for an updated backend server.
264
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
must use a series of SecurityPEP nodes, each associated with a different security
profile that is configured for only one security operation (authentication,
authorization, or mapping).
If the security profile specifies only mapping with WS-Trust v1.3 STS, the request is
sent with a request type of Issue, whereas a mixed set of security operations sends
a request type of Validate. When mapping is included, the STS must return a token
in its response, even if it is the original token; otherwise, an error occurs.
To provide compatibility with previous versions of IBM Integration Bus, support is
also provided for TFIM V6.1.
In the broker, identity mapping is performed at the input node or SecurityPEP
node, after authentication but before authorization. The source identity is passed to
an identity mapper for processing. If both mapping and authorization are
configured, the authorization operation uses the mapped output token rather than
the source token, which means that the authorization is performed on the
federated identity.
Mapping is not performed in output nodes, even if the node has been configured
with a security profile.
IBM Integration Bus supports mapping between any type of security token that is
supported by the configured security provider. For more information about the
support provided, see Identity on page 251.
When mapping from an X.509 certificate, TFIM can validate the certificate but
cannot verify the identity of the original sender. However, if it is required, this
verification integrity check can be performed by the SOAPInput node. For more
information, see WS-Security mechanisms.
For more information about using TFIM V6.2 for mapping, see Authentication,
mapping, and authorization with TFIM V6.2 and TAM on page 280.
For information about using TFIM V6.1, see Authentication, mapping, and
authorization with TFIM V6.1 and TAM on page 277.
User-defined mapping
When you develop a message flow, you can implement a custom token mapping to
be used for identity propagation. For example, you can implement a custom token
mapping using a compute node (which can be a Compute, JavaCompute, or
PHPCompute node) following the input node. In the compute node, you can read
the source identity values from the Properties folder, process them, then write the
new identity values to the mapped identity fields. If there is no identity provided
in the message, you can still use a compute node to insert some identity
credentials into the mapped identity fields. The mapped identity fields are then
used in place of the source identity fields by subsequent nodes. Any security
operations that are configured on the input node are performed using the source
identity, before you can create a new identity in the mapped identity fields (by
using the compute node). However, you can include a SecurityPEP node after your
compute node has created a new mapped identity.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
Chapter 2. Security
265
266
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The following diagram shows an example message flow and gives an overview of
the sequence of events that occur when an input message is received by a security
enabled input node in the message flow:
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
Properties
IdentityMappedType
IdentityMappedToken
IdentityMappedPassword
IdentityMappedIssuedBy
Security
Profiles
Security
enabled Input
node
7
MQ
HTTP(S)
SOAP
Security
Profiles
DB
10
11
Security
Cache
8
DB
parms
Security Processing
MQ
HTTP(S)
SOAP
Mapping
Provider
Authentication
Provider
LDAP
WS-Trust
WS-Trust
Authorization
Provider
LDAP
WS-Trust
Figure 20. Diagram showing the sequence of events that occur when a message arrives at a security enabled input
node in a message flow.
The following steps explain the sequence of events that occur when a message
arrives at a security enabled input node in the message flow. The numbers
correspond to those in the preceding diagram:
1. When a message arrives at a security enabled input node (MQ, HTTP, SCA, or
SOAP), the presence of a security profile associated with the node indicates
whether message flow security is configured. SOAP nodes can implement
some WS-Security capabilities without using the broker's security manager; for
Chapter 2. Security
267
268
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Alternatively, you can use a SecurityPEP node at any point in the message
flow to map the identity that was authenticated at the security enabled input
node. For more information, see Invoking message flow security using a
SecurityPEP node on page 272.
5. If authorization is specified in the security profile, the security manager calls
the configured security provider to authorize that the identity (either mapped
or source) has access to this message flow. A failure results in a security
exception being returned to the node.
The security providers that are supported by IBM Integration for
authorization are LDAP, WS-Trust V1.3 compliant security token servers (such
as TFIM V6.2) and TFIM V6.1.
A security cache is provided for the authorization result.
Alternatively, you can use a SecurityPEP node at any point in the message
flow to authorize the identity that was authenticated at the security enabled
input node. For more information, see Invoking message flow security using
a SecurityPEP node on page 272.
6. When all security processing is complete, or when a security exception is
raised by the message flow security manager, control returns to the input
node.
When a security exception is returned to the security enabled input node, it
performs the appropriate transport handling and ends the message flow
transaction. For example, an HTTPInput node returns an HTTP header with a
401 HTTP response code, without propagating to an output terminal. A
SOAPInput node returns a SOAP Fault, reporting the security exception.
Alternatively, if the Treat security exceptions as normal property is set on
the security enabled input node, a security exception is propagated to the
node's Failure terminal. The security enabled input node propagates to its Out
terminal only if all the configured operations in the associated security profile
complete successfully.
7. The message, including the Properties folder and its source and mapped
identity information, is propagated down the message flow.
8. At subsequent nodes in the message flow an identity might be required to
access a resource such as a database. The identity used to access such a
resource is a proxy identity, either the broker's identity or an identity
configured for the specific resource by using the mqsisetdbparms command.
9. When you are developing a message flow you can use the identity fields in
the Properties folder for application processing (for example, identity-based
routing or content building based on identity). Also, as an alternative to
invoking mapping through a WS-Trust V1.3 enabled STS (such as TFIM V6.2)
or TFIM V6.1, you can set the mapped identity fields in a compute node, such
as a Compute, JavaCompute, PHPCompute, or Mapping node.
10. When the message reaches a security enabled output or request node
(MQOutput, HTTPRequest, SOAPRequest, or SOAPAsyncRequest), a security
profile (with propagation enabled) associated with the node indicates that the
current identity token is to be propagated when the message is sent.
If the security profile indicates that propagation is required, the mapped
identity is used. If the mapped identity is not set, or if it has a token type that
is not supported by the node, the source identity is used. If no identity is set,
or if neither the mapped nor source identity has a token type that is
supported by the node, a security exception is returned to the node.
SOAP nodes also require the appropriate policy set and bindings for the token
profile to be associated with the node.
Chapter 2. Security
269
270
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related reference:
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
mqsireloadsecurity command
Use the mqsireloadsecurity command to force the immediate expiry of some or all
the entries in the security cache.
Parameter values for the securitycache component
Select the objects and properties associated with the securitycache component that
you want to change.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
SCAInput node
Use the SCAInput node with the SCAReply node to process messages from
WebSphere Process Server.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
Chapter 2. Security
271
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
272
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
IdentitySourceType
IdentitySourceToken
IdentitySourcePassword
IdentitySourceIssuedBy
Properties
IdentityMappedType
IdentityMappedToken
IdentityMappedPassword
IdentityMappedIssuedBy
SecurityPEP
node
Security
Profiles
2
Input
node
Output/
Request
node
10
Security Processing
Security
Cache
Mapping
Provider
Authentication
Provider
LDAP
WS-Trust
WS-Trust
Authorization
Provider
LDAP
WS-Trust
Figure 21. Diagram showing the sequence of events that occur when a message arrives at a SecurityPEP node in a
message flow.
The following steps explain the sequence of events that occur when a message
arrives at an input node that is not security enabled (or that has no associated
security profile). The numbers correspond to those in the preceding diagram:
1. You can use a SecurityPEP node at any point in a message flow between an
input and an output or request node. The SecurityPEP node enables security
to be applied in a message flow in the following situations:
v When the message flow input node is not security enabled (for example,
FileInput, TCPIPClientInput, SAPInput, and JMSInput nodes).
v When the message flow input node is security enabled and might be
configured to perform authentication operations, but the message flow is
Chapter 2. Security
273
274
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
275
276
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
SCAInput node
Use the SCAInput node with the SCAReply node to process messages from
WebSphere Process Server.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Chapter 2. Security
277
1
Broker
Input Message
Identity
Issuer
Execution
Group
Flow
TFIM
3
Module Chain
Address = "<Broker>.<ExecutionGroup>.<FlowName>"
Issuer ="<Issuer>"
Authentication
Module
Mapping
Module
6
Authorization Module
ProjectedObjectRoot="<root>"
Token(s)
Token(s)
XSLT
ACL
Allow "i" for
"WebService"
by "Group"
LDAP
Group
TAM
8
LDAP
Users
PortType"<Flow>"
Operation
"MessageFlowAccess"
PortType".."
Operation".."
PortType".."
Operation".."
PO Root="<root>"
PO Root="..."
278
RequestType = Validate
Identity = Token(s) from input message
Issuer = Issuer from input message
AppliesTo Address = "Broker.IntegrationServer.FlowName"
PortType = "FlowName"
Operation = "MessageFlowAccess"
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3. TFIM selects a module chain to process the WS-Trust request, based on the
AppliesTo Address and Issuer properties of the request.
4. A module chain can perform authentication if it includes a module (such as a
UsernameTokenSTSModule or X509STSModule) in validate mode.
5. A module chain can perform mapping by using an XSLTransformationModule
in mapping mode to manipulate the identity information.
6. A module chain can perform authorization by using an
AuthorizationSTSModule in other mode. The module chain must be configured
with a Protected Object Root value.
7. The AuthorizationSTSModule performs the authorization check by making a
request to TAM with these properties:
v Action = i (invoke)
v Action Group = WebService"
v Protected Object = "ProtectedObjectRoot.FlowName.MessageFlowAccess"
where i and WebService are default values used by an
AuthorizationSTSModule; and FlowName and MessageFlowAccess are the
WS-Trust request PortType and Operation values.
8. TAM processes the authorization request by:
a. Finding the Access Control Lists (ACLs) associated with protected object
"<ProtectedObjectRoot>.<FlowName>.MessageFlowAccess".
b. Checking whether or not the ACLs grant action i on action group
WebService to the user (with the user either named directly, or by
membership of a named group).
9. The WS-Trust reply is returned to the broker. If this action is the result of a
mapping request, the WS-Trust reply contains the mapped identity token.
For further information about how to configure TFIM and TAM, see IBM Security
Systems information centers.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Related tasks:
Chapter 2. Security
279
280
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When you use a WS-Trust v1.3 STS for authentication, authorization, or mapping, a
request is made to the trust service with the following parameters, which control
the STS processing. If you are using TFIM V6.2, these parameters are used in the
selection of the TFIM module chain:
Parameter
Value
RequestType
The type of request issued to the trust service. Valid values are:
This value can be specified when mapping is the only operation that is set to WS-Trust V1.3 STS in
the security profile. It is not valid if WS-Trust V1.3 STS is specified for authentication or
authorization.
Issue
This value is determined by the effective setting of the IssuedBy property on the Basic tab of the SecurityPEP
node or the Security tab of the input node.
AppliesTo
This section describes an authorization configuration that you can use to perform
the authorization operation with TFIM V6.2 and TAM.
Chapter 2. Security
281
In the security profile, set the TFIM V6.2 endpoint for the authorization operation.
When you create a module chain to be used by a security enabled input node or
SecurityPEP node, and resolved by AppliesTo information, you must include the
TFIM TAMAuthorizationSTModule to invoke TAM authorization.
The TAMAuthorizationSTSModule requires the following TFIM STS universal user
context attributes:
PrincipalName
The username to be authorized. This username must exist in your TAM
user repository.
ObjectName
The TAM object name of the resource on which an authorization check is
to be made. Typically this is derived from the AppliesTo information that is
passed by the message flow security manager from the security enabled
input node or SecurityPEP node.
Action
The TAM action to be authorized; for example, x (eXecute).
The TAM Access Control List (ACL), which determines the authorization decision,
is located in the TAM protected object space using the path that is set on the
ObjectName attribute of the TFIM STS universal user context input to the
TAMAuthorizationSTSModule module.
The following diagram shows the configuration of IBM Integration Bus, TFIM V6.2,
and TAM to enable authentication, mapping, and authorization of an identity in a
message flow:
282
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
1
Broker
Input Message
Identity
Issuer
Execution
Group
Flow Node
TFIM
Module Chain
RequestType: "Validate / Issue OASIS"
Identity:"Tokens(s) from input message"
Issuer:"Issuer From input message"
Applies-To Address:"urn set depends on node"
ServiceName: Can be set in SecurityPEP"
PortType: Can be set in SecurityPEP"
Authentication
Module
Mapping
Module
6
Authorization Module
Token(s)
Token(s)
XSLT
LDAP
Group
TAM
LDAP
Users
ACL
Allow "<a>" for
"WebService"
by "Group"
Protected Object
"ObjectName" - set by Mapping Module
Figure 23. Diagram showing the flow of interaction between Message Broker, TFIM V6.2, and TAM.
Chapter 2. Security
283
284
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
285
CICSRequest
HTTPRequest
IMSRequest
MQOutput
SAPRequest
v
v
v
v
SCAAsyncRequest
SCARequest
SOAPAsyncRequest
SOAPRequest
The following table shows the support that is provided by the message flow
security manager for the propagation of the different types of security token. For
more information about these security tokens, see Identity on page 251.
Table 4. Support for security token types - token propagation
Token type (format)
Token propagated in
Username
CICS
v CICSRequest
HTTP
BasicAuth header
v HTTPRequest
IMS
IWA
MQ
v IMSRequest
v MQOutput
v SCAAsyncRequest
v SCARequest
v SOAPRequest
286
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Token propagated in
CICS
v CICSRequest
HTTP
BasicAuth header
v HTTPRequest
IMS
IWA
MQ
v SCAAsyncRequest
SAP
v SCARequest
SOAP
v IMSRequest
v MQOutput
v SAPRequest
v SOAPAsyncRequest
v SOAPRequest
SAML assertion
v SOAPRequest
v SOAPAsyncRequest
X.509 certificate
v SOAPRequest
v SOAPAsyncRequest
LTPA v2 token
LTPA v2 tokens are supported for propagation by SOAP header when a policy set and binding sets
the LTPA token profile
the following nodes:
v SOAPRequest
v SOAPAsyncRequest
287
288
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
SCAInput node
Use the SCAInput node with the SCAReply node to process messages from
WebSphere Process Server.
SCARequest node
Use the SCARequest node to send a request to WebSphere Process Server. The
node is a synchronous request and response node, and blocks after sending the
request until the response is received. The node can also send one-way requests.
SAPRequest node
Use the SAPRequest node to send requests to an SAP application.
IMSRequest node
Use the IMSRequest node to send a request to run a transaction on a local or
remote IMS system, and wait for a response. IMS Connect must be configured and
running on the IMS system.
289
and are used by the migrated integration node for access to databases that do not
have specific ID access defined. On WebSphere Message Broker Version 8.0, you
can use only the mqsisetdbparms command to set or change values for database
access by the integration node, because the parameters are deprecated. (The service
user ID and password are required on Windows, but are no longer used for
database access.) To view what security credentials are set, you can use the
mqsireportdbparms command; see Checking the security credentials that are used
by an integration node on page 392.
If you have defined a user ID and password by using any of the previously
described methods, then you do not need to create a security profile. To see how to
set security authorization for a node, refer to the table of properties for that
specific node.
IBM Integration Bus does not provide special commands to administer databases.
Discuss your database security requirements with the database administrator for
the database manager that you are using, or refer to the documentation provided
by your database supplier.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
mqsireportdbparms command
Use the mqsireportdbparms command to list all parameters that are set for a
specific broker.
290
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
291
Procedure
1. Creating a security profile on page 294
2. Configuring the extraction of an identity or security token on page 308
3. Configuring identity authentication and security token validation on page
312
4.
5.
6.
7.
What to do next
If the message flow is a Web service implemented by using the SOAP nodes, and
the identity is to be taken from the WS-Security header tokens, you must also
292
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
create appropriate Policy sets and bindings, then configure them on the relevant
SOAP nodes (in addition to the security profile). See Associating policy sets and
bindings with message flows and nodes.
To work with an identity, you must configure the policy sets and bindings for the
relevant capabilities:
v To work with a Username and Password identity, configure the policy sets and
bindings for Username token capabilities.
v To work with an X.509 Certificate identity, configure the policy sets and bindings
for X.509 certificate token capabilities.
In the policy set binding, the Certificates mode of the X.509 certificate
authentication token must be set as Trust Any (rather than Trust Store), so that
the certificate is passed to the security provider defined by the security profile.
Setting Trust Store causes the certificate to be validated in the local broker trust
store.
v To work with a SAML assertion, configure the policy sets and bindings for
SAML token capabilities.
v To work with an LTPA token, configure the policy sets and bindings for LTPA
token capabilities.
v To work with a Kerberos ticket, configure the policy sets and bindings for
Kerberos token capabilities.
For more information, see Policy Sets and Policy Set Bindings editor:
Authentication and Protection Tokens panel.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Message flow security overview on page 243
IBM Integration Bus provides a security manager, which enables you to control
access to individual messages in a message flow, using the identity of the message.
Related tasks:
Chapter 2. Security
293
294
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
profile to use different security providers for different security functions; for
example, you might use LDAP for authentication and WS-Trust V1.3 STS for
mapping and authorization.
If you want to extract and propagate an identity without security enforcement or
mapping, you can use the supplied security profile called Default Propagation. The
Default Propagation profile is a predefined profile that requests only identity
propagation.
To create a security profile, see:
v Creating a security profile for LDAP on page 296
v Creating a security profile for WS-Trust V1.3 (TFIM V6.2) on page 302
v Creating a security profile for TFIM V6.1 on page 306
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Chapter 2. Security
295
296
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Open a command window that is configured for your environment.
2. Enter the mqsicreateconfigurableservice command on the command line. For
example:
mqsicreateconfigurableservice WBRK_BROKER -c SecurityProfiles -o LDAP
-n authentication,authenticationConfig,authorization,authorizationConfig,propagation,rejectBlankpassword
-v "LDAP,\"ldap://ldap.acme.com:389/ou=sales,o=acme.com\",LDAP,
\"ldap://ldap.acme.com:389/cn=All Sales,ou=acmegroups,o=acme.com\",TRUE,TRUE
You must enclose the LDAP URL (which contains commas) with escaped
double quotation marks (\" and \") so that the URL commas are not confused
with the comma separator of the value parameter of
mqsicreateconfigurableservice.
If the LDAP URL includes an element name with a space, in this case cn=All
Sales, the set of values after the -v flag must be enclosed by double quotation
marks, (")
For more information about the structure of the command, refer to the
mqsicreateconfigurableservice command.
You can define the security-specific parts of the command in the following way:
a. Set the authentication to LDAP. This ensures that the incoming identity is
validated.
b. Set the authenticationConfig using the following syntax:
ldap[s]://server[:port]/baseDN[?[uid_attr][?[base|sub]]]
For example:
ldap://ldap.acme.com:389/ou=sales,o=acme.com
ldaps://localhost:636/ou=sales,o=acme?cn?base
ldap:
s:
baseDN
(Required) String defining the base distinguished name (DN) of all
users in the directory. If users exist in different subtrees, specify a
common subtree under which a search on the username uniquely
resolves to the required user entry, and set the sub attribute.
uid_attr:
(Optional) String defining the attribute to which the incoming
username maps, typically uid, CN, or email address. Default is uid.
base|sub:
(Optional) Defines whether to perform a base or subtree search. If
base is defined, the authentication is faster because the DN of the
user can be constructed from the uid_att, username, and baseDN
values. If sub is selected, a search must be performed before the DN
can be resolved. Default is sub.
c. Set the authorization to LDAP. This ensures that the incoming identity is
checked for group membership in LDAP.
d. Set the authorizationConfig using the following syntax:
Chapter 2. Security
297
ldap[s]://server[:port]/groupDN[?[member_attr]
[?[base|sub][?[x-userBaseDN=baseDN,
x-uid_attr=uid_attr]]]]
For example:
ldap://ldap.acme.com:389/cn=All Sales,ou=acmegroups,
o=acme.com?uniquemember?sub?x-userBaseDN=ou=sales%2co=ibm.com,
x-uid_attr=emailaddress
ldap:
s:
groupDN
(Required) Fully defined distinguished name of the group in which
users must be members to be granted access.
member_attr:
(Optional) The attribute of the group used to filter the search.
Default is to look for both member and uniquemember attributes.
The following options are required only if authentication has not preceded
the authorization, and if the authentication configuration string has not
been specified. If the authentication configuration string has been specified,
the following parameters are ignored and those provided by the baseDN,
uid_attr, and [base|sub] for authentication are used instead:
base|sub:
(Optional) Defines whether to perform a base or subtree search. If
base is defined, the authentication is faster because the DN of the
user can be constructed from uid_att + username + baseDN. If sub
is selected, a search must be performed before the DN can be
resolved. Default is sub.
baseDN
(Optional) String defining the base distinguished name of all users
in the directory. Must be preceded by the string x-userBaseDN. Any
commas in the BaseDN must be rendered as %2c.
x-uid_attr:
(Optional) String defining the attribute to which the incoming
username should map, typically uid, CN, or email address. Default
is uid. Must be preceded by the string x-uid_attr.
When you submit the command from a batch (.bat) file or command (.cmd) file,
if the LDAP URL includes an extension with LDAP URL percent hex hex
escaped characters (for example, a comma replaced by %2c, or a space replaced
by %20), the percent signs must be escaped from the batch interpreter with an
extra percent sign (%%). For example:
mqsicreateconfigurableservice WBRK_BROKER -c SecurityProfiles -o LDAP_URI_FUN
-n authentication,authenticationConfig,authorization,authorizationConfig -v
"LDAP,\"ldap://ldap.acme.com:389/ou=sales,o=acme.com?emailaddress?sub\",
LDAP,\"ldap://ldap.acme.com:389/cn=All Sales,ou=acmegroups,
o=acme.com?report?base?x-BaseDN=ou=sales%%2co=acme.com,
x-uid_attr=emailaddress\""
The selected group must be defined on the LDAP server, and all of the required
users must be members of the group.
298
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3. If you need to reconfigure the security profile after it has been created, use the
mqsichangeproperties command. You must stop and start the integration server
for the change of property value to take effect.
Creating a security profile using the IBM Integration Explorer:
About this task
You can use the IBM Integration Explorer to create a security profile for LDAP.
Procedure
1. In the IBM Integration Explorer, right-click on the broker with which you want
to work, and click Properties.
2. In the Properties window, select the Security tab, and click Security Profiles.
The Security Profiles window is displayed, containing a list of existing security
profiles for the broker on the left, and a pane in which you can configure the
profile on the right.
3. Click Add to create a new profile and add it to the list. You can edit the name
of the security profile by highlighting it in the list and pressing F2.
4. Configure the security profile using the entry fields on the right side of the
pane:
a. Select the type of Authentication required. This can be LDAP, TFIM, or NONE.
b. If you have selected LDAP for authentication, edit the following fields in
the LDAP Parameters section:
v LDAP Host
v LDAP baseDN
v LDAP uid attr
v LDAP search Scope
The values that you enter in the LDAP Parameters fields create a
configuration string, which is displayed in the Authentication Config field.
For information about the valid values for the parameters, see Creating a
security profile using mqsicreateconfigurableservice on page 296.
c. Select the type of Mapping required. This can be either TFIM or NONE.
d. If you have selected TFIM for mapping, type the URL of the TFIM server in
the TFIM Configuration field of the TFIM Parameters section.
The value that you specify in the TFIM Configuration field creates a
configuration string, which is displayed in the Mapping Config field.
e. Select the type of Authorization required. This can be LDAP, TFIM, or NONE.
f. If you have selected LDAP for authorization, edit the following fields in the
LDAP Parameters section:
v LDAP Host
v LDAP baseDN
v LDAP uid attr
v LDAP search Scope
v LDAP group baseDN
v LDAP group member.
The values that you enter in the LDAP Parameters fields create a
configuration string, which is displayed in the Authorization Config field.
For information about the valid values for the parameters, see Creating a
security profile using mqsicreateconfigurableservice on page 296.
Chapter 2. Security
299
OBFUSCATE
The password appears in the Properties folder as base64 encoding.
MASK
300
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
301
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Creating a security profile for WS-Trust V1.3 (TFIM V6.2):
You can create a security profile for a WS-Trust V1.3 compliant Security Token
Server (STS), for example, Tivoli Federated Identity Manager (TFIM) V6.2, for any
combination of the following security operations: authentication, authorization, and
mapping.
About this task
You can use either the mqsicreateconfigurableservice command or an editor in
the IBM Integration Explorer to create the security profile:
v Creating a profile using mqsicreateconfigurableservice
v Creating a profile using the IBM Integration Explorer on page 303
Creating a profile using mqsicreateconfigurableservice:
About this task
To create a security profile that uses a WS-Trust V1.3 compliant Security Token
Server (STS), you can use the mqsicreateconfigurableservice command by setting
the configuration parameter to the full URL of the STS. The URL must consist of
the transport scheme, host name, port, and path. For TFIM V6.2 WS-Trust V1.3
endpoint, the path is /TrustServerWST13/services/RequestSecurityToken. For
example:
http://stsserver.mycompany.com:9080/TrustServerWST13/services/RequestSecurityToken
Procedure
To create a security profile that uses WS-Trust v1.3 for mapping, enter the
following command:
mqsicreateconfigurableservice brokername -c SecurityProfiles
-o profilename -n mapping,mappingConfig
-v "WS-Trust v1.3 STS",http://stsserver.mycompany.com:9080/TrustServerWST13/services/RequestSecurityToken
302
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
303
4. Configure the security profile using the entry fields on the right side of the
pane:
a. Select the security provider that you require for Authentication, Mapping,
and Authorization. When you select WS-Trust v1.3 STS for any of these
options, the STS URI field in the Security Token Service (STS) Parameters
group is enabled.
b. Type the URL of the WS-Trust v1.3 STS into the STS URL field. The STS
URL must contain the following URL parts:
v Transport scheme (http or https)
v Host name (a fully qualified domain name)
v Port
v Path (for example, for TFIM V6.2: /TrustServerWST13/services/
RequestSecurityToken)
For example:
http://stsserver.mycompany.com:9080/TrustServerWST13/services/RequestSecurityToken
The URL that you enter forms a configuration string, which is displayed in
one or more of the configuration fields (Authentication Config, Mapping
Config, and Authorization Config), depending on the security operations
that are configured to use WS-Trust v1.3 STS.
For more information about the valid values for the configuration
parameter, see Creating a profile using mqsicreateconfigurableservice on
page 302.
c. In the Propagation field, specify whether you require the identity to be
propagated. The default is False.
d. In the Password Value field, select the way in which the password is
displayed in the properties folder. The password is optional, and is required
only when the token type is Username + Password. The options are:
PLAIN
OBFUSCATE
The password is shown in the Properties folder as base64 encoding.
The password is shown in the Properties folder as four asterisks
(****).
5. Click Finish to deploy the security profile to the broker.
Related concepts:
MASK
304
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
305
306
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
2. In the Properties window, select the Security tab, and click Security Profiles.
The Security Profiles window is displayed, containing a list of existing security
profiles for the broker on the left and, on the right, a pane in which you can
configure the profile.
3. Click Add to create a new profile and add it to the list. You can edit the name
of the security profile by highlighting it in the list and pressing F2.
4. Configure the security profile using the entry fields on the right side of the
pane:
a. Select the type of Authentication, Mapping, and Authorization required. If
you select TFIM V6.1 for any of these options, the TFIM Configuration field
at the bottom of the pane is enabled.
b. If you have selected TFIM V6.1 for authentication, mapping or
authorization, type the URL of the TFIM server into the TFIM
Configuration field. The URL that you enter forms a configuration string,
which is displayed in one or more of the configuration fields
(Authentication Config, Mapping Config, and Authorization Config)
depending on the entry fields that have TFIM selected.
For more information about the valid values for the configuration
parameter, see Creating a profile using mqsicreateconfigurableservice on
page 306.
c. In the Propagation field, specify whether you require the identity to be
propagated. The default is False.
d. In the Password Value field, select the way in which the password is
displayed in the properties folder. The options are:
PLAIN
OBFUSCATE
The password is shown in the Properties folder as base64 encoding.
MASK
Chapter 2. Security
307
308
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Check that an appropriate security profile exists or create a new security profile.
See Creating a security profile on page 294.
Procedure
1. In Identity Token Type, specify the type of identity token that is in the
message. The type can have one of the following values:
v Transport Default (on the security enabled input nodes)
v Current token (on the SecurityPEP node)
v Username
Chapter 2. Security
309
v
v
v
v
v
What to do next
To enable the extraction of an identity in a security enabled input node or
SecurityPEP node, select a security profile that has at least one security operation
configured (authentication, mapping, or authorization) or propagation enabled:
1. In the IBM Integration Toolkit, right-click the BAR file, then click Open with >
Broker Archive Editor.
2. Click the Manage and Configure tab.
3. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
4. In the Security Profile Name field, select a security profile.
5. Save the BAR file.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
310
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
311
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
|
|
312
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Setting up message flow security on page 292
Set up security on a message flow to control access based on the identity of a
message passing through the message flow.
|
|
|
|
|
|
|
|
|
|
Securing an IBM Integration Bus service with IWA modifies the behavior of only
the HTTPInput and SOAPInput nodes. For inbound support, IWA requires the
HTTP and SOAP nodes to use an embedded (integration server) listener. IWA is
not supported by broker listeners. SOAP nodes use embedded listeners by default,
but HTTP nodes use broker listeners by default. For information on how to switch
to an embedded listener, see Switching from a broker-wide listener to embedded
listeners.
|
|
|
If you are using HTTP over SSL (HTTPS), you must set up a public key
infrastructure (PKI). For more information, see Setting up a public key
infrastructure on page 415.
|
|
|
|
|
|
|
|
Use the following commands to set up and manage inbound support for the
NTLM, Kerberos, and SPNEGO protocols, which together are referred to as
Integrated Windows Authentication (IWA). When IBM Integration Bus is
configured to provide an IWA-secured service, the HTTPInput and SOAPInput
nodes accept only incoming requests that can be authenticated against the
Windows domain controller, or the Kerberos KDC, as appropriate. Any requests
that cannot be authenticated are refused by IBM Integration Bus. By default IWA is
disabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
Where:
v broker_name is the name of the broker you want to modify.
v IntegrationServerName is the name of the integration server on that broker.
v ConnectorType is HTTPSConnector for an SSL connection, or HTTPConnector for a
non-SSL connection.
v PropertyValue is NTLM, Negotiate, or Negotiate:Kerberos. Multiple values can be
given, separated by a semicolon or a space, and these values are not
case-sensitive. The order in which the values are specified, is the order in which
they are returned to the client in the HTTP response. To disable IWA, set this
property to a blank string.
|
|
NTLM
|
|
Negotiate
Specify this value to use the Negotiate (SPNEGO) process. This process
Chapter 2. Security
313
|
|
|
|
|
|
Negotiate:Kerberos
Specify this value to use the Negotiate (SPNEGO) process to negotiate
only the use of the Kerberos protocol. If the client cannot support the
Kerberos protocol, IBM Integration Bus refuses the connection.
|
|
You must restart the broker, or reload the integration server, for the command to
take effect.
|
|
To check what the current IWA setting is, run the following command:
mqsireportproperties broker_name -e IntegrationServerName -o ConnectorType -r
|
|
|
|
|
|
Results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> fullName
(consisting of realm\username)
> username
IdentitySourceToken
> realm
IdentitySourceIssuedBy
> package
> spn
> sid
Examples
|
|
|
|
|
|
Enable the NTLM and Negotiate (SPNEGO) protocols for a non-SSL connection:
mqsichangeproperties IB9NODE -e default -o HTTPConnector
-n integratedWindowsAuthentication -v "NTLM;Negotiate"
314
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
What to do next
|
|
|
|
|
|
|
|
|
|
|
|
Note: If you are authenticating by using the Kerberos protocol, and IBM
Integration Bus is receiving messages from a non-Windows client, the client must
include the Windows KDC in its Kerberos configuration file (krb5.conf).
Related concepts:
Integrated Windows Authentication on page 260
Integrated Windows Authentication (IWA) refers to a set of authentication
protocols, NTLM, Kerberos, and SPNEGO, that are used to provide transport-level
security. You can configure IBM Integration Bus to provide an IWA-secured service
on a broker running on any operating system, and to consume an IWA-secured
service on a broker running on Windows, when you are using the HTTP and
SOAP nodes.
Related reference:
|
|
|
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
|
|
|
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
|
|
|
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
|
|
|
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
|
|
|
|
|
|
|
|
|
Securing an IBM Integration Bus service with IWA modifies the behavior of only
the HTTPInput and SOAPInput nodes. For inbound support, IWA requires the
HTTP and SOAP nodes to use an embedded (integration server) listener. IWA is
not supported by broker listeners. SOAP nodes use embedded listeners by default,
but HTTP nodes use broker listeners by default. For information on how to switch
to an embedded listener, see Switching from a broker-wide listener to embedded
listeners.
|
|
|
If you are using HTTP over SSL (HTTPS), you must set up a public key
infrastructure (PKI). For more information, see Setting up a public key
infrastructure on page 415.
Chapter 2. Security
315
|
|
|
|
|
|
|
|
Use the following commands to set up and manage inbound support for the
Kerberos and SPNEGO protocols, which together are referred to as Integrated
Windows Authentication (IWA). When IBM Integration Bus is configured to
provide an IWA-secured service, the HTTPInput and SOAPInput nodes accept only
incoming requests that can be authenticated against the Kerberos KDC. Any
requests that cannot be authenticated are refused by IBM Integration Bus. To
configure IBM Integration Bus on Linux or UNIX to use IWA, you must both
configure Kerberos on your system, and enable IWA. By default IWA is disabled.
|
|
|
|
|
Procedure
1. If your Key Distribution Center (KDC) is on a Windows system, export a
keytab that contains the private key of the service principal from the KDC. For
example:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
where
out filename
Specifies the name and path of the keytab file to be generated.
princ principal_name
Specifies the principal name.
crypto encryption_type
Specifies the encryption type.
mapUser username
Maps the name of a Kerberos principal to a local account.
pass password
Specifies the password to use for this principal name.
mapOp attribute
Defines how the mapping attribute is set. The attribute alternatives are
either add or set.
|
|
|
|
|
|
|
|
|
ktpass -out c:\Windows\krb5.keytab -princ SomePrincipal@YourDomain -crypto RC4-HMAC-NT mapUser Username -pass Password -mapOp set
2. Copy the keytab file to the server that hosts the service. You can copy the file
to the server by exporting the keytab file and transferring it to the server, for
instance by using FTP. The Kerberos configuration file contains a reference to
the keytab file in the form of a file URL (such as: /home/user/my.keytab).
Because the reference is in the configuration file on the server, the server
service can take on the Kerberos principal that is defined in the keytab.
3. Create a Kerberos configuration file that specifies the location of the keytab file
on the local workstation.
|
|
|
|
|
|
|
|
|
You can use more than one service principle name per broker per Kerberos
realm. Use your workstation default Kerberos configuration file when you are
using Kerberos for security. The location for the configuration file differs
depending on the system. The usual locations are:
v Linux: /etc/krb5.conf
v UNIX: /etc/krb5/krb5.conf
v z/OS: /krb5/krb5.conf
Different Kerberos configuration files can be configured for use by the broker
and integration servers.
The following sample Kerberos configuration file shows typical values for the
variables. The variables default_realm, default_keytab_name, and the names in the
|
|
|
|
316
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
realms are among the values you change in the configuration file, depending on
your network and location of the configuration file.
[libdefaults]
default_realm = MYREALM.EXAMPLE.COM
default_keytab_name = FILE:c:\Windows\krb5.keytab
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
MYREALM.EXAMPLE.COM = {
kdc = kdc.myrealm.example.com
admin_server = kdc.myrealm.example.com
}
4. Use one of these mqsichangeproperties commands to specify the location of
your new configuration file.
v For a broker level Kerberos configuration:
mqsichangeproperties brokerName -o BrokerRegistry -n kerberosConfigFile -v kerberosConfigLocation
|
|
|
|
|
|
|
|
|
Negotiate:Kerberos
Specify this value to use the Negotiate (SPNEGO) process to
negotiate only the use of the Kerberos protocol. If the client cannot
support the Kerberos protocol, IBM Integration Bus refuses the
connection.
You must restart the broker, or reload the integration server, for the command
to take effect.
To check what the current IWA setting is, run the following command:
|
|
|
|
|
Chapter 2. Security
317
Results
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> fullName
(consisting of realm\username)
> username
IdentitySourceToken
> realm
IdentitySourceIssuedBy
> package
> spn
> sid
Examples
|
|
|
|
|
|
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
|
|
|
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
|
|
|
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
|
|
|
|
|
|
|
|
|
|
318
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
Authenticating incoming requests with LDAP:
Configure a message flow to perform identity authentication using Lightweight
Directory Access Protocol (LDAP).
Before you begin
Before you start:
Before you can configure a message flow to perform identity authentication using
LDAP, you need to check that an appropriate security profile exists, or create a
new security profile. See Creating a security profile for LDAP on page 296.
About this task
To authenticate the identity of a user or system, the broker attempts to connect to
the LDAP server using the username and password associated with the identity. To
do this, the broker needs the following information:
v To resolve the username to an LDAP entry, the broker needs to know the base
distinguished name (base DN) of the accepted login IDs. This is required to
enable the broker to differentiate between different entries with the same name.
v If the identities do not all have a common base DN, but can be uniquely
resolved from a subtree, the DN can be specified in the broker configuration.
When a subtree search has been specified, the broker must first connect to the
LDAP server and search for the given username in order to obtain the full
username distinguished name (DN) to be used for authentication. If your LDAP
directory does not permit login of unrecognized IDs, and does not grant search
access rights on the subtree, you must set up a separate authorized login ID that
the broker can use for the search. Use the mqsisetdbparms command to specify a
username and password. For example:
mqsisetdbparms -n ldap::LDAP -u username -p password
or
mqsisetdbparms -n ldap::<servername> -u username -p password
where <servername> is your base LDAP server name, for example,
ldap.mydomain.com.
If you specify ldap::LDAP, it creates a default setting for the broker, which the
broker attempts to use if you have not explicitly used the mqsisetdbparms
command to create a login ID for a specific <servername>. All servers that do not
have an explicit ldap::servername entry then start using the credentials in the
ldap::LDAP entry. This means that any servers that were previously using
anonymous bind by default will start using the details in ldap::LDAP.
The username that you specify in the -u parameter must be recognized by the
LDAP server as a complete user name. In most cases this means that you need
to specify the full DN of the user. Alternatively, by specifying a username to be
anonymous, you can force the broker to bind anonymously to this LDAP server.
This might be useful if you have specified a non-anonymous bind as your
default (ldap::LDAP). For example:
mqsisetdbparms -n ldap::<servername> -u anonymous -p password
Chapter 2. Security
319
320
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
321
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Authenticating incoming requests with WS-Trust v1.3 STS (TFIM V6.2):
You can configure supported message flow input nodes or SecurityPEP nodes to
perform identity authentication or security token validation using a WS-Trust v1.3
compliant security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2.
Before you begin
Before you start:
Before you can configure identity authentication or token validation, you need to
check that an appropriate security profile exists, or create a new security profile.
See Creating a security profile for WS-Trust V1.3 (TFIM V6.2) on page 302.
About this task
When the security profile is configured to use WS-Trust V1.3 STS for
authentication, the broker security manager issues trust requests and processes
trust responses according to the WS-Trust V1.3 standard.
322
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When you use a WS-Trust v1.3 STS for authentication, a request is made to the
trust service with the following parameters, which control the STS processing. If
you are using TFIM V6.2, the following parameters are used in the selection of the
TFIM module chain:
v RequestType
v Issuer
v AppliesTo
For more information about these parameters, see:Authentication, mapping, and
authorization with TFIM V6.2 and TAM on page 280.
The WS-Trust v1.3 specification, published by OASIS, is available at:
http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html
.
Steps for enabling WS-Trust v1.3 authentication:
Procedure
To enable an existing message flow to perform authentication or token validation,
use the Broker Archive editor to select a security profile that uses a WS-Trust v1.3
STS for authentication and to associate it with the node or message flow. If a
security profile is specified on either a message flow or a node, the profile must be
available when the message flow is deployed; otherwise, a deployment error
occurs.
1. In the Message Broker Toolkit, right-click the BAR file, then click Open with >
Broker Archive Editor.
2. Click the Manage and Configure tab.
3. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
4. In the Security Profile Name field, select a security profile that configures
WS-Trust v1.3 STS for authentication.
5. Save the BAR file.
What to do next
For a SOAPInput node to use the identity in the WS-Security header (rather than
an underlying transport identity) an appropriate policy set and bindings must also
be defined and specified. For more information, see Policy sets.
If the message identity (or security token) does not contain enough information for
authentication, the information must be taken from the message body. For
example, if a password is required for authentication but the message came from
WebSphere MQ with only a username, the password information must be taken
from the message body. For more information, see Configuring the extraction of
an identity or security token on page 308.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Chapter 2. Security
323
324
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
SecurityPEP node
Use the SecurityPEP node in a message flow to invoke the message flow security
manager at any point in the message flow.
Authenticating incoming requests with TFIM V6.1:
You can configure a message flow to perform identity authentication by using
Tivoli Federated Identity Manager (TFIM) V6.1.
Before you begin
Before you start:
Before you can configure a message flow to perform identity authentication, you
need to check that an appropriate security profile exists, or create a new security
profile. See Creating a security profile for TFIM V6.1 on page 306.
About this task
Note: Support for TFIM V6.1 is included for compatibility with previous versions
of IBM Integration Bus. If possible, upgrade to TFIM V6.2 and follow the
instructions in Authenticating incoming requests with WS-Trust v1.3 STS (TFIM
V6.2) on page 322.
When you use TFIM V6.1 for authentication, a request is made to the TFIM trust
service with the following three parameters, which select the module chain:
v Issuer = Properties.IdentitySourceIssuedBy
Chapter 2. Security
325
326
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
327
Related reference:
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Providing credentials in HTTP requests:
Use a security profile to configure HTTPRequest and SOAPRequest nodes to
authenticate with a remote server.
About this task
Basic authentication is a common extension in the HTTP protocol that allows a
client to provide identity information to a remote web server in the form of a
username and password sent in the HTTP header data. Security profiles in IBM
Integration Bus provide a way for message flow designers to provide these
credentials without building the HTTP headers in a Compute node.
328
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
If your broker runs on Windows, you can choose to use additional protocols to
pass identity information with the HTTP request, which avoids passing the user
and password in the clear. The identity used is obtained from the Properties tree in
the same way as basic authentication. These protocols include NT Lan Manager
(NTLM), Kerberos, and Simple and Protected Negotiation (SPNEGO), collectively
known as Integrated Windows Authentication (IWA), and are controlled at the
integration server level. For more information, see Providing credentials for
outbound requests by using IWA on page 330.
To enable basic authentication, select an appropriate security profile for the output
node or the message flow in the Broker Archive editor. The credentials are picked
up from the following Properties tree locations if set:
Properties.IdentityMappedType
Properties.IdentityMappedToken
Properties.IdentityMappedPassword
If the mapped identity fields are not set, the credentials are picked up from the
following Properties tree locations:
Properties.IdentitySourceType
Properties.IdentitySourceToken
Properties.IdentitySourcePassword
For basic authentication both a username and password are required, therefore the
appropriate Type field must be set to the string usernameAndPassword. For example:
SET
SET
SET
SET
OutputRoot.Properties.IdentitySourceType=usernameAndPassword;
OutputRoot.Properties.IdentitySourceToken = myUser;
OutputRoot.Properties.IdentitySourcePassword = myPassw0rd;
OutputRoot.Properties.IdentitySourceIssuedBy = myDomain;
Chapter 2. Security
329
|
|
|
Set up IBM Integration Bus to consume a remote service that is secured with
Integrated Windows Authentication (IWA). Only an IBM Integration Bus running
on Windows can consume an IWA-secured service.
|
|
|
Your IBM Integration Bus must be running on the Windows operating system. If
IBM Integration Bus is running on a different operating system, an IWA-secured
remote service cannot be consumed.
330
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
|
Ensure that you have a security profile specified that is configured for identity
propagation. The supplied Default Propagation security profile is sufficient for all
authentication types. For more information, see Creating a security profile on
page 294.
|
|
|
|
|
|
|
|
|
|
|
|
|
Use the following commands to set up and manage outbound support for the
NTLM, Kerberos, SPNEGO, and SPNEGO-2 protocols, which together are referred
to as Integrated Windows Authentication (IWA). By default IWA is not enabled.
|
|
|
|
To consume a remote service that is secured with IWA, run the following
command:
|
|
|
Where:
v broker_name is the name of the broker you want to modify.
v IntegrationServerName is the name of the integration server on that broker.
IWA
|
|
|
Negotiate
Allow the broker to authenticate by using the SPNEGO process to
negotiate the use of the NTLM or Kerberos protocols.
|
|
Basic
All
None
Do not authenticate.
|
|
|
|
|
|
|
|
When any security protocol other than Basic Authentication is enabled, the
HTTPRequest and SOAPRequest nodes do not pre-emptively authenticate to the
service. Instead the nodes wait for a 401 response from the server indicating which
authentication mechanisms the server supports, and the nodes then use the highest
Chapter 2. Security
331
|
|
|
|
|
|
supported protocol selected in the order listed above. Once connected, this protocol
will be used to authenticate pre-emptively until the flow is stopped or the
allowedAuthTypes property is changed. To configure any of the protocols to be
used pre-emptively, run the following command:
|
|
|
|
Where:
v broker_name is the name of the broker you want to modify.
v IntegrationServerName is the name of the integration server on that broker.
v PropertyValue is one of the following values:
Basic
|
|
|
Negotiate
Pre-emptively authenticate by using the SPNEGO process to negotiate
the use of the NTLM or Kerberos protocols.
|
|
|
|
For more advanced scenarios, the following optional configuration properties can
also be used with the ComIbmSocketConnectionManager object:
|
|
|
allowNtlmNegotiation=TRUE
Set to FALSE to prevent NTLM from being negotiated with the SPNEGO
and SPNEGO-2 protocols. The default value is TRUE.
|
|
|
negotiateMutualAuth=FALSE
Set to TRUE if you require mutual authentication when the Kerberos
protocol is negotiated. The default value is FALSE.
|
|
|
|
|
|
Note: When IBM Integration Bus is authenticating by using Kerberos, the broker
automatically generates a service principal name (SPN) for the service that is based
on the host name for the request. For example, if the URL for the service is
http://iib.iibservice/testservice/service1.svc the SPN is assumed to be
HTTP/iib.iibservice. If the service exists at a different SPN, use the following
local environment overrides to provide an explicit SPN for the service:
|
|
|
|
|
SOAP SET
OutputLocalEnvironment.Destination.SOAP.Request.Transport.HTTP.ServicePrincipalName
= HTTP/iib.iibservice2.com:7800;
|
|
|
To check the current outbound authentication setting, run the following command:
mqsireportproperties broker_name -e IntegrationServerName
-o ComIbmSocketConnectionManager -r
|
|
|
|
332
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Examples
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Related concepts:
Integrated Windows Authentication on page 260
Integrated Windows Authentication (IWA) refers to a set of authentication
protocols, NTLM, Kerberos, and SPNEGO, that are used to provide transport-level
security. You can configure IBM Integration Bus to provide an IWA-secured service
on a broker running on any operating system, and to consume an IWA-secured
service on a broker running on Windows, when you are using the HTTP and
SOAP nodes.
Related reference:
|
|
|
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
|
|
|
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
|
|
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
|
|
SOAPRequest node
Use the SOAPRequest node to send a SOAP request to the remote Web service.
|
|
Chapter 2. Security
333
334
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
335
336
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
Using the Broker Archive editor, select a security profile that has mapping enabled.
You can set a security profile on a message flow or on individual input nodes. If
no security profile is set for the input nodes, the setting is inherited from the
setting on the message flow.
1. In the Message Broker Toolkit, right-click the BAR file, then click Open with >
Broker Archive Editor.
2. Click the Manage and Configure tab.
3. Click the message flow or node on which you want to set the security profile.
The properties that you can configure for the message flow or for the node are
displayed in the Properties view.
4. In the Security Profile Name field, enter the name of a security profile that has
mapping enabled.
5. Save the BAR file.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Chapter 2. Security
337
338
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
339
3. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
4. In the Security Profile Name field, enter the name of a security profile that has
mapping enabled.
5. Save the BAR file.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Creating a security profile on page 294
You can create a security profile for use with Lightweight Directory Access
Protocol (LDAP) or a WS-Trust V1.3 compliant security token server (STS), such as
Tivoli Federated Identity Manager (TFIM) V6.2. Support is also provided for TFIM
V6.1, for compatibility with previous versions of IBM Integration Bus. You can
create the security profile by using either the mqsicreateconfigurableservice
command or an editor in the IBM Integration Explorer.
340
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
341
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Configuring authorization
Configure the broker to use an external security provider to authorize an identity
in a message flow. You can use either Lightweight Directory Access Protocol
(LDAP) or a WS-Trust V1.3 compliant security token server (STS) such as Tivoli
Federated Identity Manager (TFIM) V6.2. Support for TFIM V6.1 is also provided
for compatibility with previous versions.
What to do next
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Related tasks:
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
342
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
343
v If your LDAP directory does not permit login by unrecognized IDs, and does
not grant search access rights on the subtree, you must set up a separate
authorized login ID that the broker can use for the search. Use the
mqsisetdbparms command to specify a username and password:
mqsisetdbparms -n ldap::LDAP -u username -p password
or
mqsisetdbparms -n ldap::<servername> -u username -p password
where <servername> is your base LDAP server name. For example:
ldap.mydomain.com.
If you specify ldap::LDAP, it creates a default setting for the broker, which the
broker attempts to use if you have not explicitly used the mqsisetdbparms
command to create a login ID for a specific <servername>. All servers that do not
have an explicit ldap::servername entry then start using the credentials in the
ldap::LDAP entry. This means that any servers that were previously using
anonymous bind by default will start using the details in ldap::LDAP.
The username that you specify in the -u parameter must be recognized by the
LDAP server as a complete user name. In most cases this means that you need
to specify the full DN of the user. Alternatively, by specifying a username to be
anonymous, you can force the broker to bind anonymously to this LDAP server.
This might be useful if you have specified a non-anonymous bind as your
default (ldap::LDAP). For example:
mqsisetdbparms -n ldap::<servername> -u anonymous -p password
In this case, the value specified for password is ignored.
Steps for enabling LDAP authorization:
Procedure
To enable an existing message flow to perform authorization using LDAP, use the
Broker Archive editor to select a security profile that has authorization enabled.
You can set a security profile on a message flow or on individual input nodes. If
no security profile is set for the input nodes, the setting is inherited from the
setting on the message flow.
1. Switch to the Integration Development perspective.
2. In the Application Development view, right-click the BAR file and then click
Open with > Broker Archive Editor.
3. Click the Manage and Configure tab.
4. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
5. In the Security Profile Name field, select a security profile that uses LDAP for
authorization.
6. Save the BAR file.
What to do next
For a SOAPInput node to use the identity in the WS-Security header (rather than
an underlying transport identity) an appropriate policy set and bindings must also
be defined and specified. For more information, see Policy sets.
Related concepts:
344
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
345
346
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Configuring authorization with a WS-Trust v1.3 STS (TFIM V6.2):
You can configure supported message flow input nodes or SecurityPEP nodes to
perform authorization of an identity or security token by using a WS-Trust v1.3
compliant security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2.
Before you begin
Before you start:
Before you configure a message flow to perform authorization with a WS-Trust
v1.3 STS:
v Check that an appropriate security profile exists, or create a new security profile.
See Creating a security profile for WS-Trust V1.3 (TFIM V6.2) on page 302.
About this task
The message flow security manager issues an authorization request to the
WS-Trust service with the following parameters, which select the TFIM module
chain to be used:
v RequestType
v Issuer
v AppliesTo
For more information about these parameters, see:Authentication, mapping, and
authorization with TFIM V6.2 and TAM on page 280.
In addition to configuring Message Broker to perform authorization with a
WS-Trust compliant STS, you must configure TAM. For information about how to
do this, see the following topics:
v Creating a module chain in TFIM V6.2 on page 350
v Configuring TAM for authorization using TFIM V6.2 on page 352
Steps for enabling authorization using a WS-Trust v1.3 STS provider:
Procedure
To enable an existing message flow to enforce authorization using a WS-Trust v1.3
STS provider, use the Broker Archive editor to select a security profile that has
authorization set for that provider. You can set a security profile on a message flow
or on individual input nodes or SecurityPEP nodes. If you leave the Security
Profile property blank, the node inherits the Security Profile property that is set
at the message flow level. If you leave the property blank at both levels, security is
turned off for the node.
1. In the Message Broker Toolkit, right-click the BAR file, then click Open with >
Broker Archive Editor.
2. Click the Manage and Configure tab.
Chapter 2. Security
347
3. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
4. In the Security Profile Name field, select a security profile that has
authorization set for WS-Trust V1.3 STS.
5. Save the BAR file.
What to do next
For a SOAPInput node to use the token in the WS-Security header (rather than an
underlying transport identity) an appropriate policy set and bindings must also be
defined and specified. For more information, see Policy sets.
The WS-Trust v1.3 specification is available at: http://docs.oasis-open.org/ws-sx/
ws-trust/200512/ws-trust-1.3-os.html.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
348
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
349
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Creating a module chain in TFIM V6.2:
This topic describes how to create a module chain in Tivoli Federated Identity
Manager (TFIM) V6.2.
About this task
When you use a WS-Trust v1.3 security token server (STS) for authentication,
authorization, or mapping (or any combination of those operations), a single
WS-Trust request is made to the trust service with the required parameters, which
control the STS processing.
To enable IBM Integration Bus to use TFIM V6.2 for authorization, you need to
configure TFIM to process the single WS-Trust request from the broker security
manager. To configure TFIM, you must create a module chain to handle the
request:
Procedure
1. Create a Custom module chain, and ensure that the chain performs all the
actions that are specified in the broker security profile (Authenticate, Map,
Authorize).
2. Set the RequestType, Issuer and AppliesTo properties of the module chain, so that
it is invoked for the requests from the security enabled input node or
SecurityPEP node. The parameters that are passed by the broker to TFIM are
shown in the table in Authentication, mapping, and authorization with TFIM
V6.2 and TAM on page 280.
What to do next
If your module chain includes an authorization module, and if the module
specifies TAM, you must configure TAM to process the authorization requests from
TFIM. For more information about how to do this, see Configuring TAM for
authorization using TFIM V6.2 on page 352.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
350
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Authentication, mapping, and authorization with TFIM V6.2 and TAM on page
280
You can use IBM Integration Bus, Tivoli Federated Identity Manager (TFIM) V6.2,
and Tivoli Access Manager (TAM) to control authentication, mapping, and
authorization.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring TAM for authorization using TFIM V6.2 on page 352
Configure Tivoli Access Manager (TAM) to enable authorization using Tivoli
Federated Identity Manager (TFIM) V6.2.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Configuring authorization with a WS-Trust v1.3 STS (TFIM V6.2) on page 347
You can configure supported message flow input nodes or SecurityPEP nodes to
perform authorization of an identity or security token by using a WS-Trust v1.3
compliant security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2.
Creating a security profile on page 294
You can create a security profile for use with Lightweight Directory Access
Protocol (LDAP) or a WS-Trust V1.3 compliant security token server (STS), such as
Tivoli Federated Identity Manager (TFIM) V6.2. Support is also provided for TFIM
V6.1, for compatibility with previous versions of IBM Integration Bus. You can
create the security profile by using either the mqsicreateconfigurableservice
command or an editor in the IBM Integration Explorer.
Setting up message flow security on page 292
Set up security on a message flow to control access based on the identity of a
message passing through the message flow.
Related reference:
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
Chapter 2. Security
351
352
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
353
354
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
355
356
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
357
358
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
359
360
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Configuring TAM for authorization using TFIM V6.1:
This topic describes how to configure Tivoli Access Manager (TAM) to enable
authorization using Tivoli Federated Identity Manager (TFIM) V6.1.
About this task
To configure TAM to process an authorization request from TFIM, complete the
following steps. The examples relate to the TAM Version 6.01 pdadmin utility:
Procedure
1. Check that the action group used by the TFIM authorization module is
available. The action group used is WebService:
action group list
If WebService is not listed, create it:
action group create WebService
2. Display the action in the action group used by the TFIM authorization module.
The action used is "i":
action list WebService
If action "i" <label> 0 is not listed, create it. The value of <label> can vary:
action create i <label> 0 WebService
3. Create the Access Control List (ACL) that will be used to grant access to one or
more message flows. First, create the ACL and give the administrators access to
it. In this example, iv-admin is the administration group and sec_master is the
main administrator:
acl create <AclName>
acl modify <AclName> set Group iv-admin TcmdbsvaBRxl[WebService]i
acl modify <AclName> set User sec_master TcmdbsvaBRxl[WebService]i
4. Grant access to all authenticated users, or specific groups, by adding them to
the ACL. Grant any authenticated identity access:
acl modify <AclName> set Any-other Trx[WebService]i
To add a specific group:
acl modify <AclName> set group <GroupName> Trx[WebService]i
5. Define protected object spaces in TAM for authorization of message flows:
a. Create the application container object as the root of the protected object
space. This is the name that is used to link an instance of a TFIM
AuthorizationSTSModule (within a module chain) into the TAM object
space. The container object name is specified to match the Web Service
protected object name parameter on a TFIM Authorization module.
Chapter 2. Security
361
362
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
363
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
364
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
365
366
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
1. If you are using the broker listener: Configure the broker to use SSL
2. If you are using the integration server (embedded) listener: Configure an
integration server to use SSL
3. Test your configuration
If you configured your broker and integration servers such that the broker listener
is used for some integration servers, and the integration server listener for other
integration servers, you must complete step 1 for the first set of integration servers
and step 2 for each integration server in the second set.
For information about which listener to use for HTTP messages, see HTTP
listeners.
Configuring the broker to use SSL:
About this task
Complete the following steps:
Procedure
1. Turn on SSL support in the broker, by setting a value for enableSSLConnector
mqsichangeproperties broker name
-b httplistener -o HTTPListener
-n enableSSLConnector -v true
2. Optional: If you do not want to use the default port 7083 for HTTPS messages,
specify the port on which the broker listens:
mqsichangeproperties broker name
-b httplistener -o HTTPSConnector
-n port -v Port to listen on for https
On UNIX systems, only processes that run under a privileged user account (in
most cases, root) can bind to ports lower than 1024.For the broker to listen on
these ports, the user ID under which the broker is started must be root.
3. Optional: Enable Client Authentication (mutual authentication):
mqsichangeproperties broker_name -b httplistener -o HTTPSConnector
-n clientAuth -v true
4. Restart the broker after changing one or more of the HTTP listener properties.
5. Optional: Use the following commands to display HTTP listener properties:
mqsireportproperties broker_name -b httplistener -o AllReportableEntityNames -a
mqsireportproperties broker_name -b httplistener -o HTTPListener -a
mqsireportproperties broker_name -b httplistener -o HTTPSConnector -a
Chapter 2. Security
367
On UNIX systems, only processes that run under a privileged user account (in
most cases, root) can bind to ports lower than 1024. For the integration server
to listen on these ports, the user ID under which the broker is started must be
root.
If you do not complete this step, the first available port in the default range
(7843 - 7884) is used.
2. Optional: Enable Client Authentication (mutual authentication):
mqsichangeproperties broker_name
-e integration_server_name -o HTTPSConnector
-n clientAuth -v true
3. Optional: Change the SSL protocol. The default protocol for the HTTPInput
node is TLS. Run the following command to change it to SSL:
mqsichangeproperties broker_name
-e integration_server_name -o HTTPSConnector
-n sslProtocol -v SSL
4. Restart the broker after changing one or more of the listener properties.
5. Optional: Use the following command to display HTTPS properties:
mqsireportproperties broker_name
-e integration_server_name -o HTTPSConnector -r
Testing your configuration:
About this task
Use the SOAP Nodes sample to test your configuration. You can view information
about samples only when you use the information center that is integrated with
the IBM Integration Toolkit or the online information center. You can run samples
only when you use the information center that is integrated with the IBM
Integration Toolkit.
Procedure
1. Import the SOAP Nodes sample.
2. Enable SSL in the SOAPNodesSampleConsumerFlow message flow by
completing the following steps:
a. Open the Invoke_submitPO subflow.
b. Change the HTTPTransport properties for the SOAPRequest node. In the
Web Service URL field, make the following changes:
v Change http to https
v Change the port number to the port number of your HTTPSConnector
port.
Note: The default value of the HTTPSConnector port is 7843 but you can
use the following command to verify the port number that is configured in
your deployment.
mqsireportproperties broker_name -e integration_server_name -o HTTPSConnector -n port
368
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
369
SOAPRequest node
Use the SOAPRequest node to send a SOAP request to the remote Web service.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
Configuring SOAPRequest and SOAPAsyncRequest nodes to use SSL (HTTPS):
Configure the SOAPRequest and SOAPAsyncRequest nodes to communicate with
other applications that use HTTP over SSL.
Before you begin
Before you start: Set up a public key infrastructure (PKI) at broker or integration
server level: Setting up a public key infrastructure on page 415.
Configuring the nodes:
Procedure
On the HTTP Transport page of the properties for the node, set the following
properties:
1. In the Web Service URL property, type the URL of the web service you want to
call.
2. Optional: Select the Enable certificate revocation list checking property.
For more information on Certificate Revocation List (CRL) checking see,
Working with certificate revocation lists on page 426.
3. Set other SSL properties as appropriate.
What to do next
Test your configuration.
Testing your configuration:
About this task
Use the SOAP Nodes sample to test your configuration. You can view information
about samples only when you use the information center that is integrated with
the IBM Integration Toolkit or the online information center. You can run samples
only when you use the information center that is integrated with the IBM
Integration Toolkit.
Procedure
1. Import the SOAP Nodes sample.
2. Enable SSL in the SOAPNodesSampleConsumerFlow message flow by
completing the following steps:
a. Open the Invoke_submitPO subflow.
b. Change the HTTPTransport properties for the SOAPRequest node. In the
Web Service URL field, make the following changes:
v Change http to https
v Change the port number to the port number of your HTTPSConnector
port.
370
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Note: The default value of the HTTPSConnector port is 7843 but you can
use the following command to verify the port number that is configured in
your deployment.
mqsireportproperties broker_name -e integration_server_name -o HTTPSConnector -n port
Chapter 2. Security
371
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
SOAPInput node
Use the SOAPInput node to process client SOAP messages, so that the broker
operates as a SOAP Web Services provider.
SOAPReply node
Use the SOAPReply node to send SOAP messages from the broker to the
originating client in response to a message received by a SOAPInput node.
SOAPRequest node
Use the SOAPRequest node to send a SOAP request to the remote Web service.
SOAPAsyncRequest node
Use the SOAPAsyncRequest node with the SOAPAsyncResponse node to construct
a pair of message flows that call a Web service asynchronously.
Configuring HTTPInput and HTTPReply nodes to use SSL (HTTPS):
Configure the HTTPInput and HTTPReply nodes to communicate with other
applications that use HTTPS by creating a keystore file, configuring the broker or
integration server to use SSL, and creating a message flow to process HTTPS
requests.
Before you begin
Before you start: Set up a public key infrastructure (PKI) at broker level by
following the instructions in Setting up a public key infrastructure on page 415.
About this task
Follow these steps to configure the HTTPInput and HTTPReply nodes to
communicate with other applications using HTTP over SSL:
1. If you are using the broker listener:Configure the broker to use SSL
2. If you are using the integration server listener: Configure the integration server
to use SSL
3. Create a message flow
4. Test your configuration
If you have configured your broker and integration servers such that the broker
listener is used for some integration servers, and the integration server listener for
other integration servers, you must complete step 1 for the first set of integration
servers and step 2 for each integration server in the second set.
For information about which listener to use for HTTPS messages, see HTTP
listeners.
Configuring the broker to use SSL:
372
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
373
4. Restart the broker after changing one or more of the listener properties.
5. Optional: Use the following command to display HTTPS properties:
mqsireportproperties broker_name
-e integration_server_name -o HTTPSConnector -r
Creating a message flow to process HTTPS requests:
About this task
You can create a simple message flow to use HTTPS by connecting an HTTPInput
node to an HTTPReply node. The two most important properties to set on the
HTTPInput node are:
v Path suffix for URL; for example, /* or /testHTTPS.
v Use HTTPS.
/* means that the HTTPInput node matches against any request that is sent to the
HTTP listener on a designated port. This option is useful for testing purposes, but
is not suitable for production systems.
You can now deploy the message flow to the broker. If you have completed all the
documented steps, message BIP3132 is written to the local system log (on
Windows, the event log), stating that the HTTPS listener has been started.
You can now test the system.
Testing your configuration:
About this task
The simplest method of testing whether HTTPS is configured correctly is to use a
Web browser to make a request to the broker over HTTPS.
Start a Web browser and enter the following URL:
https://localhost:7083/testHTTPS
Change values in the URL to reflect the changes that you have made in your
broker configuration; for example, the port number. When a window is displayed
asking you to accept the certificate, select Yes. The browser refreshes the window
and displays an empty HTML page:
v In Mozilla browsers, the empty HTML page looks like the following example:
<html>
<body/>
</html>
v In Internet Explorer, the following information is displayed:
XML document must have a top level element. Error processing resource
https://localhost:7083/testHTTPS
These responses mean that a blank page was returned, indicating that the setup
worked correctly. To add content to the empty page, you can add a Compute node
to the flow.
You can use another HTTPS client to process HTTPS requests. Read the
documentation for the client to find out how to configure it to make client
connections over SSL.
374
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can also use another HTTPS client, such as a Java or .NET client, instead of
the Web browser. Depending on the type of client, you might need to export the
certificate (which was created with keytool) from the keystore file associated with
the HTTP listener, then import it into the keystore for the client. Read the client
documentation to find out how to configure the client to make client connections
over SSL.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
HTTP listeners
You can choose between broker-wide listeners and integration server (embedded)
listeners to manage HTTP messages in your HTTP or SOAP flows. Learn about the
two types of listener, how ports are assigned to them, and how you can switch
from one to the other for individual integration servers.
Related tasks:
Implementing SSL authentication on page 415
Use SSL authentication to enhance security in your broker environment.
Configuring the HTTPRequest and HTTPAsyncRequest nodes to use SSL
(HTTPS)
Configure the HTTPRequest or HTTPAsyncRequest nodes to communicate with
other applications that use HTTP over SSL.
Related reference:
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
HTTPInput node
Use the HTTPInput node to receive an HTTP message from an HTTP client for
processing by a message flow.
HTTPReply node
Use the HTTPReply node to return a response from the message flow to an HTTP
client. This node generates the response to an HTTP client from which the input
message was received by the HTTPInput node, and waits for confirmation that it
has been sent.
HTTPRequest node
Use the HTTPRequest node to interact with a web service.
Configuring the HTTPRequest and HTTPAsyncRequest nodes to use SSL
(HTTPS):
Configure the HTTPRequest or HTTPAsyncRequest nodes to communicate with
other applications that use HTTP over SSL.
Chapter 2. Security
375
376
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
377
378
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
379
380
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
CICSRequest node
Use the CICSRequest node to call CICS Transaction Server for z/OS programs over
TCP/IP-based IP InterCommunications (IPIC) protocol.
Securing the connection to IMS by using SSL:
Configure the IMSRequest node to communicate with IMS over the Secure Sockets
Layer (SSL) protocol by creating a keystore file, and configuring the broker to use
SSL.
Before you begin
Before you start:
Set up a public key infrastructure (PKI) at broker level by following the
instructions in Setting up a public key infrastructure on page 415.
About this task
To configure the IMSRequest node to use SSL, complete the following steps.
Procedure
1. Turn on SSL support in the broker by setting the UseSSL and SSLEncryptionType
properties on the IMSConnect configurable service, as shown in the following
example.
This example changes the IMSRequest node that is configured to use the
myIMSConnectService configurable service. After you run this command, the
IMSRequest node connects to IMS over SSL.
mqsichangeproperties IB9NODE -c IMSConnect -o myIMSConnectService -n
UseSSL,SSLEncryptionType -v True,Weak
2. Optional: Develop a message flow that contains a IMSRequest node.
3. Test your configuration.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
IMS connections
Open Transaction Manager Access (OTMA) is used to provide access to IMS from
IBM Integration Bus.
Using the IBM Integration Explorer to work with configurable services
Configurable services are used to define properties that are related to external
services on which the integration node (broker) relies. Use the IBM Integration
Explorer to view, add, modify and delete configurable services.
Related tasks:
Implementing SSL authentication on page 415
Use SSL authentication to enhance security in your broker environment.
Chapter 2. Security
381
382
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
383
384
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
385
mqsicreateconfigurableservice MYBROKER
-c TCPIPServer
-o myTCPIPServerService
-n Port,SSLProtocol,SSLCiphers,SSLClientAuth,SSLKeyAlias
-v 1455,SSLv3,SSL_RSA_WITH_RC4_128_MD5;SSL_RSA_WITH_3DES_EDE_CBC_SHA
,require,MyKey
The following command changes a TCPIPServer configurable service to use the
first key retrieved from the keystore, with SSL protocol SSLv3. SSLClientAuth is
disabled.
mqsichangeproperties MYBROKER
-c TCPIPClient
-o myTCPIPServerService
-n SSLProtocol
-v SSLv3
Testing your configuration:
About this task
To test your configuration, connect an SSL-enabled client, such as another program,
or a web browser, to the server port. Connection error messages, such as
handshake failures, or untrusted keys, indicate that you must change the
configuration.
Client identity:
About this task
If SSL client authentication is requested or required, and the client successfully
authenticates, the distinguished name is present as an identity source token in the
properties parser, in the tree propagated from the Open terminal at connection
time. This applies only to the TCPIPServerInput node.
The IdentitySourceToken field is set to the distinguished name from the client
certificate.
The IdentitySourceType field is set to the string username.
The IdentitySourceIssuedBy field is set to the issuer of the certificate presented
by the client.
If SSL client authentication is requested, and the client does not provide the
required credentials, the fields are set to blank.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Related tasks:
Implementing SSL authentication on page 415
Use SSL authentication to enhance security in your broker environment.
Related reference:
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
386
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
387
388
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
proxy servlet routes requests to both the SOAP and JavaScript client API
endpoints, and so both endpoints must match the web browser protocol.
5. Save and redeploy the integration service.
Results
You have configured the integration service to use SSL.
Related concepts:
Integration service JavaScript client API
An integration service developer can generate a JavaScript client API from an
existing integration service. The JavaScript client API provides operation functions
that a JavaScript developer can call from an application that is running in a
JavaScript environment.
Related tasks:
Implementing SSL authentication on page 415
Use SSL authentication to enhance security in your broker environment.
Procedure
By using the Broker Archive editor, select a security profile that has identity
propagation enabled. You can use the Default Propagation profile, which is a
predefined profile that requests only identity propagation. You can set a security
profile on a message flow or on individual input and output nodes. If no security
profile is set for the input and output nodes, the setting is inherited from the
setting on the message flow.
1. In the Application Development view, right-click the BAR file, then click Open
with > Broker Archive Editor.
2. Click the Manage and Configure tab.
3. Click the flow or node on which you want to set the security profile. The
properties that you can configure for the message flow or for the node are
displayed in the Properties view.
Chapter 2. Security
389
4. In the Security Profile Name field, select a security profile that has identity
propagation enabled.
5. Save the BAR file.
What to do next
For a SOAPRequest or SOAPAsyncRequest node, you can define an appropriate
policy set and bindings to specify how the propagated identity is placed in the
WS-Security header (rather than the underlying transport headers). For more
information, see Policy sets.
On SOAPRequest and SOAPAsyncRequest nodes, only Username and SAML
tokens can be propagated. However, on the SOAPRequest and SOAPAsyncRequest
nodes with a Kerberos policy set and bindings, a Username and password token
can be propagated into the node to provide the Kerberos client credentials.
For the SAPRequest node, you can propagate only the user name and password.
For the CICSRequest and IMSRequest nodes, you can propagate the user name, or
the user name and password.
If the message identity does not contain enough information for identity
propagation, you can use any of the following methods to acquire the necessary
information:
v Take the information from the message body. For example, if the message comes
from WebSphere MQ with only a username token, and the output is an HTTP
request node requiring a Username + Password token, the password might be
present in the body of the incoming message. For more information, see
Configuring the extraction of an identity or security token on page 308.
v Configure an identity mapper using TFIM. For more information, see the IBM
Tivoli Federated Identity Manager product documentation.
v Use ESQL or Java to set the Mapped Identity fields in the Properties tree.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Authentication and validation on page 257
Authentication is the process of establishing the identity of a user or system and
verifying that the identity is valid. Applying authentication to a SAML security
token involves validating the assertions that it carries and confirming that it is
being processed within its validity period.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
390
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
message flow at SecurityPEP nodes and security enabled input and output nodes.
Security exception processing on page 290
A security exception is raised when a message flow security failure occurs during
security processing in an input node or SecurityPEP node.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Configuring identity mapping on page 333
Configure a security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2, to map the incoming security token and, if required, to authenticate
and authorize it.
Creating a security profile on page 294
You can create a security profile for use with Lightweight Directory Access
Protocol (LDAP) or a WS-Trust V1.3 compliant security token server (STS), such as
Tivoli Federated Identity Manager (TFIM) V6.2. Support is also provided for TFIM
V6.1, for compatibility with previous versions of IBM Integration Bus. You can
create the security profile by using either the mqsicreateconfigurableservice
command or an editor in the IBM Integration Explorer.
Configuring authorization on page 342
Configure the broker to use an external security provider to authorize an identity
in a message flow. You can use either Lightweight Directory Access Protocol
(LDAP) or a WS-Trust V1.3 compliant security token server (STS) such as Tivoli
Federated Identity Manager (TFIM) V6.2. Support for TFIM V6.1 is also provided
for compatibility with previous versions.
Setting up message flow security on page 292
Set up security on a message flow to control access based on the identity of a
message passing through the message flow.
Related reference:
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
Chapter 2. Security
391
Procedure
1. Run the mqsireportdbparms command. A list of integration nodes that have
parameters that are set is returned. You can then see whether user IDs are
assigned to the associated security profile for each of the results.
In the previous step, you can identify which integration nodes have security
profiles. If you want to check that you have a valid password for a specific user
ID:
2. Run the mqsireportdbparms command with the name of the integration node
that you want to check in the following format:
392
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
A result is returned that confirms whether the password that was provided is
correct, or if it was incorrect.
Additionally, the command returns if the integration node was restarted after a
password change, so that you know what password is valid for the integration
node while it is running.
Related concepts:
Identity on page 251
In IBM Integration Bus, an identity is a security token that uniquely identifies an
individual, or that provides a set of assertions that can be validated.
Identity mapping on page 263
Identity mapping is the transformation of a security token from one format to
another format, or the federation of an identity from one realm to an equivalent
identity in another realm.
Authorization on page 261
Authorization is the process of verifying that an identity token has permission to
access a message flow.
Identity and security token propagation on page 286
Identity and security token propagation enables the identity and security tokens
(associated with each message) to be propagated throughout a message flow, and
on to target applications through output or request nodes.
Security profiles on page 247
A security profile defines the security operations that are to be performed in a
message flow at SecurityPEP nodes and security enabled input and output nodes.
Related tasks:
Configuring the extraction of an identity or security token on page 308
You can configure the SecurityPEP node or security enabled input nodes to extract
the identity or security token from a message and store it in the properties tree
identity fields, enabling it to be processed throughout the message flow and
propagated at output or request nodes.
Configuring identity authentication and security token validation on page 312
You can configure a message flow to perform identity authentication or security
token validation using Integrated Windows Authentication (IWA), Lightweight
Directory Access Protocol (LDAP), a WS-Trust V1.3 compliant security token sever
(STS) such as Tivoli Federated Identity Manager (TFIM) Version 6.2, or HTTP
requests. Support for TFIM V6.1 is also provided, for compatibility with previous
versions of IBM Integration Bus.
Configuring identity mapping on page 333
Configure a security token server (STS), such as Tivoli Federated Identity Manager
(TFIM) V6.2, to map the incoming security token and, if required, to authenticate
and authorize it.
Creating a security profile on page 294
You can create a security profile for use with Lightweight Directory Access
Protocol (LDAP) or a WS-Trust V1.3 compliant security token server (STS), such as
Tivoli Federated Identity Manager (TFIM) V6.2. Support is also provided for TFIM
V6.1, for compatibility with previous versions of IBM Integration Bus. You can
create the security profile by using either the mqsicreateconfigurableservice
Chapter 2. Security
393
Procedure
1. Use the mqsireloadsecurity command to clear the security cache, so that the
traced request goes to the security provider rather than using a result held in
the cache. This ensures that the reason codes returned from the security
provider are displayed in the traced exception.
2. Enable user trace for the message flow, using either the workbench or the
mqsichangetrace command (see Starting user trace for more information).
3. Resend the request that has been rejected by the security provider.
4. Stop the user trace, using either the workbench or the mqsichangetrace
command.
5. Use the mqsireadlog command to examine the trace information that was
recorded by the user trace. This trace information contains the error codes
provided by the broker and the security provider.
Related concepts:
394
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
395
396
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
on z/OS.
Procedure
v Administrator user IDs that can issue mqsi* commands. Ensure that all these
user IDs are members of the mqbrkrs group.
If you enable broker administration security, you must set up additional
authorization for user IDs for the commands listed in Commands and
authorizations for broker administration security. For more information about
broker administration security, see Administration security overview on page
214.
v On Windows only, service user IDs under which brokers run. For further
information, see Deciding which user account to use for the broker service ID
on page 407.
v IBM Integration Toolkit users. See Security for the IBM Integration Toolkit and
IBM Integration Explorer on page 398 for information about checking and
securing connections from the IBM Integration Toolkit.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Administration security overview on page 214
Broker administration security controls the rights of users to complete
administrative tasks for a broker and its resources.
Related tasks:
Considering security for a broker on page 407
Consider several factors when you are deciding which users can execute broker
commands, and which users can control security for other broker resources.
Chapter 2. Security
397
398
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the IBM Integration Toolkit or the IBM Integration Explorer, right-click the
Integration Nodes folder and click Connect to a Remote Integration Node. The
Connect to a Remote Integration Node wizard opens.
2. Enter the values for Queue Manager Name, Host, and Port that you want to
use.
3. Enter the Security Exit Class name. The name must be a valid Java class name.
4. Enter the JAR File location for the Security Exit that is required on this
connection. In IBM Integration Explorer you can click Browse to select the file.
Results
The security exit is started every time a message passes across the connection.
What to do next
Alternatively, use SSL to communicate between the IBM Integration API (also
known as the CMP) and the broker; see Implementing SSL authentication on
page 415.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Security exits on page 205
Use security exit programs to verify that the partner at the other end of a
connection is genuine.
Related tasks:
Chapter 2. Security
399
Procedure
1. Use WebSphere MQ facilities to update the SVRCONN definition to specify the
required value in the SSLCIPH attribute.
2. In the IBM Integration Toolkit or IBM Integration Explorer, define the
connection to the broker. You can set the SSL fields only when you define the
connection; you cannot change them later. If you have already defined your
connection, delete it, and define it again.
3. Select the cipher suite that matches the value you set for the SSLCIPH property
of the SVRCONN channel.
4. Enter the full path and name for the keystore and truststore, or click Browse to
search for them.
5. Add the queue manager certificate to the client truststore.
6. For one-way authentication, when the client CMP application authenticates the
broker, complete the following steps:
a. Generate or obtain all the appropriate keys and certificates. You must
include a signed pkcs12 certificate for the server and the appropriate public
key for the certificate authority that signed the pkcs12 certificate. See
Creating SSL certificates for the WebSphere MQ Java Client on page 402,
for some example steps for creating keys and certificates.
b. Add the pkcs12 certificate to the queue manager certificate store and assign
it to the queue manager. Use the standard WebSphere MQ facilities; for
example, WebSphere MQ Explorer.
c. Add the certificate of the certificate authority to the Java Secure Socket
Extension (JSSE) truststore of the Java Virtual Machine (JVM) at the CMP
application end by using a tool such as Keytool.
400
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
d. Decide which cipher suite to use and change the properties on the
server-connection channel by using WebSphere MQ Explorer to specify the
cipher suite to be used. This channel has a default name of
SYSTEM.BKR.CONFIG; this name is used unless you specified a different name
on the Connect to Remote Integration Node wizard; see Connecting to a
remote broker on page 4 and Connecting to a remote integration node on
z/OS on page 6.
e. Add the required parameters (cipher suite, for example) to the CMP
application. If a truststore other than the default is used, its full path must
be passed in by the truststore parameter.
After you complete these steps, the CMP application connects to the broker if it
has a valid key that is signed by a trusted certificate authority.
7. For two-way authentication, when the broker also authenticates the CMP
application, complete the following additional steps:
a. Generate or obtain all the appropriate keys and certificates. You must
include a signed pkcs12 certificate for the client and the appropriate public
key for the certificate authority that signed the pkcs12 certificate. See
Creating SSL certificates for the WebSphere MQ Java Client on page 402,
for some example steps for creating keys and certificates.
b. Add the certificate of the certificate authority to the queue manager
certificate store by using the standard WebSphere MQ facilities.
c. Set the server-connection channel to always authenticate. Specify
SSLCAUTH(REQUIRED) in runmqsc, or in WebSphere MQ Explorer.
d. Add the pkcs12 certificate to the JSSE keystore of the JVM at the CMP
application end by using a tool such as Keytool.
e. If you are not using the default keystore, its full path must be passed into
the CMP through the keystore parameter.
After you complete these steps, the broker allows the CMP application to
connect only if that application has a certificate signed by one of the certificate
authorities in its keystore.
What to do next
You can make further restrictions by using the sslPeerName field; for example, you
can allow connections only from certificate holders with a specific company or
department name in their certificates. In addition, you can invoke a security exit
for communications between the CMP applications and the broker; see Using
security exits on page 399.
For more information about configuring connections to be secured with SSL, see
the WebSphere MQ Java Client developerWorks article.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Security for the IBM Integration Toolkit and IBM Integration Explorer on page
398
What to consider when you set up security for the IBM Integration Toolkit and
IBM Integration Explorer.
Related tasks:
Chapter 2. Security
401
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
Related information:
WebSphere MQ Version 7 product documentation
Creating SSL certificates for the WebSphere MQ Java Client:
The WebSphere MQ Java Client supports SSL-encrypted connections over the
server-connection (SVRCONN) channel between an application and the queue
manager. To configure SSL-encrypted connections you must first create key stores
and certificates.
Before you begin
Before you start:
v Create a broker
v Start the broker
v Set the environment variable JAVA_HOME to the location of the IBM Key
Management tools in the WebSphere MQ install, for example C:\Program
Files\IBM\WebSphere MQ\gskit\jre\ or /opt/mqm/ssl/jre.
About this task
Each WebSphere MQ queue manager has a key repository for certificates. When an
application attempts to connect to a secure queue manager, the application's
certificate must be validated against the contents of the queue manager's key
repository. One option for configuring SSL for the queue manager is to use a
self-signed certificate.
Two certificates must be signed and created. One must be created for the server
queue manager, and a second created for the client, for example the IBM
Integration Explorer.
The instructions in this topic use the gsk7cmd command to create and sign the
certificates. Run the gsk7cmd for a full list of the parameters you can use on the
command. To run the gsk7cmd command:
v On Windows, enter the following command on a command line:
402
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
C:\Program Files\IBM\gsk7\bin\gsk7cmd
v On Linux, enter the following command on a command line:
/opt/mqm/ssl/jre/bin/gsk7cmd
Refer to the WebSphere MQ security documentation for more information about
SSL, and creating certificates.
Creating a server certificate for the queue manager:
About this task
Use the IBM Key Management tools on the command line to create a certificate for
the queue manager. In the following example you must replace the following
parameters with your own values:
password
A password for the certificate repository.
qmname
The name of the queue manager for which you want to create a certificate
in lower case.
QMNAME
The name of the queue manager for which you want to create a certificate
in upper case.
Procedure
1. Run the following command to create a key repository of type cms:
gsk7cmd
-keydb-create
-dbkey.kdb
-pwPASSWORD
-typecms -stash
The key.crl, key.kdb, key.rdb, and key.sth key files are created.
2. Run the following command to create a self-signed certificate, where the -dn
flag contains details of your organization:
gsk7cmd
-cert-create
-dbkey.kdb
-pwPASSWORD
-label"qmname"
-dn"CN=My Queue Manager,O=My Company,C=UK"
-expire1000
3. Run the following command to create a request for a personal certificate:
gsk7cmd
-certreq-create
-dbkey.kdb
-pwPASSWORD
-label"ibmwebspheremqqmname"
-dn"CN=My Queue Manager,O=My Company,C=UK"
-fileQMNAME_request.arm
4. Sign the certificate using a certificate authority.
v To obtain a certificate from a certificate authority, you must send the file
containing a certificate signing request to your chosen certificate authority.
v Alternatively you can use the IBM Key Management tools on the command
line to sign the certificate.
Chapter 2. Security
403
gsk7cmd
-cert-sign
-dbkey.kdb
-pwPASSWORD
-label"qmname"
-fileQMNAME_request.arm
-targetQMNAME_signed.arm
-expire364
5. Run the following command to add the signed certificate to the repository:
gsk7cmd
-cert-receive
-dbkey.kdb
-pwPASSWORD
-fileQMNAME_signed.arm
6. Run the following command to export the signed client userid certificate in a
transferable format (in this case PKCS12), with the associated private key and
public CA certificate:
gsk7cmd
-cert-export
-dbkey.kdb
-pwPASSWORD
-label"ibmwebspheremqqmname"
-targetQMNAME_personal.p12
-target_pwPASSWORD
-target_typepkcs12
7. Delete the certificate from the repository:
gsk7cmd
-cert-delete
-dbkey.kdb
-pwPASSWORD
-label"ibmwebspheremqqmname"
8. Create a subdirectory called QMNAME_CMS, and navigate to this directory on the
command line.
9. Run the following command to create a certificate repository in the
QMNAME_CMS directory:
gsk7cmd
-keydb-create
-dbkey.kdb
-pwPASSWORD
-typecms stash
10. Run the following command to import the PKCS12 file into the repository:
gsk7cmd
-cert-import
-file"QMNAME_personal.p12"
-pwPASSWORD
-typepkcs12
-targetkey.kdb
-target_pwPASSWORD
-target_typecms
11. Return to the original directory in which you created the key repository in
step 1.
404
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
Follow the steps in the next section to create a client certificate for the IBM
Integration Explorer.
Creating a client certificate for the IBM Integration Explorer:
About this task
Use the IBM Key Management tools on the command line to create a certificate for
the IBM Integration Explorer. In the following example you must replace the
following parameters with your own values:
password
A password for the certificate repository.
qmname
The name of the queue manager for which you want to create a certificate
in lower case. This is the same value used in the steps to create a client
certificate for the queue manager.
USERID
The user id for which you want to create a certificate.
Procedure
1. In the directory where you created a key repository for the server queue
manager in step 1 above, run the following command to create a request
(private key plus certificate details) for a certificate to be signed for the server
queue manager:
gsk7cmd
-certreq-create
-dbkey.kdb
-pwPASSWORD
-label"ibmwebspheremqqmname"
-dn"[email protected],O=My Company,C=UK"
-fileUSERID_request.arm
2. Run the following command to sign the certificate:
gsk7cmd
-cert-sign
-dbkey.kdb
-pwPASSWORD
-label"qmname"
-fileUSERID_request.arm
-targetUSERID_signed.arm
-expire364
3. Run the following command to add the signed certificate to the repository:
gsk7cmd
-cert-receive
-dbkey.kdb
-pwPASSWORD
-fileUSERID_signed.arm
4. Run the following command to export the signed client userid certificate in a
transferable format (in this case pkcs12), with the associated private key and
public CA certificate:
gsk7cmd
-cert-export
-dbkey.kdb
-pwPASSWORD
Chapter 2. Security
405
-label"ibmwebspheremqqmname"
-targetUSERID_personal.p12
-target_pwPASSWORD
-target_typepkcs12
5. Delete the certificate from the repository:
gsk7cmd
-cert-delete
-dbkey.kdb
-pwPASSWORD
-label"ibmwebspheremqqmname"
6. Create a subdirectory called USERID_JKS, and navigate to this directory on the
command line.
7. Run the following command to create a certificate repository in the USERID_JKS
directory:
gsk7cmd
-keydb-create
-dbkeyStore.jks
-pwPASSWORD
-typejks
8. Run the following command to import the pkcs12 file into the repository:
gsk7cmd
-cert-import
-file"USERID_personal.p12"
-pwPASSWORD
-typepkcs12
-targetkeyStore.jks
-target_pwPASSWORD
-target_typejks"
9. Return to the original directory in which you created the key repository in step
1.
What to do next
You must now copy the files from the Label_CMS directory to your queue
manager's SSL directory. For example, /var/mqm/qmgrs/QM1/ssl or C:\Program
Files\IBM\WebSphere MQ\Qmgrs\QM1\ssl. The keystore.jksfile in the LABEL_JKS
directory must be on the same machine as the IBM Integration Explorer. You might
also require the AMQCLCHL.TAB file to be copied to the same system as the IBM
Integration Explorer. This file can be found in the queue manager's @ipcc directory,
for example, /var/mqm/qmgrs/QM1/@ipcc or C:\Program Files\IBM\WebSphere
MQ\qmgrs\QM1\@ipcc.
When you configure the SSL settings in the IBM Integration Explorer you must
specify the full path to the keystore.jksfile.
Related concepts:
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Related tasks:
Using security exits on page 399
Define a security exit on the WebSphere MQ channel when you create an
integration node (broker) connection.
406
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Deciding which user account to use for the broker service ID
2. Setting security on the broker queues on page 408
3. Securing the broker registry on page 409
Chapter 2. Security
407
Procedure
1. Do you want your broker to run under a Windows local account?
a. No: Go to the next question.
b. Yes: Ensure that your user ID has the following characteristics:
v It is defined in your local domain.
v It is a member of the mqbrkrs group.
Go to Setting security on the broker queues.
2. Do you want your broker to run under a Windows domain account?
a. No: Go to the next question.
b. Yes: Assume that your computer named, for example, WKSTN1, is a
member of a domain named DOMAIN1. When you run a broker using, for
example, DOMAIN1\user1, ensure that:
v Your user ID has been granted the Logon as a service privilege (from
the Local Security Policy).
v DOMAIN1\user1 is a member of DOMAIN1\MyDomainGroup group,
where MyDomainGroup is a domain group which you have defined on
your domain controller.
v DOMAIN1\MyDomainGroup is a member of WKSTN1\mqbrkrs.
Go to Setting security on the broker queues.
3. Do you want your broker to run under theWindows built in LocalSystem
account?
a. Yes: Specify LocalSystem for the i parameter on the mqsicreatebroker or
mqsichangebroker command.
In either case you must enter the a (password) parameter on the command
line, but the value entered is ignored.
Go to Setting security on the broker queues.
Results
Note that for cases one and two above, the user ID chosen must be granted the
Logon as a service privilege.
This is normally done automatically by the mqsichangebroker command or the
mqsichangeproperties command when a service user ID is specified that does not
have this privilege.
However, if you want to do this manually before running these commands, you
can do this by using the Local Security Policy tool in Windows, which you can
access by selecting Control Panel > Performance and maintenance >
Administrative Tools > Local Security Policy.
408
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
Procedure
1. Decide on the started task name of the broker. This name is used to set up
started task authorizations, and to manage your system performance.
2. Decide on a dataset naming convention for your IBM Integration Bus PDSE. A
typical name might be WMQI.MQP1BRK.CNTL, where MQP1 is the queue manager
name. You must give the IBM Integration Bus, WebSphere MQ, and z/OS
administrators access to these data sets. You can control access in several ways,
for example:
v Give each user individual access to the specific data set
Chapter 2. Security
409
v Define a generic dataset profile, defining a group that contains the user IDs
of the administrators. Grant the group control access to the generic data set
profile
3. Configure access to components and resources on z/OS. For more information,
see Summary of required access (z/OS).
4. Define an OMVS group segment for this group so that information can be
extracted from the External Security Manager (ESM) database to enable you to
use Publish/Subscribe security.
5. Define an OMVS segment for the started task user ID and give its home
directory sufficient space for any IBM Integration Bus memory dumps.
Consider using the started task procedure name as the started task user ID.
6. Check that your OMVS segment is defined by using the following TSO
command:
LU userid OMVS
The command output includes the OMVS segment, for example:
USER=MQP1BRK NAME=SMITH, JANE OWNER=TSOUSER
CREATED=99.342 DEFAULT-GROUP=TSOUSER PASSDATE=01.198
PASS-INTERVAL=30
......
OMVS INFORMATION
---------------UID=0000070594
HOME=/u/MQP1BRK
PROGRAM=/bin/sh
CPUTIMEMAX=NONE
ASSIZEMAX=NONE
FILEPROCMAX=NONE
PROCUSERMAX=NONE
THREADSMAX=NONE
MMAPAREAMAX=NONE
The command:
df -P /u/MQP1BRK
displays the amount of space used and available, where /u/MQP1BRK is the value
from HOME (on a previous line). This command shows you how much space is
currently available in the file system. Check with your data administrator that
this space is sufficient. You require a minimum of 400 000 blocks available if a
memory dump is taken.
7. Associate the started task procedure with the user ID to be used. For example,
you can use the STARTED class in RACF. The IBM Integration Bus and z/OS
administrators must agree on the name of the started task.
8. IBM Integration Bus administrators require an OMVS segment and a home
directory. Check the setup previously described.
9. The started task user IDs and the IBM Integration Bus administrators require
access to the install processing files, the component-specific files, and the home
directory of the started task. During customization, the file ownership can be
changed to alter group access. This change might require superuser authority.
Results
On z/OS, you can specify an alternative user ID to run an integration server so
that it accesses resources according to the permissions assigned to it, rather than
410
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
the permissions assigned to the main broker user ID; for more information, see
Integration server user IDs on z/OS. For information about how to specify an
integration server user ID, see Specifying an alternative user ID to run an
integration server on z/OS on page 413.
What to do next
When the service user ID is root, all libraries loaded by the broker, including all
user-written plug-in libraries, and all shared libraries that they might access, also
have root access to all system resources (for example, file sets). Review and assess
the risk involved in granting this level of authorization.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Security overview on page 203
When you are designing an IBM Integration Bus application it is important to
consider the security measures that are needed to protect the information in the
system.
Integration server user IDs on z/OS
On z/OS, you can specify an alternative user ID to run an integration server so
that it accesses resources according to the permissions assigned to it, rather than
the permissions assigned to the main broker user ID.
Related tasks:
Creating a broker on z/OS
Create the broker component and the other resources on which it depends.
Customizing the broker JCL
This subtask is part of the larger task of creating a broker on z/OS.
Creating the environment file
This is part of the larger task of creating a broker on z/OS.
Specifying an alternative user ID to run an integration server on z/OS on page
413
You can change the user ID under which an integration server runs so that it can
access resources according to the permissions assigned to it, rather than the
permissions assigned to the main broker user ID.
411
On z/OS, the user ID assigned to the broker is the started task (STC) user ID that
is assigned to the started task JCL. By default, each broker on z/OS has a single
started task JCL, which is used to start the main broker address space and all
associated integration server address spaces. However, you can specify a different
started task JCL, and therefore a different user ID, for one or more integration
servers. As a result, integration servers can be started using a different started task
JCL and run under different user IDs with different permissions to access
resources. For example, an integration server can access messages from WebSphere
MQ through the integration server's task ID (rather than the main broker ID) by
default. Integration servers can also access files according to the permissions that
are assigned to the integration server's user ID.
You can specify the required environment variable in the main broker profile,
BIPBPROF. You can use the MQSI_STARTEDTASK_FIXED_integrationServerName,
MQSI_STARTEDTASK_MULTI_integrationServerName, or MQSI_STARTEDTASK_DEFAULT
environment variables to specify a different started task and user ID, for one or
more integration servers (where integrationServerName is the name of your
integration server). These environment variables override the started task and user
ID that are associated with the broker, and replace them with the started task and
user ID associated with a specific integration server:
v Use the MQSI_STARTEDTASK_FIXED_integrationServerName=STC environment
variable to specify the name of one or more integration servers (where
integrationServerName is the last 8 characters of the integration server name, and
STC is the name of the integration server started task JCL). For example, specify
1DEFAULT in place of integrationServerName to override an integration server
called TEST1DEFAULT. If multiple integration servers end with the same 8
characters, all will be overridden; for example, TEST11DEFAULT would be
overridden, but TEST12DEFAULT would not.
v Use the MQSI_STARTEDTASK_MULTI_integrationServerName=STC environment
variable to override the user ID for multiple integration servers (where
integrationServerName functions as a wildcard and STC is the name of the started
task JCL that is used to start each of the integration servers). For example,
specify MQ05 in place of integrationServerName to override the user ID for any
integration servers in which the last 8 characters start with MQ05.
v Use the MQSI_STARTEDTASK_DEFAULT=STC environment variable to override the
started task JCL (STC) for all integration servers, unless it is overridden by the
MQSI_STARTEDTASK_FIXED_integrationServerName or
MQSI_STARTEDTASK_MULTI_integrationServerName environment variable.
For information about how to define a user ID on an integration server, see
Specifying an alternative user ID to run an integration server on z/OS on page
413.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Specifying an alternative user ID to run an integration server on z/OS on page
413
You can change the user ID under which an integration server runs so that it can
access resources according to the permissions assigned to it, rather than the
permissions assigned to the main broker user ID.
412
Procedure
1. Create the new RACF started task profile with a new user ID, which will be
used to run the integration server. Consider the following points when you are
creating the new started task:
v The new started task must be created with an OMVS segment including a
unique UID, home directory, and the ability to create data sets under the
broker's HLQ and alias.
v The started task procedure name to be used for the integration server
address space must start with the same four characters as the main broker
started task. For example, if the main broker started task is MQ01BRK, the
started task name for the integration server could be MQ01EG1 but not
MQ02EG2. As a result, consistency is maintained between the main broker
started task, the integration server, and the queue manager, which helps to
identify the relationship between them. If the first four characters are not the
same, the integration server is started using the main broker started task JCL.
2. Ensure that the new user ID associated with the new started task JCL has the
same RACF primary group as the existing broker user ID, so that they can
access shared resources. Also ensure that the new user ID has the required
privileges to the existing broker filesystem and dataset (which it should have
through the primary group access).
Chapter 2. Security
413
3. Ensure that the MQ and SMF authorizations are updated for the new user ID;
for more information, see Summary of required access (z/OS).
4. Copy the existing broker started task JCL to the new started task JCL in the
PROCLIB.
5. Ensure that the main broker user ID has been granted permission to the
SUPERUSER.PROCESS.KILL RACF profile. This permission is required so that
the main control address space can recover any existing integration server
address spaces in the event of a failure.
6. Refresh the started RACF classes to implement the updates.
7. Change the user ID by adding the appropriate environment variable to the
brokers profile.
v The integration server name specified in the environment variable is the last
8 characters of the integration server, after any overrides have been applied.
This is the same 8-character name that is displayed as the STEPNAME
against the integration server address space in SDSF.
v Ensure that the integration server name contains only characters that are
valid in the environment variable. If invalid characters are used, the user ID
cannot be overridden.
v If you specify more than one environment variable, they are read in the
following order (with MQSI_STARTEDTASK_FIXED_integrationServerName
taking precedence):
a. MQSI_STARTEDTASK_FIXED_integrationServerName
b. MQSI_STARTEDTASK_MULTI_integrationServerName
c. MQSI_STARTEDTASK_DEFAULT
where integrationServerName is the name of your integration server. For
example:
export MQSI_STARTEDTASK_FIXED_DEFAULT=MQ01EG1 changes any integration
server which has the last 8 characters equal to DEFAULT to started task
MQ01EG1
export MQSI_STARTEDTASK_MULTI_TEST=MQ01EG2 changes any integration
server which has the last 8 characters starting with TEST to started task
MQ01EG2
export MQSI_STARTEDTASK_DEFAULT=MQ01EG3 changes all integration servers
which are not overridden by
MQSI_STARTEDTASK_FIXED_integrationServerName or
MQSI_STARTEDTASK_MULTI_integrationServerName to started task MQ01EG3.
8. Submit BIPGEN to the broker's ENVFILE.
9. Restart the broker.
Related concepts:
Integration server user IDs on z/OS on page 411
On z/OS, you can specify an alternative user ID to run an integration server so
that it accesses resources according to the permissions assigned to it, rather than
the permissions assigned to the main broker user ID.
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Related tasks:
Configuring broker user IDs on z/OS on page 409
When you create your brokers on z/OS, you must set up security by configuring
broker user IDs with the appropriate permissions.
414
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
415
The IBM Integration Bus Java runtime environment (JRE) is provided with strong
but limited strength encryption. If you cannot import keys into keystores, limited
strength encryption might be the cause. Either start ikeyman by using the strmqikm
command, or download unrestricted jurisdiction policy files from IBM developer
kits: Security information.
Important: Your country of origin might have restrictions on the import,
possession, use, or re-export to another country, of encryption software. Before you
download or use the unrestricted policy files, you must check the laws of your
country. Check its regulations and its policies on the import, possession, use, and
re-export of encryption software, to determine whether it is permitted. Note that
when you apply a fix pack to an existing IBM Integration Bus installation, the JVM
is overwritten, including any updated policy set files. These policy set files must be
restored before you restart the broker.
416
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The password argument is optional. If you omit it, you are prompted to enter a
password. For example:
gsk7cmd -keydb -create
-db myBrokerKeystore.jks
-type jks
A password is required to access this key database.
Please enter a password:
Creating a self-signed certificate for test use:
Use self-signed certificates only for testing SSL, not in production.
Procedure
Enter the following command:
gsk7cmd -cert -create
-db keystore_name
[-pw password]
-label cert_label
-dn "distinguished_name"
For example:
gsk7cmd -cert -create
-db -myBrokerKeystore.jks
-label MyCert
-dn "CN=MyBroker.Server,O=IBM,OU=ISSW,L=Hursley,C=GB"
A password is required to access this key database.
Please enter a password:
Importing a certificate for production use:
Import a personal certificate from a certificate authority for production use.
Procedure
Issue the following command:
gsk7cmd -cert -import
-db pkcs12_file_name
[-pw pkcs12_password]
-label label
-type pkcs12
-target keystore_name
[-target_pw keystore_password]
For example:
gsk7cmd -cert -import
-db SOAPListenerCertificate.p12
-label soaplistener
-type pkcs12
-target myBrokerKeystore.jks
-target_pw myBrokerKpass
A password is required to access this key database.
Please enter a password:
Viewing details of a certificate:
Chapter 2. Security
417
Procedure
Issue the following command:
gsk7cmd -cert -details
-db keystore_name
[-pw password]
-label label
For example:
gsk7cmd -cert -details
-db myKeyStore.jks
-label MyCert
A password is required to access this key database.
Please enter a password:
Label: MyCert
Key Size: 1024
Version: X509 V3
Serial Number: 4A D7 39 1F
Issued By: MyBroker.Server
ISSW
IBM
Hursley, GB
Subject: MyBroker.Server
ISSW
IBM
Hursley, GB
Valid From: 15 October 2009 16:00:47 oclock BST To: 15 October 2010 16:00:47 o
clock BST
Fingerprint: 98:5D:C4:70:A0:28:84:72:FB:F6:3A:D2:D2:F5:EE:8D:30:33:87:82
Signature Algorithm: 1.2.840.113549.1.1.4
Trust Status: enabled
Extracting a certificate:
Generate a copy of a self-signed certificate that you can import as a trusted (or
signer certificate) into a truststore file. Use this procedure only for testing, not
production.
About this task
Certificates can be extracted in two formats:
v Base64-encoded ASCII data (.arm). This format is convenient for inclusion in
XML messages, and transmission over the Internet.
v Binary DER data (.der).
Procedure
Issue the following command:
gsk7cmd -cert -extract
-db keystore_name
-pw keystore_passwd
-label label
-target file_name
[-format ascii | binary]
For example:
418
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
419
Version: X509 V3
Serial Number: 49 49 23 1B
Issued By: VSR1BK
ISSW
IBM
GB
Subject: VSR1BK
ISSW
IBM
GB
Valid From: 17 December 2008 16:04:43 oclock GMT To: 17 December 2009 16:04:43
oclock GMT
Fingerprint: CB:39:E7:D8:1D:C0:00:A1:3D:B1:97:69:7A:A7:77:19:6D:09:C2:A7
Signature Algorithm: 1.2.840.113549.1.1.4
Trust Status: enabled
420
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
g3
g3
g2
g2
g3
g2
g3
g2
421
422
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
423
424
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For more information about the SecurityPEP node, see SecurityPEP node.
v Use a JavaCompute node to retrieve the issuer field in a client certificate that is
received by an HTTPInput node.
String clientCertSubject = localEnv.getFirstElementByPath("HTTP/Input/TransportSecurity/ClientAuth/Certificate/Issuer").getValueAsString();
For more information about the JavaCompute node, see JavaCompute node.
v Use a Compute node to set the subject field of a certificate that is received by a
TCPIPServerInput node.
SET LocalEnvironment.TCPIP.Input.TransportSecurity.ClientAuth.Certificate.Subject = BROKERUSER;
For more information about the Compute node, see Compute node.
Related concepts:
Digital certificates on page 208
Certificates provide a way of authenticating users. Instead of requiring each
participant in an application to authenticate every user, third-party authentication
relies on the use of digital certificates.
Message tree structure
The message tree is a part of the logical message tree in which the broker stores its
internal representation of the message body.
Local environment tree structure
The local environment tree is a part of the logical message tree in which you can
store information while the message flow processes the message.
Related tasks:
Accessing the Properties tree
The Properties tree has its own correlation name, Properties, and you must use this
in all ESQL statements that refer to or set the content of this tree.
Setting up a public key infrastructure on page 415
Configure keystores, truststores, passwords, and certificates to enable SSL
communication, and Web Services Security.
Chapter 2. Security
425
426
HTTPAsyncRequest node
SOAPRequest node
SOAPAsyncRequest node
SCARequest node
SCAAsyncRequest node
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You must enable CRL checking per node, and not per Java Virtual Machine (JVM).
That is, the com.ibm.jsse2.checkRevocation JVM system property is ignored and
the value of the node's Enable certificate revocation list checking property is
used instead.
Configure the path to the CRL files that the JVM uses to check certificates by using
the broker.crlFileList property. You can set this property at the level of the
integration server or at the level of the integration node (broker). The value of the
property is a list of paths to CRL files separated by the path separator character for
the host operating system. You can set the value of this property by using the
mqsichangeproperties command. For example:
mqsichangeproperties IB9NODE -o BrokerRegistry -n crlFileList -v file_path
where IB9NODE is the name of the node and file_path is the path to the CRL file.
You can configure the JVM to automatically download any CRL files (from CRL
distribution points that are specified in the CA's digital signature) by setting the
com.ibm.security.enableCRLDP property to true. The default value is false. You
can set the value of this property by using the mqsichangeproperties command.
For example:
mqsichangeproperties IB9NODE -e exgroup1 -o ComIbmJVMManager -n enableCRLDP -v true
where IB9NODE is the name of the node and exgroup1 is the name of the
integration server.
You can use the com.ibm.security.enableCRLDP and broker.crlFileList properties
together to enable automatic loading of CRLs.
You cannot check the revocation status of self-signed certificates because those
certificates are by definition untrusted and they have no CA against which to
check validity. If CRL checking is enabled on a node, and that node is presented
with a self-signed certificate, the connection fails. By enabling CRL checking, you
can prevent IBM Integration Bus from connecting to remote hosts that use
untrusted certificates when trusted certificates are expected.
When you use IBM Integration Bus to receive HTTP requests, you can configure
the HTTP listener to use a CRL file. The validity of client certificates is then
checked against the CRL file before connections are accepted. You can configure
the broker-wide listener to use a CRL file by using the following command:
mqsichangeproperties IB9NODE -b httplistener -o HTTPSConnector
-n crlFile -v file_path
where IB9NODE is the name of the node and file_path is the path to the CRL file.
You can configure an HTTP listener that is embedded in an integration server to
use a CRL file by using the following command:
mqsichangeproperties IB9NODE -e exgroup1 -n crlFile -v file_path
where IB9NODE is the name of the node, exgroup1 is the name of the integration
server, and file_path is the path to the CRL file.
Related tasks:
Implementing SSL authentication on page 415
Use SSL authentication to enhance security in your broker environment.
Chapter 2. Security
427
428
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
429
430
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
431
/usr/lpp/java/J6.0/bin/keytool -delete
-alias DUMMY
-keystore /u/CSQPBRK/ssl/csqpbrkKeystore.jks
-storepass changeit
3. Optional: Import the CA signer certificates. Omit this step if you require
separate files for a keystore and truststore, and are creating a keystore. For
example:
/usr/lpp/java/J6.0/bin/keytool -import
-keystore /u/CSQPBRK/ssl/csqpbrkKeystore.jks
-storepass changeit
-alias RACFCA
-file /u/CSQPBRK/ssl/csqpbrk.ca.der -v
4. Optional: Import the broker personal certificate. Omit this step if you require
separate files for a keystore and truststore, and are creating a truststore. For
example:
/usr/lpp/java/J6.0/bin/keytool -import
-keystore /u/CSQPBRK/ssl/csqbrkKeystore.jks
-storepass changeit
-alias CSQPBRK
-file /u/CSQPBRK/ssl/csqpbrk.pers.p12
-v
-pkcs12
-keypass changeit
-noprompt
5. List the contents of the broker keystore. For example:
/usr/lpp/java/J6.0/bin/keytool -list
-keystore /u/CSQPBRK/ssl/csqbrkKeystore.jks
-storepass changeit
What to do next
What to do next: Configure IBM Integration Bus on z/OS for SSL.
Related tasks:
Implementing SSL authentication on z/OS on page 429
Use SSL authentication to enhance security in your broker environment.
Generate a broker certificate using RACF as the Certification Authority (z/OS)
on page 429
You can use RACF as the Certification Authority (CA) for internal certificates in
your enterprise.
Configure IBM Integration Bus on z/OS for SSL
Define the location of the keystore and truststore, set passwords, and enable SSL.
Configure IBM Integration Bus on z/OS for SSL:
Define the location of the keystore and truststore, set passwords, and enable SSL.
Before you begin
Before you start: complete the following tasks:
v Generate a broker certificate using RACF as the Certification Authority (z/OS)
on page 429
v Create and initialize the broker keystore and truststore (z/OS) on page 431
432
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3.
4.
5.
6.
Chapter 2. Security
433
CSQPBRK
-n brokerKeystore::password
-u ignore -p changeit
7. Define the truststore password. For example:
BPXBATSL PGM /usr/lpp/mqsi/V9R0M0/bin/mqsisetdbparms CSQPBRK
-n brokerTruststore::password
-u ignore -p changeit
8. Start the broker.
9. Verify and test your configuration.
Related tasks:
Implementing SSL authentication on z/OS on page 429
Use SSL authentication to enhance security in your broker environment.
Generate a broker certificate using RACF as the Certification Authority (z/OS)
on page 429
You can use RACF as the Certification Authority (CA) for internal certificates in
your enterprise.
Create and initialize the broker keystore and truststore (z/OS) on page 431
Create a keystore and import your personal certificate and signer certificates.
Starting and stopping a broker on z/OS on page 23
Run the appropriate command from SDSF to start or stop a broker.
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS:
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
About this task
You can enable SSL by following the instructions in Implementing SSL
authentication on z/OS on page 429. This topic describes an alternative method
that uses AT-TLS to enable SSL without the need to complete configuration steps in
IBM Integration Bus. AT-TLS provides the following benefits when using SSL/TLS
protocols with IBM Integration Bus on z/OS:
v AT-TLS uses RACF key rings and certificates.
v The Policy Agent (PAGENT) manages the rules and policies that define how SSL
is used to connect to IBM Integration Bus.
v PAGENT can distribute the rules and policies in a z/OS SYSPLEX environment.
v The IBM Integration Bus
v HTTP or SOAP nodes in message flows can have standard HTTP settings (no
SSL/HTTPS).
To configure AT-TLS in your z/OS environment for IBM Integration Bus , complete
the following steps:
Procedure
1. Create a RACF key ring by following the instructions in Creating a RACF key
ring on page 437.
434
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Chapter 2. Security
435
1. Step 1 represents an SSL connection when AT-TLS is not used, which requires
that IBM Integration Bus and the partner application are both enabled for SSL.
2. The SSL handshake is managed by AT-TLS in the TCP layer.
3. Inbound or outbound application data is received or sent in the clear by IBM
Integration Bus. The TCP layer validates and decrypts inbound data from
partner applications, or encrypts outbound data to partner applications.
4. Inbound or outbound application data is protected by SSL.
AT-TLS components
RACF key ring
The RACF key ring contains the IBM Integration Bus personal certificate
and the partner application signer certificate.
AT-TLS policies
This file contains the rules and policies that control the SSL connections
436
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
that are managed by AT-TLS. These policies are created by the network
administrator, and are checked and enforced by the TCP network layer of
the TCP/IP stack.
Policy Agent
This component manages and distributes network policies, including
AT-TLS policies, to the TCP/IP stack or stacks. The policy agent is also
called PAGENT. For AT-TLS to function successfully, PAGENT must be
configured correctly and operational.
TCP/IP stack
The TCP/IP stack is the component that implements the AT-TLS services.
The TCP network layer is where SSL connections are intercepted, the SSL
handshake is performed, and data is decrypted and encrypted. The
TCP/IP stack uses RACF services to validate and accept certificates that
are presented by the partner application during the handshake. RACF
retrieves the IBM Integration Bus personal certificate from the key ring.
Related tasks:
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS on page 434
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
Creating a RACF key ring
To create a RACF key ring, you must first generate a RACF CA certificate and a
personal certificate for IBM Integration Bus, then connect the certificates to the key
ring.
Configuring and activating the policy agent (PAGENT) on page 439
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Defining and installing AT-TLS policies on page 441
Define and install AT-TLS policies by using the IBM Configuration Assistant for
z/OS Communications Server.
Testing and verifying AT-TLS on page 444
Test and verify AT-TLS by using the SOAP Nodes sample.
Diagnosing problems with PAGENT and AT-TLS on page 446
To help with problem determination with PAGENT and AT-TLS, activate tracing
and logging.
Creating a RACF key ring:
To create a RACF key ring, you must first generate a RACF CA certificate and a
personal certificate for IBM Integration Bus, then connect the certificates to the key
ring.
About this task
Each RACF key ring has its own name up to 237 characters long and is associated
with a user ID. A RACF key ring is connected to a set of personal certificates and
trusted certificates that are stored in the RACF database. The RACF command
RACDCERT is used to create and delete key rings and to connect or disconnect
certificates to the key rings. RACF key rings are also called System Authorization
Facility (SAF) key rings. SAF is an open standard to access security services.
To create a RACF key ring to be used by AT-TLS on behalf of IBM Integration Bus,
complete the following steps.
Chapter 2. Security
437
Procedure
1. Generate a RACF certificate authority (CA) certificate.
You can use RACF as a CA to generate and sign personal certificates for their
internal systems or applications. This certificate must be created once, and it is
used to sign every personal certificate that is generated by RACF. The following
example shows how to use a RACF command to generate a RACF CA
certificate.
RACDCERT CERTAUTH GENCERT +
SUBJECTSDN(CN(MQRootCA) +
OU(ISSW) +
O(IBM) +
L(HURSLEY) SP(WINCHESTER) C(GB)) +
KEYUSAGE(HANDSHAKE DATAENCRYPT DOCSIGN CERTSIGN) +
WITHLABEL(MQRootCA) +
NOTAFTER(DATE(2020/01/30)) +
SIZE(1024)
2. Generate a personal certificate for IBM Integration Bus.
This certificate identifies a specific instance of IBM Integration Bus. This
certificate is presented to the partner application during the SSL handshake.
This certificate must be associated with the user ID under which IBM
Integration Bus is running. The following example shows how to use a RACF
command to generate the personal certificate for a broker called WI02BRK that
is running under user ID WI02USR.
RACDCERT ID(WI02USR) +
GENCERT SUBJECTSDN(CN(WI02BRK) +
OU(ISSW) O(IBM) +
L(HURSLEY) SP(WINCHESTER) C(GB)) +
WITHLABEL(WI02BRK) SIZE(1024) +
SIGNWITH(CERTAUTH LABEL(MQRootCA)) +
KEYUSAGE(HANDSHAKE DATAENCRYPT DOCSIGN) +
NOTAFTER(DATE(2012/01/30))
3. Create a RACF key ring and connect the certificates to the key ring.
The RACF key ring must be associated with a user ID (in this case, the IBM
Integration Bus user ID). The key ring must have a name (in this case, the same
name as the broker), and the IBM Integration Bus personal certificate must be
connected to the key ring. The following example shows how to use a RACF
command to create a key ring and connect the IBM Integration Bus personal
certificate.
RACDCERT ID(WI02USR) ADDRING(WI02BRK)
RACDCERT ID(WI02USR) +
CONNECT(ID(WI02USR) LABEL(WI02BRK) RING(WI02BRK))
RACDCERT ID(WI02USR) LISTRING(WI02BRK)
For RACF to validate a partner application certificate, you must import the
signer certificate of the CA that generated and signed the personal certificate of
the partner application. Typically, this certificate is extracted from the partner
application keystore, transferred to z/OS as a data set
(WI02USR.VSR1BK.DER), imported to RACF, and connected to the RACF key
ring as signer (trusted) certificate. The following example shows how to use a
RACF command to add a signer certificate to RACF and connect it to the RACF
key ring.
RACDCERT CERTAUTH ADD(WI02USR.VSR1BK.DER) +
WITHLABEL(VSR1BK) TRUST
RACDCERT CERTAUTH LIST(LABEL(VSR1BK)
438
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
RACDCERT ID(WI02USR) +
CONNECT(CERTAUTH LABEL(VSR1BK) RING(WI02BRK))
RACDCERT ID(WI02USR) LISTRING(WI02BRK)
What to do next
Next: Configure and activate the policy agent by following the instructions in
Configuring and activating the policy agent (PAGENT).
Related concepts:
Application Transparent Transport Layer Security on page 435
AT-TLS is a service provided by the z/OS Communication Server Policy Agent
(PAGENT) and the TCP/IP stack. The AT-TLS service manages SSL connections on
behalf of applications that are running on z/OS. The z/OS applications are
unaware that SSL is used in the connection with partner applications.
Related tasks:
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS on page 434
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
Configuring and activating the policy agent (PAGENT)
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Defining and installing AT-TLS policies on page 441
Define and install AT-TLS policies by using the IBM Configuration Assistant for
z/OS Communications Server.
Testing and verifying AT-TLS on page 444
Test and verify AT-TLS by using the SOAP Nodes sample.
Diagnosing problems with PAGENT and AT-TLS on page 446
To help with problem determination with PAGENT and AT-TLS, activate tracing
and logging.
Configuring and activating the policy agent (PAGENT):
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Before you begin
Before you start:
v Create a RACF key ring by following the instructions in Creating a RACF key
ring on page 437.
About this task
To enable PAGENT for AT-TLS, complete the following steps. For a more detailed
description of how to install and configure PAGENT, see the Policy-based networking
chapter of the z/OS Communications Server IP Configuration Guide on the z/OS
library web page.
Procedure
1. Update the TCP/IP profile.
You must make two changes to the TCP/IP profile to enable AT-TLS:
Chapter 2. Security
439
440
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
441
5. Click Configure.
6. Click Add. The Connectivity Rule wizard opens. Click Next
7. Identify the data endpoints by completing the following fields. A generic rule
facilitates testing, but can be made more specific later.
a. In the Local data endpoint field, select ALL_IP_Addresses.
b. In the Remote data endpoint field, select ALL_IP_Addresses.
c. In the Connectivity Rule Name field, enter a suffix for the name of the
rules, then click Next.
8. Select a requirement map by clicking Add. The map is used to match the type
of IP traffic with the security level to be implemented by AT-TLS.
9. Enter a name and description for the requirement map, then click Work with
Traffic Descriptors. Two traffic descriptors are required: one for the inbound
SOAP requests (IBM Integration Bus is the server), and another for the
outbound SOAP requests (IBM Integration Bus is the client).
10. Create an inbound traffic descriptor by clicking Add , enter a name and
description, then click OK.
11. Enter details about the inbound traffic descriptor:
a. For the local port, select Single port and set the port number to 7800 (the
port on which the SOAPInput node normally listens).
b. For the remote port, select All ports.
c. Set the Indicate the TCP connect direction field to Inbound only.
d. In the Jobname field, enter an asterisk (*).
e. In the User ID field, enter an asterisk (*).
f. Select Use the following key ring database.
g. Select Key ring is in SAF produce (such as RACF), then enter the name of
the key ring.
h. Set the AT-TLS handshake role to Server, then click AT-TLS Advanced.
i. Enter the label of the IBM Integration Bus personal certificate, then click
OK.
12. Click OK to save the traffic details for inbound SOAP traffic, then click OK to
create the traffic descriptor for inbound SOAP.
13. Create an outbound traffic descriptor by clicking Add, add a name and
description, then click OK .
14. Enter details about the outbound traffic descriptor:
a. For the local port, select All ports.
b. For the remote port, select Single port and set the port number to 7843.
c. Set the Indicate the TCP connect direction to Outbound only.
d. In the Jobname field, enter an asterisk (*).
e. In the User ID field, enter an asterisk (*).
f. Select Use the following key ring database.
g. Select Key ring is in SAF produce (such as RACF), then enter the name of
the key ring.
h. Set the AT-TLS handshake role to Client, then click AT-TLS Advanced.
i. Enter the label of the IBM Integration Bus personal certificate, then click
OK.
15. Click OK to save the traffic details for outbound SOAP traffic, then click OK
to create the traffic descriptor for outbound SOAP.
16. Click Close.
442
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
17. To create a security level for IBM Integration Bus, click Work with Security
Levels, then click Add.
a. On the Name and Type tab, enter a name and description.
b. On the Ciphers tab, select Use TLS V1, Use SSL V3, and Use System SSL
defaults, then click OK.
18. To add traffic descriptors to the requirement map, select SOAP_Server and
SOAP_Client from the Objects list, then click Add.
19. For each traffic descriptor, select the AT-TLS security level that you created in
step 17, then click OK.
20. Click Next and set the appropriate Optional Connectivity Rule Settings, which
are used to set tracing levels, tuning parameters, and timings when the rule is
in effect..
21. Click Finish.
22. To save changes to the AT-TLS rules, click Apply changes, then click Main
perspective.
23. To install the AT-TLS policy, select AT-TLS technology, click Install, then click
FTP to send the policy rules to the LPAR.
24. Specify the FTP parameters:
a. Enter the LPAR host name and set the port number to 21.
b. Enter your user ID and password.
c. Enter the AT-TLS policy file location and name (for example,
/etc/pagent/TCPIP_TTLS.policy.
d. Select Default transfer mode.
e. Click Send, wait for file transfer to complete, then check that the transfer
was successful.
f. Click Close.
g. After the file transfer, refresh or restart PAGENT.
The AT-TLS policies have been created and deployed.
What to do next
Next: Test and verify AT-TLS for IBM Integration Bus by following the instructions
in Testing and verifying AT-TLS on page 444.
Related concepts:
Application Transparent Transport Layer Security on page 435
AT-TLS is a service provided by the z/OS Communication Server Policy Agent
(PAGENT) and the TCP/IP stack. The AT-TLS service manages SSL connections on
behalf of applications that are running on z/OS. The z/OS applications are
unaware that SSL is used in the connection with partner applications.
Related tasks:
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS on page 434
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
Creating a RACF key ring on page 437
To create a RACF key ring, you must first generate a RACF CA certificate and a
personal certificate for IBM Integration Bus, then connect the certificates to the key
ring.
Configuring and activating the policy agent (PAGENT) on page 439
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
Chapter 2. Security
443
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Testing and verifying AT-TLS
Test and verify AT-TLS by using the SOAP Nodes sample.
Diagnosing problems with PAGENT and AT-TLS on page 446
To help with problem determination with PAGENT and AT-TLS, activate tracing
and logging.
Testing and verifying AT-TLS:
Test and verify AT-TLS by using the SOAP Nodes sample.
Before you begin
Before you start:
Complete the following tasks:
v Creating a RACF key ring on page 437
v Configuring and activating the policy agent (PAGENT) on page 439
v Defining and installing AT-TLS policies on page 441
About this task
Use the following scenario to test and verify AT-TLS with IBM Integration Bus:
444
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
445
The flows receive or send SOAP inbound and outbound requests between the two
instances of IBM Integration Bus. The SOAP consumer flow in one broker sends
requests to the SOAP provider flow in the other broker. The SOAP nodes on the
Windows broker are SSL enabled. The scenario shows the URLs that are configured
on the SOAPRequest node on each broker.
For more information about how to configure, deploy, and run the SOAP Nodes
sample, see Samples.
Related concepts:
Application Transparent Transport Layer Security on page 435
AT-TLS is a service provided by the z/OS Communication Server Policy Agent
(PAGENT) and the TCP/IP stack. The AT-TLS service manages SSL connections on
behalf of applications that are running on z/OS. The z/OS applications are
unaware that SSL is used in the connection with partner applications.
Related tasks:
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS on page 434
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
Creating a RACF key ring on page 437
To create a RACF key ring, you must first generate a RACF CA certificate and a
personal certificate for IBM Integration Bus, then connect the certificates to the key
ring.
Configuring and activating the policy agent (PAGENT) on page 439
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Defining and installing AT-TLS policies on page 441
Define and install AT-TLS policies by using the IBM Configuration Assistant for
z/OS Communications Server.
Diagnosing problems with PAGENT and AT-TLS
To help with problem determination with PAGENT and AT-TLS, activate tracing
and logging.
Diagnosing problems with PAGENT and AT-TLS:
To help with problem determination with PAGENT and AT-TLS, activate tracing
and logging.
About this task
PAGENT has its own log file with the default name /tmp/pagent.log, which
contains messages about loading AT-TLS rules. Invalid rules are rejected, and
errors are written to the PAGENT log file. You can specify different levels of
logging in the PAGENT configuration file by using the statement LogLevel.
LogLevel 511 gives the most verbose logging.
The TCP/IP stack and the AT-TLS service log messages use SYSLOGD. The AT-TLS
level of tracing is specified by using the advanced options in the connectivity rules.
The highest (more verbose) level of tracing is 255.
The name and location of the log files are specified in the configuration file of the
SYSLOGD (/etc/syslog.conf). The following example shows a configuration that
can be used during testing:
*.* /var/log/%Y/%m/%d/errors
446
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
This syslogd configuration creates log files with names like /var/log/2010/03/20/
errors. Every time syslogd is restarted, it creates a directory based on the current
date. A good procedure is to restart syslogd once a day at midnight.
For more information, see the Diagnosing Policy Agent problems chapter of the z/OS
Communications Server IP Diagnosis Guide on the z/OS library web page.
Related concepts:
Application Transparent Transport Layer Security on page 435
AT-TLS is a service provided by the z/OS Communication Server Policy Agent
(PAGENT) and the TCP/IP stack. The AT-TLS service manages SSL connections on
behalf of applications that are running on z/OS. The z/OS applications are
unaware that SSL is used in the connection with partner applications.
Related tasks:
Enabling SSL on z/OS IBM Integration Bus by using AT-TLS on page 434
You can use Application Transparent Transport Layer Security (AT-TLS) to provide
Secure Sockets Layer (SSL) services on behalf of IBM Integration Bus on z/OS.
AT-TLS is part of z/OS Communication Server.
Creating a RACF key ring on page 437
To create a RACF key ring, you must first generate a RACF CA certificate and a
personal certificate for IBM Integration Bus, then connect the certificates to the key
ring.
Configuring and activating the policy agent (PAGENT) on page 439
Configure PAGENT by updating the TCP/IP profile, granting RACF permission to
TCP/IP resources, preparing the PAGENT startup JCL, and activating syslogd.
Defining and installing AT-TLS policies on page 441
Define and install AT-TLS policies by using the IBM Configuration Assistant for
z/OS Communications Server.
Testing and verifying AT-TLS on page 444
Test and verify AT-TLS by using the SOAP Nodes sample.
Chapter 2. Security
447
448
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
449
Performance
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
450
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Performance planning
|
|
|
When you design your IBM Integration Bus environment and the associated
resources, the decisions that you make can affect the performance of your
applications.
If you are planning to create and maintain a small, stand-alone system with limited
requirements for availability and performance, it is possible to achieve this
relatively quickly. However, if you are planning a large or complex system, or if
you have specific requirements for high availability or performance, it is worth
taking time to understand the factors that can influence your design and the
techniques that you can use to optimize it. As a starting point, consider the
following aspects of your system and understand how these factors can influence
performance:
|
|
|
|
|
|
|
|
|
Message flows
A message flow includes an input node that receives a message from an
application over a particular protocol; for example, WebSphere MQ. The
message must be parsed by the input node, and the performance impact of
this parsing varies according to the parser that is used and the number of
parses required. You can reduce the impact of parsing by using some
optimization techniques such as parsing avoidance or partial parsing. For
more information about parsing, see Parsing and message flow
performance on page 466.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
It is also important to consider how you split your business logic; how
much work should the application do, and how much should the message
flow do? Every interaction between an application and a message flow
involves I/O and message parsing, and therefore adds to processing time.
Design your message flows, and design or restructure you applications, to
minimize these interactions.
|
|
|
For more information about these factors, see Optimizing message flow
response times on page 554 and Optimizing message flow throughput
on page 551.
Messages and message models
The type, format, and size of the messages that are processed can have a
Chapter 3. Performance, monitoring, and workload management
451
Broker configuration
You can create and configure one or more brokers, on one or more
computers, and for each broker you can create multiple integration servers,
and multiple message flows. Your configuration decisions can influence
message flow performance, and how efficiently messages can be processed.
|
|
For more information about these factors, see Tuning the broker on page
543, and Optimizing message flow throughput on page 551.
All these factors are examined in more detail in the Designing for Performance
SupportPac (IP04).
For a description of common performance scenarios, review Troubleshooting
performance problems on page 560.
For further articles about IBM Integration Bus and performance, review these
sources:
v The Business Integration Zone on developerWorks. This site has a search facility;
enter "performance" and review the links that are returned.
v The developerWorks article on message flow performance.
v The developerWorks article on WebSphere Message Broker Explorer accounting
and statistics.
v The developerWorks article on monitoring resource use.
Related tasks:
Message flow design and performance on page 453
Consider the performance implications arising from the design of your message
flow.
Optimizing message flow throughput on page 551
Each message flow that you design must provide a complete set of processing for
messages received from a particular source. This design might result in very
complex message flows that include large numbers of nodes that can cause a
performance overhead, and might create potential bottlenecks. You can increase the
number of message flows that process your messages to provide the opportunity
for parallel processing and therefore improved throughput.
Optimizing message flow response times on page 554
You can use different solutions to improve message flow response times.
Setting configuration timeout values on page 548
Change timeout values that affect configuration tasks in the broker.
452
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
453
v Minimize the volume of message parsing and adopt the most efficient parsing
strategy; for more information, see Parsing and message flow performance on
page 466.
v Custom canonical data formats provide a point of standardization, but they also
involve additional CPU processing. The use of such formats typically results in
two additional conversions per invocation of a message flow: from the external
format into the canonical format and then from the canonical format to the final
external format.
v If a message flow makes a synchronous call to an external application or service
that can be slow or unpredictable in its response, it is more efficient to write the
message flow using an asynchronous model.
v Ensure that your processing logic implements the coding tips provided in Code
design and performance on page 455.
Related tasks:
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Developing message flows
Develop message flows to process your business messages and data. A message
flow is a sequence of processing steps that run in an integration node when an
input message is received.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Optimizing message flow throughput on page 551
Each message flow that you design must provide a complete set of processing for
messages received from a particular source. This design might result in very
complex message flows that include large numbers of nodes that can cause a
performance overhead, and might create potential bottlenecks. You can increase the
number of message flows that process your messages to provide the opportunity
for parallel processing and therefore improved throughput.
Optimizing message flow response times on page 554
You can use different solutions to improve message flow response times.
Parsing and message flow performance on page 466
Understand the impact of parsing on message flow performance, and use
techniques to limit the effect and improve performance.
Message tree navigation and copying on page 467
Message tree navigation and message tree copying can reduce message flow
performance, so it is important to use them appropriately and limit their usage
where possible.
ESQL code tips on page 456
You can improve message flow performance with ESQL by using some
optimization techniques.
Java code tips on page 462
You can improve message flow performance with Java by using some optimization
techniques.
454
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
455
456
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
outRootRef.Field1
outRootRef.Field2
outRootRef.Field3
outRootRef.Field4
outRootRef.Field5
.
.
=
=
=
=
=
Trim(Environment.Variables.DBDATA[A].Field1);
Trim(Environment.Variables.DBDATA[A].Field2);
Trim(Environment.Variables.DBDATA[A].Field3);
Trim(Environment.Variables.DBDATA[A].Field4);
Trim(Environment.Variables.DBDATA[A].Field5);
457
You can reduce the processing time significantly by using reference variables
ESQL CARDINALITY function:
About this task
Avoid the use of CARDINALITY in a loop; for example:
WHILE ( I < CARDINALITY (InputRoot.MRM.A.B.C[]
The CARDINALITY function must be evaluated each time the loop is traversed,
which is costly in performance terms. This is particularly true with large arrays
because the loop is repeated more frequently. It is more efficient to determine the
size of the array before the WHILE loop (unless it changes in the loop) so that it is
evaluated only once; for example:
SET ARRAY_SIZE = CARDINALITY (InputRoot.MRM.A.B.C[]
WHILE ( I < ARRAY_SIZE )
ESQL DECLARE and EVAL statements:
About this task
Reduce the number of DECLARE statements (and therefore the performance cost)
by declaring a variable and setting its initial value within a single statement.
Alternatively, you can declare multiple variables of the same data type within a
single ESQL statement rather than in multiple statements. This technique also helps
to reduce memory usage.
The EVAL statement is sometimes used when there is a requirement to
dynamically determine correlation names. However, it is expensive in terms of
CPU use, because it involves the statement being run twice. The first time it runs,
the component parts are determined, in order to construct the statement that will
be run; then the statement that has been constructed is run.
ESQL PASSTHRU statement:
About this task
The following techniques can significantly improve performance when you are
using PASSTHRU statements:
v Avoid the use of the PASSTHRU statement with a CALL statement to invoke a
stored procedure. As an alternative, you can use the CREATE PROCEDURE ...
EXTERNAL ... and CALL ... commands.
v When you are working with SQL statements that require literal or data values,
use host variables, which map a column value to a variable. This enables
dynamic SQL statements to be reused within the database. An SQL PREPARE on
a dynamic statement is an expensive operation in performance terms, so it is
more efficient to run this only once and then EXECUTE the statement
repeatedly, rather than to PREPARE and EXECUTE every time.
For example, the following statement has two data and literal values, 100 and IBM:
PASSTHRU('UPDATE SHAREPRICES AS SP SET Price = 100 WHERE SP.COMPANY = 'IBM'');
458
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
This statement is effective when the price is 100 and the company is IBM. When
either the Price or Company changes, another statement is required, with another
SQL PREPARE statement, which impacts performance.
However, by using the following statement, Price and Company can change without
requiring another statement or another PREPARE:
PASSTHRU('UPDATE SHAREPRICES AS SP SET Price = ? WHERE SP.COMPANY = ?',
InputRoot.XML.Message.Price,InputRoot.XML.Message.Company);
You can check that dynamic SQL is achieving maximum statement reuse, by using
the following commands to display the contents of the SQL statement cache in
DB2:
db2 connect to <database name>
db2 get snapshot for database on <database name>
Use the following commands to see the contents of the dynamic statement cache:
db2 connect to <database name>
db2 get snapshot for dynamic SQL on <database name>
ESQL reference variables:
About this task
You can use reference variables to refer to long correlation names such as
InputRoot.XMLNSC.A.B.C.D.E. Declare a reference pointer as shown in the following
example:
DECLARE refPtr REFERENCE to InputRoot.XMLNSC.A.B.C.D;
To access element E of the message tree, use the correlation name refPtr.E.
You can use REFERENCE and MOVE statements to help reduce the amount of
navigation within the message tree, which improves performance. This technique
can be useful when you are constructing a large number of SET or CREATE
statements; rather than navigating to the same branch in the tree, you can use a
REFERENCE variable to establish a pointer to the branch and then use the MOVE
statement to process one field at a time.
ESQL string functions:
About this task
String manipulation functions used within ESQL can be CPU intensive; functions
such as LENGTH, SUBSTRING, and RTRIM must access individual bytes in the
message tree. These functions are expensive in performance terms, so minimizing
their use can help to improve performance. Where possible, also avoid executing
the same concatenations repeatedly, by storing intermediate results in variables.
Message trees with repeating records:
About this task
Performance can be reduced under the following conditions:
v You are using ESQL processing to manipulate a large message tree
v The message tree consists of repeating records or many fields
v You have used explicit SET statements with field reference paths to access or
create the fields
459
v You have observed a gradual slowing of message flow processing as the ESQL
processes more fields or repetitions
This problem occurs when you use field references, rather than reference variables,
to access or create consecutive fields or records.
The following example shows independent SET statements using field reference
paths to manipulate the message tree. The SET statement takes a source and target
parameter, where either or both parameters are field references:
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field = 1;
Performance is affected by the SET statement being used to create many more
fields, as shown in the following example:
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field1 = 1;
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field2 = 2;
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field3 = 3;
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field4 = 4;
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field5 = 5;
In this example, the five fields that are created are all children of ParentA. Before
the specified field can be created or modified, the broker must navigate the named
message tree to locate the point in the message tree that is to be altered. For
example:
v To access field 1, the SET statement navigates to ParentA, then to the first field,
involving two navigations.
v To access field 5, the SET statement navigates to ParentA, then traverses each of
the previous fields until it reaches field 5, involving six navigations.
Navigating over all the fields that precede the specified field causes the loss in
performance.
The following example shows repeating fields being accessed in an input message
tree:
DECLARE myChar CHAR;
DECLARE thisRecord INT 0;
WHILE thisRecord < 10000 DO
SET thisRecord = thisRecord + 1;
SET myChar = InputRoot.MRM.myParent.myRepeatingRecord[thisRecord];
END WHILE;
When index notation is used, as the count increases, the processing must navigate
over all the preceding fields to get the required field; it must count over the
previous records to get to the one that is represented by the current indexed
reference.
v When accessing InputRoot.MRM.myParent.myRepeatingRecord[1], one
navigation takes place to get to the first record
v When accessing InputRoot.MRM.myParent.myRepeatingRecord[2], two
navigations take place to get to the second record
v When accessing InputRoot.MRM.myParent.myRepeatingRecord[N], N
navigations take place to get to the N-th record
Therefore, the total number of navigations for this WHILE loop is: 1 + 2 + 3 + .... +
N, which is not linear.
460
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
If you are accessing or creating consecutive fields or records, you can solve this
problem by using reference variables.
When you use reference variables, the statement navigates to the main parent,
which maintains a pointer to the field in the message tree. The following example
shows the ESQL that can be used to reduce the number of navigations when
creating new output message tree fields:
SET OutputRoot.XMLNS.TestCase.StructureA.ParentA.field1 = 1;
DECLARE outRef REFERENCE TO OutputRoot.XMLNS.TestCase.StructureA.ParentA;
SET outRef.field2 = 2;
SET outRef.field3 = 3;
SET outRef.field4 = 4;
SET outRef.field5 = 5;
When referencing repeating input message tree fields, you can use the following
ESQL:
DECLARE myChar CHAR;
DECLARE inputRef REFERENCE TO InputRoot.MRM.myParent.myRepeatingRecord[1];
WHILE LASTMOVE(inputRef) DO
SET myChar = inputRef;
MOVE inputRef NEXTSIBLING NAME myRepeatingRecord;
END WHILE;
|
|
|
461
Related reference:
Compute node
Use the Compute node to construct one or more new output messages.
462
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
IBM Integration Bus runtime is that processes are long lived and initialization is
minimized. This reduces total processing costs, because new processes are not
started each time the message flow is invoked.
For information about tools that you can use to assess the current status of a
running Java application, see developerWorks IBM Monitoring and Diagnostic
Tools for Java - Health Center Version 2.1.
Tree references:
About this task
Avoid building and navigating trees without storing intermediate references. For
example, the following code repeatedly navigates from root to build the tree:
MbMessage newEnv = new MbMessage(inAssembly.getMessage());
newEnv.getRootElement().createElementAsFirstChild(MbElement.TYPE_NAME, "Destination", null);
newEnv.getRootElement().getFirstChild().createElementAsFirstChild(MbElement.TYPE_NAME, "MQDestinationList", null);
newEnv.getRootElement().getFirstChild().getFirstChild().createElementAsFirstChild(MbElement.TYPE_NAME,"DestinationData", null);
463
464
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
465
|
|
|
Procedure
v Identify the message type as quickly as possible, and avoid using multiple
parses to find it.
v Use the most efficient parser available, such as XMLNSC for XML parsing, and
DFDL for non-XML parsing. For more information about parsing, see Parsers
and Available parsers.
v Use parser optimization techniques, such as parsing avoidance, partial parsing
(parsing on demand), and opaque parsing:
466
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
467
468
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
469
v Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
v Stopping collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 492
v Viewing message flow accounting and statistics data collection parameters on
page 504
v Modifying message flow accounting and statistics data collection parameters
on page 505
v Resetting message flow accounting and statistics archive data on page 507
These topics show examples of how to issue the accounting and statistics
commands. The examples for z/OS are shown for SDSF; if you are using another
interface, you must modify the example shown according to the requirements of
that interface. For details of other z/OS options, see Issuing commands to the
z/OS console.
For information about how to improve the performance of your message flows, see
Tuning message flow performance on page 510.
For troubleshooting information that includes guidance on dealing with
performance issues, see Troubleshooting performance problems on page 560.
The following topics contain reference information that you might find helpful
when analyzing the performance of your message flows:
v Message flow accounting and statistics details
v Message flow accounting and statistics output formats
v Example message flow accounting and statistics data
v Metrics for accounting and statistics data in the IBM Integration Explorer
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Viewing message flow accounting and statistics data on page 496
You can view snapshot accounting and statistics data as it is produced by the
broker.
Troubleshooting performance problems on page 560
Follow this guidance to resolve common problems with IBM Integration Bus
performance.
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
470
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
471
You can find more information about how to use the accounting and statistics
facility to monitor the performance of a message flow in this developerWorks
article on WebSphere Message Broker Explorer accounting and statistics.
You can also find information about how to use accounting and statistics data in
this developerWorks article on message flow performance.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
472
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
473
You can request snapshot data collection by using the web user interface or the
IBM Integration Explorer. Alternatively, by using the mqsichangeflowstats
command, you can specify snapshot data collection, archive data collection, or
both. You can activate snapshot data collection while archive data collection is
active. The data recorded in both reports is the same, but is collected for different
intervals. If you activate both snapshot and archive data collection, be careful not
to combine information from the two different reports, because you might count
information twice.
You can view statistics data as it is generated, by using the Broker Statistics view
in the IBM Integration Explorer or by selecting the Statistics tab in the web user
interface.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Starting accounting and statistics data collection in the IBM Integration Explorer
on page 485
Use the IBM Integration Explorer to start collecting snapshot accounting and
statistics data for your integration nodes (brokers), integration servers, and
message flows. You can then view the accounting and statistics data in the Broker
Statistics and Broker Statistics Graph views.
Related reference:
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
Message flow accounting and statistics accounting origin:
Accounting and statistics data can be accumulated and reported with reference to
an identifier associated with a message in a message flow. This identifier is the
accounting origin, which provides a method of producing individual accounting
and statistics data for multiple accounting origins that generate input to message
flows. The accounting origin can be a fixed value, or it can be dynamically set
according to your criteria.
474
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For example, if your broker hosts a set of message flows associated with a
particular client in a single integration server, you can set a specific value for the
accounting origin for all these flows. You can then analyze the output provided to
assess the use that the client or department makes of the broker, and charge them
accordingly.
If you want to track the behavior of a particular message flow, you can set a
unique accounting origin for this message flow, and analyze its activity over a
specified period.
To make use of the accounting origin, you must perform the following tasks:
v Activate data collection, specifying the correct parameter to request basic
support (the default is none, or no support). For details, see
mqsichangeflowstats command.
v Configure each message flow for which you want a specific origin to include
ESQL statements that set the unique value that is to be associated with the data
collected. Data for message flows for which a specific value has not been set are
identified with the value Anonymous.
The ESQL statements can be coded in a Compute, Database, or Filter node.
You can configure the message flow either to set a fixed value, or to determine a
dynamic value, and can therefore create a very flexible method of recording sets
of data that are specific to particular messages or circumstances. For more
information, refer to Setting message flow accounting and statistics accounting
origin on page 489.
You can complete these tasks in either order; if you configure the message flow
before starting data collection, the broker ignores the setting. If you start data
collection, specifying accounting origin support, before configuring the message
flow, all data is collected with the Accounting Origin set to Anonymous. The broker
acknowledges the origin when you redeploy the message flow. You can also
modify data collection that has already started to request accounting origin
support from the time that you issue the command. In both cases, data that has
already been collected is written out and collection is restarted.
When data has been collected, you can review information for one or more specific
origins. For example, if you select XML publication messages as your output
format, you can start an application that subscribes to the origin in which you are
interested.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Setting message flow accounting and statistics accounting origin on page 489
When you request accounting origin support for collecting message flow
accounting and statistics data on the mqsichangeflowstats command, you must
also configure your message flows to provide the correct identification values that
indicate what the data is associated with.
475
476
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
IBM Integration Explorer, the data is collected in XML format; if statistics collection
is restarted through the web user interface, data is collected in JSON format.
Statistics data is written to the specified output location in the following
circumstances:
v When the archive data interval expires.
v When the snapshot interval expires.
v When the broker shuts down. Any data that has been collected by the broker,
but has not yet been written to the specified output destination, is written
during shutdown. It might therefore represent data for an incomplete interval.
v When any part of the broker configuration is redeployed. Redeployed
configuration data might contain an updated configuration that is not consistent
with the existing record structure (for example, a message flow might include an
additional node, or an integration server might include a new message flow).
Therefore the current data, which might represent an incomplete interval, is
written to the output destination. Data collection continues for the redeployed
configuration until you change data collection parameters or stop data collection.
v When data collection parameters are modified. If you update the parameters that
you have set for data collection, all data that is collected for the message flow
(or message flows) is written to the output destination to retain data integrity.
Statistics collection is restarted according to the new parameters.
v When an error occurs that terminates data collection. You must restart data
collection yourself in this case.
User trace
You can specify that the data that is collected is written to the user trace log. The
data is written even when trace is switched off.
If no output destination is specified for accounting and statistics, the default is the
user trace log. If one or more output formats are subsequently specified, the
specified formats replace the default, and the data is no longer emitted to the user
trace. However, if user trace has been explicitly specified, any additional formats
that are selected subsequently are emitted in addition to the user trace.
The data is written to one of the following locations:
Windows
Windows
If you set the work path by using the -w parameter of the
mqsicreatebroker command, the location is workpath\Common\log.
If you have not specified the broker work path, the location is:
v On Windows:C:\ProgramData\IBM\MQSI\Common\log.
Linux
UNIX
Linux and UNIX
/var/mqsi/common/log
z/OS
z/OS
/component_filesystem/log
JSON publication
You can specify that the data that is collected is published in JSON format, which
is available for viewing in the web user interface. If statistics collection is started
477
through the web user interface, statistics data is emitted in JSON format in
addition to any other formats that are already being emitted.
The topic on which the data is published has the following structure:
$SYS/Broker/brokerName/Statistics/JSON/SnapShot/integrationServerName/applications/applicationName
/libraries/libraryName/messageflows/messageFlowName
478
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Register the following topic for the subscriber to receive data for all message
flows running on BrokerA:
$SYS/Broker/BrokerA/StatisticsAccounting/#
v Register the following topic for the subscriber to receive only archive statistics
that relate to a message flow Flow1 running on integration server Execution on
broker BrokerA:
$SYS/Broker/BrokerA/StatisticsAccounting/Archive/Execution/Flow1
v Register the following topic for the subscriber to receive both snapshot and
archive data for message flow Flow1 running on integration server Execution on
broker BrokerA
$SYS/Broker/BrokerA/StatisticsAccounting/+/Execution/Flow1
For help with registering your subscriber, see Message display, test and
performance utilities SupportPac (IH03).
SMF
On z/OS, you can specify that the data collected is written to SMF. Accounting
and statistics data uses SMF type 117 records. SMF supports the collection of data
from multiple subsystems, and you might therefore be able to synchronize the
information that is recorded from different sources.
To interpret the information that is recorded, use any utility program that
processes SMF records.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Viewing message flow accounting and statistics data on page 496
You can view snapshot accounting and statistics data as it is produced by the
broker.
Related reference:
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
479
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Message flow accounting and statistics details
You can collect message flow, thread, node, and terminal statistics for message
flows.
Message flow accounting and statistics output formats
The message flow accounting and statistics data can be written in the following
four formats: user trace, XML, JSON, and SMF.
Example message flow accounting and statistics data
You can view message flow accounting and statistic data in an XML publication or
user trace entries. To view z/OS SMF records, use a utility program that processes
SMF records.
Metrics for accounting and statistics data in the IBM Integration Explorer
You can filter the metrics displayed for accounting and statistics data in the Broker
Statistics and Broker Statistics Graph views in the IBM Integration Explorer.
480
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
Next:
You can now complete the following tasks:
v Setting message flow accounting and statistics accounting origin on page 489
v Viewing message flow accounting and statistics data on page 496
v Viewing and modifying data collection settings on page 503
v Stopping collection of message flow accounting and statistics data on page 491
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Output formats for message flow accounting and statistics data on page 476
When you collect message flow statistics, you can choose the output destination
for the data.
Related tasks:
Stopping collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 492
You can use the mqsichangeflowstats command stop collecting data for message
flow accounting and statistics at any time. You do not have to stop the message
flow, integration server, or broker to make this change, nor do you have to
redeploy the message flow.
Viewing message flow accounting and statistics data collection parameters on
page 504
You can view the parameters that are currently in effect for message flow
accounting and statistics data collection by using the mqsireportflowstats
command.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
Chapter 3. Performance, monitoring, and workload management
481
482
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
2. Decide the resource for which you want to collect statistics. You can collect
statistics for a specific integration server, or for all integration servers for the
specified broker.
v If you indicate a specific integration server, you can request that data is
recorded for a specific message flow or all message flows in that group.
v If you specify all integration servers, you must specify all message flows.
3. Decide if you want to collect thread-related statistics.
4. Decide if you want to collect node-related statistics. If you do, you can also
collect information about terminals for the nodes.
5. Decide if you want to associate data collection with a particular accounting
origin. This option is valid for snapshot and archive data, and for message
flows and integration servers. However, when active, you must set its origin
value in each message flow to which it refers. If you do not configure the
participating message flows to set the appropriate origin identifier, the data
collected for that message flow is collected with the origin set to Anonymous.
For more information, see Setting message flow accounting and statistics
accounting origin on page 489.
6. Decide the target destination. You can choose multiple destinations by
specifying multiple comma-separated values for the output format property.
v User trace log (the default setting). The output data can be processed using
mqsireadlog and mqsiformatlog.
v XML format publication message. If you chose this target destination, register
the following topic for the subscriber:
$SYS/Broker/brokerName/StatisticsAccounting/recordType/integrationServerLabel/messageFlowLabel
where brokerName, integrationServerLabel, and messageFlowLabel represent the
broker, integration server, and message flow on which you want to receive
data. recordType is the type of data collection on which you want to receive
publications (snapshot, archive, or the number sign (#) to receive both
snapshot and archive). The value that you specify for record type is case
sensitive; therefore, if you choose to receive snapshot data, set the record
type to SnapShot.
v JSON publication message. Register the following topic for the subscriber:
$SYS/Broker/brokerName/Statistics/JSON/SnapShot/integrationServerName/applications/applicationName/libraries/libraryName/messageflows/messageFlowName
483
Results
When the command completes successfully, data collection for the specified
resources is started:
v If you have requested snapshot data, information is collected for approximately
20 seconds, and the results are written to the specified output.
v If you have requested archive data, information is collected for the interval
defined for the broker (on the mqsicreatebroker or mqsichangebroker command,
or by the external timer facility ENF). The results are written to the specified
output, the interval is reset, and data collection starts again.
What to do next
Next:
You can now complete the following tasks:
v Setting message flow accounting and statistics accounting origin on page 489
v Stopping collection of message flow accounting and statistics data on page 491
v Viewing message flow accounting and statistics data on page 496
v Viewing and modifying data collection settings on page 503
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Setting message flow accounting and statistics accounting origin on page 489
When you request accounting origin support for collecting message flow
accounting and statistics data on the mqsichangeflowstats command, you must
also configure your message flows to provide the correct identification values that
indicate what the data is associated with.
Stopping collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 492
You can use the mqsichangeflowstats command stop collecting data for message
flow accounting and statistics at any time. You do not have to stop the message
flow, integration server, or broker to make this change, nor do you have to
redeploy the message flow.
Viewing message flow accounting and statistics data collection parameters on
page 504
You can view the parameters that are currently in effect for message flow
accounting and statistics data collection by using the mqsireportflowstats
command.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
484
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Resetting message flow accounting and statistics archive data on page 507
You can reset message flow accounting and statistics archive data to purge any
accounting and statistics data not yet reported for that collecting interval. This
removes unwanted data. You can request this at any time; you do not have to stop
data collection and restart it to perform reset. You cannot reset snapshot data.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Related reference:
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
Starting accounting and statistics data collection in the IBM Integration
Explorer:
Use the IBM Integration Explorer to start collecting snapshot accounting and
statistics data for your integration nodes (brokers), integration servers, and
message flows. You can then view the accounting and statistics data in the Broker
Statistics and Broker Statistics Graph views.
Before you begin
Before you start:
v Ensure that you have created a message flow; for more information, see Creating
a message flow.
v Ensure that you have deployed a broker archive (BAR) file; for more
information, see Deploying a broker archive file.
v Read the concept topic, Message flow statistics and accounting data on page
471.
About this task
Use the snapshot accounting and statistics data displayed in the Broker Statistics
and Broker Statistics Graph views to monitor the performance and resource usage
of your integration nodes (brokers) or integration servers at the message flow,
message flow node, or terminal level.
485
You can start collecting accounting and statistics data for an active integration node
at any time, and you can start collecting accounting and statistics data for multiple
integration nodes at the same time.
If you start the collection of statistics data by using the IBM Integration Explorer,
the statistics are emitted in XML format in addition to any other formats that are
already being emitted, and can be viewed in the IBM Integration Explorer.
To start collecting snapshot message flow accounting and statistics data by using
the IBM Integration Explorer:
Procedure
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration Nodes
folder.
2. Right-click the integration server or message flow for which you want to collect
statistics.
v If you selected an integration server, click Statistics All Flows > Start
Statistics.
v If you selected a message flow click Statistics > Start Statistics.
A message is sent to the integration node to start collecting accounting and
statistics data for the selected resource.
3. Click Window > Show View > Broker Statistics to open the Broker Statistics
and Broker Statistics Graph view. These two views are displayed together. If
you close one of the views, the other view is also closed.
Results
Accounting and statistics data for the selected integration node, integration server,
or message flow is displayed in the Broker Statistics and Broker Statistics Graph
views. It can take up to 30 seconds for accounting and statistics data to be received
from the integration node and displayed in the Broker Statistics Graph view. The
message Waiting for Data is displayed in the title bar is displayed until
accounting and statistics data is received from the selected integration node,
integration server, or message flow. When data is received from the integration
node, it is displayed in numeric form in the Broker Statistics view, and a visual
representation of this data is shown in the Broker Statistics Graph view. Select
individual or multiple items in the Broker Statistics view to change the information
displayed in the Broker Statistics Graph view.
What to do next
Next:
To examine the current data in the two views, click Pause in the Broker Statistics
Graph view to prevent the current data from being overwritten with new data.
Click Play to resume displaying more accounting and statistics data. You can
change the visual representation of the data by clicking Linear, Logarithmic, and
Stacked.
You can also select the metrics that are displayed in the graph view; for more
information, see Filtering message flow accounting and statistics data in the IBM
Integration Explorer on page 508.
Related concepts:
486
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
487
To start collecting snapshot message flow accounting and statistics data by using
the web user interface, follow these steps:
Procedure
1. Log on to the web user interface server, as described in Accessing the web
user interface on page 133. The navigation tree is displayed on the left side of
the pane, showing the servers (integration servers), message flows, and other
resources owned by your broker.
2. Click the down arrow next to the required message flow in the navigation tree,
and then click Statistics on in the context menu. You can start the collection of
statistics data for all message flows in an integration node (broker), server
(integration server), or application, by clicking the down arrow next to the
required resource and then clicking Statistics on in the context menu. Statistics
collection for the selected message flows is turned on, and an up-to-date
snapshot of information is collected every twenty seconds.
What to do next
When statistics collection is turned on, you can view the snapshot data in the web
user interface. For more information, see Viewing accounting and statistics data in
the web user interface on page 499.
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
IBM Integration Bus web user interface
The IBM Integration Bus web user interface enables web users to access broker
resources through an HTTP client, and provides broker administrators with an
alternative to the IBM Integration Explorer for administering broker resources.
Related tasks:
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Stopping collection of accounting and statistics data in the web user interface on
page 495
You can use the web user interface to stop collecting accounting and statistics data
for your message flows.
Starting collection of message flow accounting and statistics data on page 480
You can start collecting message flow accounting and statistics data for an active
broker at any time. You can specify what type of statistics you want to collect, and
where to send the data.
Stopping collection of message flow accounting and statistics data on page 491
You can stop collecting data for message flow accounting and statistics at any time.
You do not have to stop the message flow, integration server, or broker to make
this change, nor do you have to redeploy the message flow.
Viewing message flow accounting and statistics data on page 496
You can view snapshot accounting and statistics data as it is produced by the
broker.
488
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
489
If you do not set a value in the message flow, the default value Anonymous is
used for all output. If you set a value in more than one place in the message
flow, the value that you set immediately before the message flow terminates is
used in the output data.
The code that you must add has the following form:
SET Environment.Broker.Accounting.Origin = "value";
You can set the identifier to a fixed value (as shown previously), or you can
determine its value based on a dynamic value that is known only at run time.
The value must be character data, and can be a maximum of 32 bytes. For
example, you might set its value to the contents of a particular field in the
message that is being processed (if you are coding ESQL for a Compute node,
you must use correlation name InputBody in place of Body in the following
example):
IF Body.DepartmentName <> NULL THEN
SET Environment.Broker.Accounting.Origin = Body.DepartmentName;
END IF;
5. Save the ESQL module, and check that you have not introduced any errors.
6. Save the message flow, and check again for errors.
Results
You are now ready to deploy the updated message flow; for more information, see
Deploying resources. Accounting and statistics data records that are collected after
the message flow has been deployed includes the origin identifier that you have
set.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Writing ESQL
How you can use ESQL to customize nodes.
490
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related reference:
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
Compute node
Use the Compute node to construct one or more new output messages.
Database node
Use the Database node to interact with a database in the specified ODBC data
source.
Filter node
Use the Filter node to route a message according to message content.
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
491
492
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
493
494
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
495
Results
A message is sent to the broker to stop collecting accounting and statistics data for
the selected flow.
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Related tasks:
Starting collection of accounting and statistics data in the web user interface on
page 487
You can use the web user interface to start collecting snapshot accounting and
statistics data for your message flows. You can then view the accounting and
statistics data in the web user interface.
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Starting collection of message flow accounting and statistics data on page 480
You can start collecting message flow accounting and statistics data for an active
broker at any time. You can specify what type of statistics you want to collect, and
where to send the data.
Stopping collection of message flow accounting and statistics data on page 491
You can stop collecting data for message flow accounting and statistics at any time.
You do not have to stop the message flow, integration server, or broker to make
this change, nor do you have to redeploy the message flow.
Viewing message flow accounting and statistics data
You can view snapshot accounting and statistics data as it is produced by the
broker.
496
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Starting collection of message flow accounting and statistics data on page 480
You can start collecting message flow accounting and statistics data for an active
broker at any time. You can specify what type of statistics you want to collect, and
where to send the data.
Filtering message flow accounting and statistics data in the IBM Integration
Explorer on page 508
You can select the metrics for the snapshot accounting and statistics data that are
displayed in the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer.
Viewing and modifying data collection settings on page 503
You can view and modify the settings that control the collection of message flow
accounting and statistics data.
Stopping collection of message flow accounting and statistics data on page 491
You can stop collecting data for message flow accounting and statistics at any time.
You do not have to stop the message flow, integration server, or broker to make
this change, nor do you have to redeploy the message flow.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
Related reference:
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
Viewing accounting and statistics data in the IBM Integration Explorer:
You can use the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer to view snapshot accounting and statistics data as it is
produced by the integration node (broker).
Before you begin
Before you start:
v Starting accounting and statistics data collection in the IBM Integration
Explorer on page 485
Chapter 3. Performance, monitoring, and workload management
497
v Read the concept topic about message flow accounting and statistics data
About this task
Use the accounting and statistics data displayed in the Broker Statistics and Broker
Statistics Graph views to monitor the performance and resource usage of your
integration node (broker) or integration server at the message flow, node or
terminal level. The IBM Integration Explorer displays snapshot accounting and
statistics data.
When you open the Broker Statistics and Broker Statistics Graph views, the IBM
Integration Explorer connects to all the integration nodes that you have in your
workspace and attempts to collect statistics data from the integration nodes. The
message Waiting for Data is displayed in the title bar is displayed until
accounting and statistics data are received from the selected integration node,
integration server or message flow. When data is received from the integration
node it is displayed in numeric form in the Broker Statistics view, and a visual
representation of this data is shown in the Broker Statistics Graph view.
To view message flow accounting and statistics data using the IBM Integration
Explorer:
Procedure
1. Click Window > Show View > Broker Statistics to open the Broker Statistics
and Broker Statistics Graph view. These two views are displayed together. If
you close one of the views, the other view is also be closed.
2. In the WebSphere MQ Explorer - Navigator view select the integration node,
integration server or message flow for which you want to view accounting and
statistics data.
Results
Accounting and statistics data for the selected integration node, integration server,
or message flow is displayed in the Broker Statistics and Broker Statistics Graph
views. It can take up to thirty seconds for accounting and statistics data to be
received from the integration node and displayed in the Broker Statistics Graph
view. Select individual or multiple items in the Broker Statistics view to change the
information displayed in the Broker Statistics Graph view.
What to do next
If you want to examine the current data in the two views, click the Pause button in
the Broker Statistics Graph view to prevent the current data from being
overwritten with new data. Click the Play button to resume displaying new
accounting and statistics data. You can change the visual representation of the data
by clicking on the Linear, Logarithmic, and Stacked buttons.
You can also select the metrics that are displayed in the graph view, see Filtering
message flow accounting and statistics data in the IBM Integration Explorer on
page 508.
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Related tasks:
498
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Starting accounting and statistics data collection in the IBM Integration Explorer
on page 485
Use the IBM Integration Explorer to start collecting snapshot accounting and
statistics data for your integration nodes (brokers), integration servers, and
message flows. You can then view the accounting and statistics data in the Broker
Statistics and Broker Statistics Graph views.
Filtering message flow accounting and statistics data in the IBM Integration
Explorer on page 508
You can select the metrics for the snapshot accounting and statistics data that are
displayed in the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer.
Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
You can use the mqsichangeflowstats command to start collecting message flow
accounting and statistics data for an active broker at any time. You can specify
what type of statistics you want to collect, and where to send the data.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
Related reference:
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
Viewing accounting and statistics data in the web user interface:
You can use the web user interface to view snapshot accounting and statistics data.
499
500
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can sort the information in the table based on any one of these statistics
by clicking the header of the required column.
If you select a message flow in this table, the nodes contained by the flow are
highlighted in the Nodes for all flows section.
A Go to Flow analysis view icon (a magnifying glass) is displayed next to
each message flow in the table. You can click this icon to display the Flow
analysis view, which contains detailed statistics for each node in the selected
message flow.
The Nodes for all flows section shows statistical information about all the
message flow nodes in the running message flows that have statistics
collection turned on, for the selected integration node, integration server,
application, or library. Nodes for message flows that have statistics turned off
are not shown in this table. The following information is provided for each
node in the message flows:
- The average CPU time (in milliseconds) for the message transactions in the
node
- The average elapsed time (in milliseconds) for the message transactions in
the node
- The total elapsed time (in milliseconds) for the message transactions in the
node
- The total CPU time (in milliseconds) for the message transactions in the
node
- The number of times that the node has been invoked
- The type of node
- The parent message flow for the node
You can sort the information in the table based on any one of these statistics
by clicking the header of the required column. If you select a node in this
table, its parent flow is highlighted in the Throughput per message flow
section.
v Use the information in the Flow analysis view to assess the performance of a
message flow. This view contains statistical information about the selected
message flow, including data such as the message rate, CPU time, and elapsed
time for messages processed by each node in the message flow. To view statistics
about a specific message flow, click the name of the message flow in the
navigation tree, and then click the Statistics tab.
The charts in this view show data for three statistics at a time. By default the
charts show the message rate, average elapsed time, and average CPU time
for the selected message flow; however, you can select any three statistics to
display in the charts by clicking the arrow in the table next to each graph and
then selecting the required statistic from the list. The tables show the highest,
lowest, and average data for the whole of the current browser session, and
the data for the latest 20-second reporting period.
The Latest data per node section shows statistical data for each node in the
selected message flow, including the elapsed and CPU time per message
processed by the node. You can choose to display the minimum, average, or
maximum CPU and elapsed times per message, by clicking Minimum,
Average, or Maximum in the section heading. You can also sort the data in
the table by clicking on the heading of a column; for example, you can sort
the data by CPU time by clicking the heading CPU time (ms).
This table also shows the type of each node, which can help you to identify
the potential cause of any performance problems; for more information, see
Identifying the cause of a slow message flow on page 512.
Chapter 3. Performance, monitoring, and workload management
501
502
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
Procedure
v Viewing message flow accounting and statistics data collection parameters on
page 504
v Modifying message flow accounting and statistics data collection parameters
on page 505
v Resetting message flow accounting and statistics archive data on page 507
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Starting collection of message flow accounting and statistics data on page 480
You can start collecting message flow accounting and statistics data for an active
broker at any time. You can specify what type of statistics you want to collect, and
where to send the data.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Related reference:
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
Chapter 3. Performance, monitoring, and workload management
503
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Viewing message flow accounting and statistics data collection parameters:
You can view the parameters that are currently in effect for message flow
accounting and statistics data collection by using the mqsireportflowstats
command.
Before you begin
Before you start:
v Read the concept topic about message flow accounting and statistics data.
v Ensure that message flow statistics and accounting data are being collected. For
more information, see Starting collection of message flow accounting and
statistics data on page 480.
Procedure
Issue the mqsireportflowstats command to view the parameters that are currently
being used to control archive or snapshot data collection. You can view the
parameters for a broker, an integration server, or an individual message flow. For
example, to view parameters for snapshot data for all message flows in all
integration servers for BrokerA, enter:
mqsireportflowstats BrokerA -s -g -j
Using SDSF on z/OS, enter:
/F BrokerA,rs s=yes,g=yes,j=yes
z/OS
504
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
You can use the mqsichangeflowstats command to start collecting message flow
accounting and statistics data for an active broker at any time. You can specify
what type of statistics you want to collect, and where to send the data.
Modifying message flow accounting and statistics data collection parameters
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Related reference:
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Diagnostic messages on page 891
Diagnostic messages are listed in this section in numeric order, grouped according
to the component to which they relate.
Modifying message flow accounting and statistics data collection parameters:
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Before you begin
Before you start:
v Start to collect message flow accounting and statistics data
v Read the concept topic about message flow accounting and statistics data
505
506
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
formats.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Resetting message flow accounting and statistics archive data:
You can reset message flow accounting and statistics archive data to purge any
accounting and statistics data not yet reported for that collecting interval. This
removes unwanted data. You can request this at any time; you do not have to stop
data collection and restart it to perform reset. You cannot reset snapshot data.
Before you begin
Before you start:
v Start to collect message flow accounting and statistics data
v Read the concept topic about message flow accounting and statistics data
About this task
To reset message flow accounting and statistics archive data:
Procedure
1. Identify the broker, and optionally the integration server, for which you want to
reset archive data. You cannot reset archive data on a message flow basis.
2. Issue the mqsichangeflowstats command with the appropriate parameters to
reset archive data.
For example, to reset archive data for BrokerA, enter:
mqsichangeflowstats BrokerA -a -g -j -r
Using SDSF on z/OS, enter:
/F BrokerA,cs a=yes,g=yes,j=yes,r=yes
z/OS
Results
When this command completes, all accounting and statistics data accumulated so
far for this interval are purged and will not be included in the reports. Data
collection is restarted from this point. All archive data for all flows (indicated by -j
or j=yes) in all integration servers (indicated by -g or g=yes) is reset.
This command has a minimal effect on snapshot data because the accumulation
interval is much shorter than for archive data. It does not effect the settings for
archive or snapshot data collection that are currently in force. When the command
has completed, data collection resumes according to the current settings.
507
You can change any other options that are currently in effect when you reset
archive data, for example accounting origin settings or output type.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Related tasks:
Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
You can use the mqsichangeflowstats command to start collecting message flow
accounting and statistics data for an active broker at any time. You can specify
what type of statistics you want to collect, and where to send the data.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Related reference:
Message flow statistics and accounting data
You can collect message flow statistics and accounting data in various output
formats.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
508
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Click Window > Show View > Broker Statistics to open the Broker Statistics
and Broker Statistics Graph view.
2. In the WebSphere MQ Explorer - Navigator view, select the broker, integration
server, or message flow for which you want to view accounting and statistics
data.
3. Click the Filter button in the Broker Statistics Graph view. The Select metrics to
graph window is displayed.
4. Select the metrics that you want to display from the list in the Broker Statistics
and Broker Statistics Graph view. Clear all the metrics that you do not want to
display in the Broker Statistics and Broker Statistics Graph view.
5. Click OK.
Results
The selected metrics are displayed in the Broker Statistics and Broker Statistics
Graph views. Data for additional metrics that you have selected are displayed the
next time the statistics data is refreshed.
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Chapter 3. Performance, monitoring, and workload management
509
Related tasks:
Starting accounting and statistics data collection in the IBM Integration Explorer
on page 485
Use the IBM Integration Explorer to start collecting snapshot accounting and
statistics data for your integration nodes (brokers), integration servers, and
message flows. You can then view the accounting and statistics data in the Broker
Statistics and Broker Statistics Graph views.
Viewing accounting and statistics data in the IBM Integration Explorer on page
497
You can use the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer to view snapshot accounting and statistics data as it is
produced by the integration node (broker).
Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
You can use the mqsichangeflowstats command to start collecting message flow
accounting and statistics data for an active broker at any time. You can specify
what type of statistics you want to collect, and where to send the data.
Modifying message flow accounting and statistics data collection parameters on
page 505
You can modify the parameters that you have set for message flow accounting and
statistics data collection. For example, you can start collecting data for a new
message flow that you have deployed to an integration server for which you are
already collecting data. You can modify parameters while data collection is active;
you do not have to stop data collection and restart it.
Related reference:
mqsichangeflowstats command
Use the mqsichangeflowstats command to control the accumulation of statistics
about message flow operation.
mqsireportflowstats command
Use the mqsireportflowstats command to display the current options for
accounting and statistics that have been set using the mqsichangeflowstats
command.
Issuing commands to the z/OS console
You operate the broker using the z/OS START, STOP, and MODIFY commands.
510
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Parsing
Tree navigation and copying
Accessing resources
Processing logic
The following topics provide information about how to improve the performance
of your message flows:
v Identifying the cause of a slow message flow on page 512
v Comparing the performance of message flows in an application on page 515
v Message flow design and performance on page 453
v Code design and performance on page 455
For information about how you can assess the current performance of your
message flows, see Analyzing message flow performance on page 469.
For troubleshooting information about how to deal with specific performance
issues, see Troubleshooting performance problems on page 560.
The following topics contain reference information that you might find helpful
when tuning the performance of your message flows:
v Message flow accounting and statistics details
v Message flow accounting and statistics output formats
v Example message flow accounting and statistics data
v Metrics for accounting and statistics data in the IBM Integration Explorer
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
System resources for message flow development on page 517
Configure your message flows to make the best use of computer resources,
especially if you will process large messages.
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Viewing message flow accounting and statistics data on page 496
You can view snapshot accounting and statistics data as it is produced by the
broker.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
Chapter 3. Performance, monitoring, and workload management
511
message flows.
Optimizing message flow throughput on page 551
Each message flow that you design must provide a complete set of processing for
messages received from a particular source. This design might result in very
complex message flows that include large numbers of nodes that can cause a
performance overhead, and might create potential bottlenecks. You can increase the
number of message flows that process your messages to provide the opportunity
for parallel processing and therefore improved throughput.
Optimizing message flow response times on page 554
You can use different solutions to improve message flow response times.
Procedure
1. Use the web user interface to display the statistics for your message flow. You
can use the information in the Flow analysis view to assess the performance of
your message flows. This view contains detailed statistical information about
the selected message flow, including statistics such as the message rate, CPU
time, and elapsed time for each node in the message flow. You can use these
statistics to help you identify the nodes in your message flow that are the most
expensive in terms of performance.
Use the charts in the Flow analysis view to show data for any three statistics at
a time; by default, the charts show the message rate, average elapsed time, and
average CPU time for the nodes in the selected message flow:
v Use the Message rate chart to check the period of time during which the
message rate has been low.
v Use the Average elapsed time chart with the Message rate chart to check
whether there is a correlation between the two statistics for this flow. If there
is an increase in Average elapsed time and a reduction in Message rate,
check the Total input messages to see whether messages have been entering
the message flow. An increase in Average elapsed time might indicate that
there is a bottleneck in message processing that might be caused by waiting
for an external resource, such as a database. Check the data in the Latest
data per node table to identify nodes with high elapsed times.
v Use the Average CPU time chart to see whether the CPU time has increased
or decreased in correlation with the Message rate. If the CPU time increases
and the message rate decreases, it might indicate that there is a problem with
512
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
the throughput of the message flow. If the Average elapsed time is high and
the Average CPU time is low, it is likely that the message flow is waiting for
something other than CPU; this is typically a slow node or invocation of an
application or service. If the Average elapsed time and Average CPU time
are both high, the message flow is likely to be CPU bound; in this case,
verify that all known design, tuning, and coding optimizations have been
applied. For example, check the size of the messages that are being processed
to see if it has increased in line with the drop in rate. If the CPU has recently
increased, check the commit counts, errors, and backouts. For more
information about designing for performance, see Message flow design and
performance on page 453 and Code design and performance on page 455.
For more information about viewing statistics data, see Viewing accounting
and statistics data in the web user interface on page 499.
2. When you have identified the nodes that are the most expensive in terms of
performance, identify the type of node; some of the techniques that you can use
to optimize the performance vary according to the node type:
v If the most expensive node is a Compute node, there might be issues with
your ESQL code. For information about how to optimize ESQL, see ESQL
code tips on page 456.
v If the most expensive node is a JavaCompute node, see Java code tips on
page 462 for information about how you might optimize performance for the
node.
v If the most expensive node uses XPath, see XPath and XSLT code tips on
page 464 to find out how you might optimize performance for the node.
v If the most expensive node is a request node, it might be waiting for input
from an external resource. You can use the activity log to see where resources
such as databases are taking a long time to respond or process data; for more
information, see Using Activity logs on page 623.
3. Consider the overall design of your message flow; the following design
decisions can have a significant impact on message flow throughput and
response times:
v The number of threads processing messages in a single message flow
v The number of copies of a message flow
v The scope of the message flow
v
v
v
v
v
v
v Message format
For more information about these design decisions, see Message flow design
and performance on page 453.
4. Parsing can have a significant impact on message flow performance, and there
are techniques that you can use to limit the effect. For more information, see
Parsing and message flow performance on page 466.
5. Message tree navigation and message tree copying can reduce message flow
performance, so it is important to use them appropriately and limit their use
where possible. For more information, see Message tree navigation and
copying on page 467.
513
What to do next
For more information about improving performance the performance of your
message flows, see Tuning message flow performance on page 510. For
information about solving specific performance issues, see Troubleshooting
performance problems on page 560.
Related tasks:
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Viewing accounting and statistics data in the IBM Integration Explorer on page
497
You can use the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer to view snapshot accounting and statistics data as it is
produced by the integration node (broker).
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Developing message flows
Develop message flows to process your business messages and data. A message
flow is a sequence of processing steps that run in an integration node when an
input message is received.
Using Activity logs on page 623
Use Activity logs to get an overview of recent activities in your message flows and
associated external resources.
Message flow design and performance on page 453
Consider the performance implications arising from the design of your message
flow.
Parsing and message flow performance on page 466
Understand the impact of parsing on message flow performance, and use
techniques to limit the effect and improve performance.
Message tree navigation and copying on page 467
Message tree navigation and message tree copying can reduce message flow
performance, so it is important to use them appropriately and limit their usage
where possible.
ESQL code tips on page 456
You can improve message flow performance with ESQL by using some
optimization techniques.
Java code tips on page 462
You can improve message flow performance with Java by using some optimization
techniques.
XPath and XSLT code tips on page 464
You can improve message flow performance with XPath and XSLT by using some
optimization techniques.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
514
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
message flows.
Troubleshooting performance problems on page 560
Follow this guidance to resolve common problems with IBM Integration Bus
performance.
Comparing the performance of message flows in an application
You can compare the performance of message flows in an application to identify
the flows that might benefit from tuning, and to find out where any specific
performance problems might exist.
Related reference:
Activity logs
Activity logs contain information about message flows and how they interact with
external resources. They can be generated for a message flow or a resource type.
Learn about the structure and content of Activity logs, and about the tags that
enrich the log data and can be used to filter its content.
515
For more information about improving the performance of your message flows, see
Tuning message flow performance on page 510, and for information about
solving specific performance issues, see Troubleshooting performance problems
on page 560.
Related tasks:
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
the performance of your brokers and message flows.
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Viewing accounting and statistics data in the IBM Integration Explorer on page
497
You can use the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer to view snapshot accounting and statistics data as it is
produced by the integration node (broker).
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Developing message flows
Develop message flows to process your business messages and data. A message
flow is a sequence of processing steps that run in an integration node when an
input message is received.
Using Activity logs on page 623
Use Activity logs to get an overview of recent activities in your message flows and
associated external resources.
Message flow design and performance on page 453
Consider the performance implications arising from the design of your message
flow.
Code design and performance on page 455
Consider the performance implications arising from the design of your code.
Parsing and message flow performance on page 466
Understand the impact of parsing on message flow performance, and use
techniques to limit the effect and improve performance.
Message tree navigation and copying on page 467
Message tree navigation and message tree copying can reduce message flow
performance, so it is important to use them appropriately and limit their usage
where possible.
ESQL code tips on page 456
You can improve message flow performance with ESQL by using some
optimization techniques.
Java code tips on page 462
You can improve message flow performance with Java by using some optimization
techniques.
XPath and XSLT code tips on page 464
You can improve message flow performance with XPath and XSLT by using some
optimization techniques.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
516
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
message flows.
Identifying the cause of a slow message flow on page 512
You can use the message flow statistics data to help you identify aspects of a
message flow that might be reducing the performance of the flow, and to help you
understand how you can optimize it.
Troubleshooting performance problems on page 560
Follow this guidance to resolve common problems with IBM Integration Bus
performance.
Related reference:
Activity logs
Activity logs contain information about message flows and how they interact with
external resources. They can be generated for a message flow or a resource type.
Learn about the structure and content of Activity logs, and about the tags that
enrich the log data and can be used to filter its content.
517
Linux
UNIX
AIX
z/OS
On z/OS, each message flow thread is allocated 512 KB of downward
stack space and 50 KB of upward stack space.
In a message flow, a node typically uses 2 KB of the stack space. A typical message
flow can therefore include 250 nodes on z/OS, 500 nodes on UNIX systems and
500 nodes on Windows. This amount can be higher or lower depending on the
type of nodes used and the processing that they perform.
In IBM Integration Bus, any processing that involves nested or recursive processing
can cause extensive usage of the stack. For example, in the following situations
you might need to increase the stack size:
v When a message flow is processing a message that contains a large number of
repetitions or complex nesting.
v When a message flow is executing ESQL that calls the same procedure or
function recursively, or when an operator (for example, the concatenation
operator) is used repeatedly in an ESQL statement.
You can increase the stack size to improve performance. For details, see:
v Increasing the stack size on Windows, Linux, and UNIX systems on page 545
v Increasing the stack size on z/OS on page 546
Related tasks:
Optimizing message flow response times on page 554
You can use different solutions to improve message flow response times.
Related reference:
Message flows
Use the reference information in this section to develop your message flows and
related resources.
JVM heap sizing:
The Java virtual machine (JVM) heap is an independent memory allocation that
can reduce the capacity of the main memory heap.
Every integration server creates its own JVM. The integration server uses the JVM
to execute the internal administration threads that require Java. This usage is
typically minimal. The primary use of the JVM is for the message flow nodes that
include the IBM primitives, user defined extensions, and Java routines that are
called from ESQL. You cannot control how much of the JVM heap the IBM
primitives use, but you can affect usage of the JVM heap in the Java that is
implemented in the following resources:
v A Java user-defined extension node
v A JavaCompute node
v A Java routine that is called from ESQL
v Mapping notes running a graphical data map
v XSLTransform node
518
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v SOAP nodes
From WebSphere Message Broker Version 6.1 onwards, the JVM is created with a
minimum of 32 MB of space, and a maximum of 256 MB, allocated and reserved
for its use. As with any JVM, you can pass parameters in to set the minimum and
maximum heap sizes. Note that on 32-bit platforms, the JVM reserves heap space
based on the maximum heap size. On 32-bit Windows, you might experience
warnings if you set the JVM heap size to 512 MB or higher.
You might need to increase the maximum heap size allocated if you plan to run
large messages through the Java primitive nodes listed above.
To give more capacity to a message flow that is going to process large messages,
reduce the minimum JVM heap size to allow the main memory heap to occupy
more address space. For details of how to reduce the minimum JVM heap size, see
Setting the JVM heap size on page 544.
The key indicators of a successful JVM heap setting are:
v GC overhead - the percentage of time spent in stop-the-world GC versus the
time spent running the application
v GC pause times - the length of the stop-the-world GC cycles
The requirements on these two values vary according to what you are trying to
achieve; for a batch application, a low GC overhead would be important, but
pause times might be less relevant. For real-time applications, the pause times are
more important than the overall GC overhead.
It is often possible to achieve GC overheads of less than 1 percent and pause times
under 1 second (with the exception of compaction cycles). Typically, if the GC
overhead is more than 10 percent, it can be reduced by tuning. Pause times of
more than 2 seconds are often avoidable, typically by tuning to avoid compaction.
The optimum values for any situation can only be determined by experimenting
with values and monitoring the results, because there are so many variables,
including the complexity of the message flow and the size of the messages being
processed.
You could begin by running a single instance of the message flow using the default
heap size, and then increasing the message size and number of instances in a
controlled way to their maximum values. Ensure that you make one change at a
time. While you are doing this, monitor JVM heap usage and GC activity using
resource statistics to ensure that the heap size is sufficiently large to process the
largest messages without exceeding the targets for GC overhead and GC pause
times. Also ensure that you monitor JVM heap usage on a regular basis, and
ensure that the recommended thresholds are not being exceeded.
For more detailed analysis, you can use the Java Health Center, which is available
through the IBM Support Assistant.
Related concepts:
Stack storage on page 517
Depending on the design of your message flow, you might need to increase the
stack size.
Related tasks:
519
SYSTEM.BROKER.AGGR.CONTROL
SYSTEM.BROKER.AGGR.REPLY
SYSTEM.BROKER.AGGR.REQUEST
SYSTEM.BROKER.AGGR.UNKNOWN
v SYSTEM.BROKER.AGGR.TIMEOUT
However, you can control the queues that are used by different aggregation nodes
by creating alternative queues containing a QueuePrefix, and using an Aggregation
configurable service to specify the names of those queues for storing events.
Follow these steps to specify the queues that are used to store event states, and to
set the expiry time of an aggregation:
Procedure
1. Create the storage queues to be used by the aggregation nodes. The following
queues are required:
v SYSTEM.BROKER.AGGR.QueuePrefix.CONTROL
v SYSTEM.BROKER.AGGR.QueuePrefix.REPLY
v SYSTEM.BROKER.AGGR.QueuePrefix.REQUEST
v SYSTEM.BROKER.AGGR.QueuePrefix.UNKNOWN
v SYSTEM.BROKER.AGGR.QueuePrefix.TIMEOUT
The QueuePrefix variable can contain any characters that are valid in a
WebSphere MQ queue name, but must be no longer than eight characters and
must not begin or end with a period (.). For example, SET1 and SET.1 are valid
queue prefixes, but .SET1 and SET1. are invalid.
If you do not create the storage queues, IBM Integration Bus creates the set of
queues when the node is deployed; these queues are based on the default
queues. If the queues cannot be created, the message flow is not deployed.
2. Use the mqsicreateconfigurableservice command to create an Aggregation
configurable service. You can create a configurable service to be used with
either a specific aggregation or with all aggregations in an integration server.
a. If the configurable service is to be used with a specific aggregation, ensure
that the name of the configurable service is the same as the name that you
520
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
521
522
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Follow these steps to specify the queues that are used to store event states, and to
set the expiry for the collection:
Procedure
1. Create the storage queues to be used by the Collector node. The following
queues are required:
v SYSTEM.BROKER.EDA.QueuePrefix.EVENTS
v SYSTEM.BROKER.EDA.QueuePrefix.COLLECTIONS
The QueuePrefix variable can contain any characters that are valid in a
WebSphere MQ queue name, but must be no longer than eight characters and
must not begin or end with a period (.). For example, SET1 and SET.1 are valid
queue prefixes, but .SET1 and SET1. are invalid.
If you do not create the storage queues, IBM Integration Bus creates the set of
queues when the node is deployed; these queues are based on the default
queues. If the queues cannot be created, the message flow is not deployed.
2. Use the mqsicreateconfigurableservice command to create a Collector
configurable service. You can create a configurable service to be used with
either a specific collection or with all collections in an integration server.
a. If you are creating a configurable service to be used with a specific
collection, ensure that the name of the configurable service is the same as
the name that you specify in the Configurable service property on the
Collector node. If you are creating a configurable service to be used with all
collections in the integration server, ensure that the configurable service has
the same name as the integration server.
b. Set the Queue prefix property to the required value.
c. Optional: Set the Collection expiry property.
For example, create a Collector configurable service called myCollectorService,
which uses queues prefixed with SYSTEM.BROKER.EDA.SET1, and with a
collection expiry of 60 seconds:
mqsicreateconfigurableservice MYBROKER -c Collector -o myCollectorService
-n queuePrefix,collectionExpirySeconds -v SET1,60
You can use the mqsideleteconfigurableservice command to delete the
Collector configurable service. However, the storage queues are not deleted
automatically when the configurable service is deleted, so you must delete
them separately.
For more information, see Configurable services properties
3. In the Collector node:
a. If the configurable service is to be used for a specific collection, specify the
name of the configurable service in the Configurable service property on
the Advanced tab; for example, myCollectorService. If you do not set the
Configurable service property, and if a configurable service exists with the
same name as the integration server, that configurable service is used
instead.
b. Optional: Use the mqsichangeproperties and mqsireportproperties
commands to change or view the properties of the configurable service.
Alternatively, you can use the IBM Integration Explorer to view or modify a
configurable service. For more information about working with configurable
services, see Using the IBM Integration Explorer to work with configurable
services.
523
What to do next
The properties for the configurable service are not used by the broker until you
restart or redeploy the message flow, or restart the broker.
Related concepts:
Using the IBM Integration Explorer to work with configurable services
Configurable services are used to define properties that are related to external
services on which the integration node (broker) relies. Use the IBM Integration
Explorer to view, add, modify and delete configurable services.
Related tasks:
Viewing configurable services
Configurable services are used to define properties that are related to external
services on which the integration node (broker) relies. Use the IBM Integration
Explorer to view the properties of configurable services defined on your
integration node.
Modifying an IBM defined configurable service
You can create a new configurable service for an external service on which the
broker relies, by modifying predefined configurable services provided by IBM. Use
the IBM Integration Explorer to view and modify existing configurable services.
Modifying a configurable service
Use the IBM Integration Explorer to view and modify existing configurable
services.
Deleting a configurable service
Use the IBM Integration Explorer to delete custom configurable services.
Related reference:
Collector node
Use the Collector node to create message collections based on rules that you
configure in the node.
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
Configuring the storage of events for Resequence nodes:
You can use a Resequence configurable service to control the storage of events for
Resequence nodes.
524
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
525
526
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
are defined by their names and properties. You can use the supplied services.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
Configuring the storage of events for timeout nodes:
You can use a Timer configurable service to control the storage of events for
TimeoutNotification and TimeoutControl nodes.
About this task
By default, the storage queue used by all timeout nodes is the
SYSTEM.BROKER.TIMEOUT.QUEUE.
However, you can control the queues that are used by different timeout nodes by
creating alternative queues that contain a QueuePrefix variable, and by using a
Timer configurable service to specify the names of those queues for storing events.
Follow these steps to specify the queue that is used to store event states:
Procedure
1. Create the storage queue to be used by the timeout nodes. The following queue
is required:
v SYSTEM.BROKER.TIMEOUT.QueuePrefix.QUEUE
The QueuePrefix variable can contain any characters that are valid in a
WebSphere MQ queue name, but must be no longer than eight characters and
must not begin or end with a period (.). For example, SET1 and SET.1 are valid
queue prefixes, but .SET1 and SET1. are invalid.
If you do not create the storage queue, IBM Integration Bus creates the queue
when the node is deployed; this queue is based on the default queue. If the
queue cannot be created, the message flow is not deployed.
2. Use the mqsicreateconfigurableservice command to create a Timer
configurable service. You can create a configurable service to be used with
either specific timeout requests or with all timeout requests in an integration
server.
a. If the configurable service is to be used with specific timeout requests,
create the configurable service with the same name as the Unique
identifier property on the TimeoutNotification and TimeoutControl nodes.
If the configurable service is to be used with all timeout requests in an
integration server, create the configurable service with the same name as the
integration server.
b. Set the Queue prefix property to the required value.
For example, create a Timer configurable service that uses a queue prefixed
with SYSTEM.BROKER.TIMEOUT.SET1:
Chapter 3. Performance, monitoring, and workload management
527
528
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
You can also work with resource statistics from CMP applications. See Working
with resource statistics in a CMP application on page 103 for further details.
Related concepts:
529
Resource statistics
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
mqsichangeresourcestats command
Use the mqsichangeresourcestats command to control statistics gathering for
resources in the broker.
mqsireportresourcestats command
Use the mqsireportresourcestats command to display current statistics gathering
options for resources in the broker.
Resource statistics
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
As a system administrator, you can use the resource statistics to ensure that your
systems are using the available resources in the most efficient manner. By
monitoring systems and analyzing statistical trends, you can keep system resource
usage within boundaries that you consider acceptable, and help to pre-empt
situations where system resources are overstretched and might become
unavailable. Analysis of the data returned potentially requires specialist skills and
knowledge of each resource type.
If you detect that system resources are under pressure, you can examine the
statistics collected by the broker to assess whether the cause of the concern is the
use of those resources by processes in IBM Integration Bus.
You must activate statistics collection; by default, collection is not active. If you
activate statistics, you might experience a minor degradation in operating
performance of the broker or brokers for which you are collecting data. You can
collect data on one or more integration servers, as well as all integration servers on
a broker, so that you can limit the statistics gathering activity if appropriate.
Resource statistics complement the accounting and statistics data that you can
collect on message flows, which are also available in the IBM Integration Explorer;
for details, see Analyzing message flow performance on page 469.
To start, stop, or check the status of resource statistics collection, use one or more
of the following options:
v The IBM Integration Explorer
v The mqsichangeresourcestats and mqsireportresourcestats commands
v A CMP application
To view the output that is generated by statistics collection, use one or more of the
following options:
v The IBM Integration Explorer; numeric data and graphs are displayed for each
integration server for which you have activated statistics collection.
v An application that subscribes to a publication message, that is published by the
broker every 20 seconds. The message contains the data collected for each
530
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
|
|
|
integration server for which you have activated statistics collection. The
published message is available in XML format and in JSON format.
The topic for each message has the following structure:
For XML format:
$SYS/Broker/broker_name/ResourceStatistics/integration_server_name
For JSON format:
$SYS/Broker/broker_name/Statistics/JSON/Resource/integration_server_name
You can set up subscriptions for a specific integration server on a specific broker.
For example:
For XML format:
$SYS/Broker/IB9NODE/ResourceStatistics/default
For JSON format:
$SYS/Broker/IB9NODE/Statistics/JSON/Resource/default
You can also use wildcards in the subscriptions to broaden the scope of what is
returned. For example, to subscribe to reports for all integration servers on all
brokers, use the following values:
For XML format:
$SYS/Broker/+/ResourceStatistics/#
For JSON format:
$SYS/Broker/+/Statistics/JSON/Resource/#
For details of all the statistics that are reported for each resource manager, and the
publication content, see Resource statistics data.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Analyzing resource performance on page 529
You can collect statistics to assess the performance of resources used by integration
servers.
Subscribing to statistics reports on page 542
You can subscribe to topics that return statistics about the operation of your
message flows and resource managers.
Working with resource statistics in a CMP application on page 103
Start, stop, and review status of resource statistics collection in your CMP
applications.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
Special characters in topics
A topic can contain any character in the Unicode character set, but some characters
have a special meaning.
mqsichangeresourcestats command
Use the mqsichangeresourcestats command to control statistics gathering for
resources in the broker.
Chapter 3. Performance, monitoring, and workload management
531
mqsireportresourcestats command
Use the mqsireportresourcestats command to display current statistics gathering
options for resources in the broker.
Procedure
1. If your broker is running on Linux, UNIX, or Windows systems, set up the
correct command environment. For details of how to complete this task, see
Setting up a command environment.
2. Decide whether you want to collect statistics for a specific integration server, or
for all integration servers on the broker.
3. Run the mqsichangeresourcestats command with the appropriate parameters.
For example, to start collecting resource statistics for the default integration
server for BrokerA, enter the following command:
mqsichangeresourcestats BrokerA -c active -e default
For further examples, see mqsichangeresourcestats command.
Related concepts:
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Stopping resource statistics collection on page 533
Use the mqsichangeresourcestats command to stop collecting resource statistics.
Viewing status of resource statistics collection on page 534
Use the mqsireportresourcestats command to view the status of resource statistics
collection.
Related reference:
532
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. If your broker is running on Linux, UNIX, or Windows systems, set up the
correct command environment. For details of how to complete this task, see
Setting up a command environment.
2. Decide whether you want to stop collection for a specific integration server, or
for all integration servers on the broker. The way in which you started
collection is not important; you can stop collection for one integration server,
even if you started it for all integration servers. You can also stop collection for
all integration servers, even if you started only one, or each one separately.
3. Run the mqsichangeresourcestats command with the appropriate parameters.
For example, to stop collecting resource statistics for the default integration
server for BrokerA, enter:
mqsichangeresourcestats BrokerA -c inactive -e default
See the mqsichangeresourcestats command for further examples.
Related concepts:
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Starting resource statistics collection on page 532
Use the mqsichangeresourcestats command to start collecting resource statistics.
Viewing status of resource statistics collection on page 534
Use the mqsireportresourcestats command to view the status of resource statistics
collection.
Related reference:
Chapter 3. Performance, monitoring, and workload management
533
Procedure
1. If your broker is running on Linux, UNIX, or Windows systems, set up the
correct command environment. For details of how to complete this task, see
Setting up a command environment.
2. Decide whether you want to view status for a specific integration server, or for
all integration servers on the broker.
3. Run the mqsireportresourcestats command with the appropriate parameters.
For example, to view status for the default integration server on BrokerA, enter:
mqsireportresourcestats BrokerA -e default
See the mqsireportresourcestats command for further examples.
Related concepts:
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Starting resource statistics collection on page 532
Use the mqsichangeresourcestats command to start collecting resource statistics.
Stopping resource statistics collection on page 533
Use the mqsichangeresourcestats command to stop collecting resource statistics.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
534
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsichangeresourcestats command
Use the mqsichangeresourcestats command to control statistics gathering for
resources in the broker.
mqsireportresourcestats command
Use the mqsireportresourcestats command to display current statistics gathering
options for resources in the broker.
Procedure
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration Nodes
folder, then expand the folder of the integration node with which you are
working.
2. Right-click the integration server for which you want to collect statistics. If you
want statistics for several integration servers on this integration node, select
more than one by using standard operating system interfaces. For example, on
Windows systems, hold down the Ctrl key and select each integration server
before you right-click to open the menu.
3. Click Statistics > Start Resource Statistics. A message is sent to the integration
node to start collecting data for the selected integration servers. The property
Resource Statistics Active is updated in the properties view of each affected
integration server to indicate that data collection is now active.
A warning message is displayed in the integration server properties window to
warn you that performance might be affected by your action.
4. To view statistics, click Window > Show View > Resource Statistics to open
the Broker Resources and Broker Resources Graph views. If you are displaying
535
statistics for this integration server for the first time, the views might be empty
until the first data is received. Update messages are sent every 20 seconds, and
the views refresh automatically.
The Broker Resources and Broker Resources Graph views are displayed
together. If you close one of the views, the other view is also closed.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Stopping resource statistics collection in the IBM Integration Explorer
Use the IBM Integration Explorer to stop collecting resource statistics data for your
integration servers.
Viewing resource statistics data in the IBM Integration Explorer on page 537
Use the IBM Integration Explorer to view resource statistics data for your
integration servers in the Broker Resources and Broker Resources Graph views.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
Procedure
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration
Nodes folder.
2. Right-click the integration node or integration server for which you want to
stop statistics collection. If you want to stop statistics collection for several
integration servers, you can select more than one by using standard operating
536
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
system interfaces; for example, on Windows systems, hold down the Ctrl key
and select each integration server before you right-click to open the menu.
3. Click Statistics > Stop Resource Statistics. A message is sent to the integration
node to stop collecting resource data for the selected integration servers. The
status of data collection is updated in the properties view for each affected
integration server.
Results
If you click Window > Show View > Resource Statistics to open the Broker
Resources and Broker Resources Graph views when statistics collection is not
active, the data that is displayed represents the last update message received by
the IBM Integration Explorer. If you have never started statistics collection for this
integration server, the views are displayed but contain no data.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
Starting resource statistics collection in the IBM Integration Explorer on page 535
Use the IBM Integration Explorer to start collecting resource statistics data for your
integration servers. You can then view the data in the Broker Resources and Broker
Resources Graph views.
Viewing resource statistics data in the IBM Integration Explorer
Use the IBM Integration Explorer to view resource statistics data for your
integration servers in the Broker Resources and Broker Resources Graph views.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
537
To view resource statistics in the IBM Integration Explorer, complete the following
steps.
Procedure
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration
Nodes folder.
2. To open the Resource Statistics and Resource Statistics Graph views, click
Window > Show View > Resource Statistics. These two views are displayed
together. If you close one of the views, the other view is also closed.
3. Use the information in these views to review the use of resources for which
statistics are available.
The following examples demonstrate the types of question that can be
answered by collecting resource statistics. This list is not exhaustive, and does
include all resource types. For a full list of resource types, and the type of
information that is collected for each one, see Resource statistics data
JVM statistics
How much memory is the JVM using?
Many tools that are specific to an operating system give you
the total memory that is used by the integration server, but
they do not show you how that memory is divided between
Java processing and other processing in the integration server.
By looking at the field CommittedMemoryInMB, you can see how
much memory is currently allocated to the JVM. Then look at
the field MaxMemoryInMB to see the maximum amount of
memory that can be allocated.
How often is garbage collection done? Is it affecting the performance
of the integration server?
To see how often the JVM is doing garbage collection, check the
CumulativeNumberOfGCCollections field to see if the rate of
collections is increasing. Garbage collection is a normal process,
and is therefore expected to some degree. However, excessive
garbage collection can affect performance.
To see if current garbage collection is excessive, monitor the
CumulativeGCTimeInSeconds value. If this value is increasing by
more than 2 seconds in each 20-second statistics interval, try
increasing the JVM maximum heap size for your integration
server by using the mqsichangeproperties command. You
might also want to inspect all the Java user-defined nodes and
JavaCompute nodes that are included in your deployed
message flows, to ensure that they do not create and delete
many objects that could be reused; frequent deletions can
contribute to excessive garbage collection.
Do I need to change the minimum or maximum heap sizes?
v If the CumulativeGCTimeInSeconds value is increasing by
more than 2 seconds in each 20 second statistics interval,
increase the maximum heap size to reduce this increase.
v If the UsedMemoryInMB value is never close to the
InitialMemoryInMB value, you might have allocated more
memory for the heap than is required. Therefore, reduce the
JVM minimum heap size value for the integration server to a
value that is closer to the UsedMemoryInMB value.
538
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Change these values gradually, and check the results to find the
optimum settings for your environment.
Parsers
Are message parsers using more memory than expected?
A message flow parses input messages and can create many
output messages. These messages may have large bit streams or
large message trees. The parsers created to perform this
message processing might consume a large amount of memory.
Use the Parsers statistics to determine if message flow parsers
are using more memory than expected. If so, consider
deploying such flows into separate integration servers or
improving ESQL or Java plugin API processing to efficiently
handle large messages or transformations.
Is message parsing or writing failing frequently for a particular
message flow?
If a message flow receives or attempts to write an invalid
message, it is likely that this will be rejected by a parser. Use
the message parsers statistics to see if a message flow is
rejecting a large amount of input or output messages compared
with successful processing.
Outbound sockets
Are the nodes reusing outbound sockets?
Creating outbound sockets can be an expensive operation, and
the number of sockets available on a computer is a finite
resource. Therefore, increasing socket reuse can enhance
performance. If the workload is continuous and consistent, the
TotalSockets value indicates an initial period of activity, which
then reduces when the integration server starts to reuse sockets.
A steady increase in the TotalSockets value over time is
expected because sockets are closed after a period of inactivity,
or when they have been used many times.
If the TotalSockets value increases significantly over time, this
trend might indicate that outbound sockets are not being
reused.
If your message flows include HTTPRequest nodes, check that
you have set the keepalive property Enable HTTP/1.1
keepalive.
Check also whether the endpoint that is called uses keepalive
sockets.
Which endpoints are most used?
The values TotalMessages indicates how busy each endpoint is.
The value in the summary record tells you how much activity
occurred across the whole integration server.
How large are sent and received messages?
The values of the SentMessageSize_* and
ReceivedMessageSize_* fields give a profile of the message
sizes flowing to and from each endpoint.
539
540
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration
Nodes folder.
2. Click the integration server for which you want to view statistics collection
status. You can view status for only one integration server at a time.
In the WebSphere MQ Explorer - Content view, the Resource Statistics Active
field indicates whether statistics collection is active. If the field contains the
value None, statistics collection is inactive. If collection is active, the field
contains the value CICS, CORBA, FTEAgent, JVM, Parsers, Security, Sockets
or JDBC Connection Pooling.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Resource statistics on page 530
Resource statistics are collected by a broker to record performance and operating
details of resources that are used by integration servers.
Related tasks:
541
Starting resource statistics collection in the IBM Integration Explorer on page 535
Use the IBM Integration Explorer to start collecting resource statistics data for your
integration servers. You can then view the data in the Broker Resources and Broker
Resources Graph views.
Stopping resource statistics collection in the IBM Integration Explorer on page
536
Use the IBM Integration Explorer to stop collecting resource statistics data for your
integration servers.
Related reference:
Resource statistics data
Learn about the measurements for which data is returned when you activate
resource statistics collection.
542
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
You can use wild cards when you subscribe to statistics reports. For example, to
receive message flow statistics reports for all brokers and all integration servers,
subscribe to the following topic:
$SYS/Broker/+/StatisticsAccounting/#
To receive integration server resource statistics reports for all brokers and all
integration servers, subscribe to the following topic:
$SYS/Broker/+/ResourceStatistics/#
For further details about how you can use wildcards, see Special characters in
topics.
Results
Subscribers receive statistics reports only from those brokers that are enabled to
produce statistics.
Related tasks:
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
message flows.
Analyzing resource performance on page 529
You can collect statistics to assess the performance of resources used by integration
servers.
Viewing resource statistics data in the IBM Integration Explorer on page 537
Use the IBM Integration Explorer to view resource statistics data for your
integration servers in the Broker Resources and Broker Resources Graph views.
Related reference:
Special characters in topics
A topic can contain any character in the Unicode character set, but some characters
have a special meaning.
543
Procedure
v
v
v
v
544
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
545
Set this environment variable to at least 48 KB. The default values are:
Linux and UNIX
1 MB
AIX
2 MB
z/OS
50 KB
Windows
Determined by the operating system.
Related concepts:
Stack storage on page 517
Depending on the design of your message flow, you might need to increase the
stack size.
Related tasks:
Increasing the stack size on z/OS
Change the stack size on z/OS by altering or adding the Language Environment
(LE) _CEE_RUNOPTS environment variable. This can be done for all integration
servers defined to a broker, or a specific integration server.
546
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Stop the broker.
2. Make the necessary changes to the profile.
3. Submit BIPGEN to re-create the broker ENVFILE and any integration server
specific ENVFILEs.
4. Restart the broker.
Results
To update the stack sizes for a specific integration server in a broker, take the
following steps:
1. Stop the broker.
2. Make the necessary changes to the integration server specific profile.
3. Submit BIPGEN to re-create the broker ENVFILE and any integration server
specific ENVFILEs.
4. Restart the broker.
Example
The following example shows how you can change the default stack value of 1 MB
to 2 MB:
export _CEE_RUNOPTS=THREADSTACK64\(ON,2M,1M,128M\)
What to do next
When you use the RPTSTG option, it increases the time that an application takes to
run, so use it as an aid to the development of message flows only, and not in your
final production environment. When you have determined the correct stack sizes
needed, remove this option from the _CEE_RUNOPTS environment variable.
XPLINK stacks grow downward in virtual storage while the standard linkage
grows upward. To avoid affecting performance by switching between downward
stack space and upward stack space during run time, compile user-defined
extensions using the XPLINK option where possible. If your message flow uses
user-defined extensions that have been compiled with the standard linkage
convention, set a suitable value for the upward stack size.
Related concepts:
Stack storage on page 517
Depending on the design of your message flow, you might need to increase the
stack size.
Related tasks:
Increasing the stack size on Windows, Linux, and UNIX systems on page 545
Increase the stack size on Windows, Linux, and UNIX systems by setting the
MQSI_THREAD_STACK_SIZE environment variable to an appropriate value.
547
the DFE process requests an initial heap storage allocation of 40 Mb, with
subsequent heap increments of 5 Mb. RPTOPTS can be used to generate a report of
the runtime options in effect for each process.
v KEEP, which is the default value, specifies that storage allocated to HEAP
increments is not released when the last segment of the allocated storage is
freed.
v FREE specifies that storage allocated to HEAP increments is released when the last
segment of the allocated storage is freed.
For performance reasons, IBM Integration Bus takes the default, KEEP. For most
message processing scenarios, when storage allocations are less than 5 Mb, it is
more efficient to reuse storage that has been freed within the heap increment. With
KEEP, the 5 Mb heap increment remains allocated, even if all of the storage
segments have been released.
If storage requests frequently exceed 5 Mb, these requests are allocated directly on
the heap. When the object is freed, the allocation remains on the heap, and is
reused for subsequent storage requests whose size is less than, or equal to, the size
of the heap allocation. Over time, the heap allocation is used for different-sized
objects, and this can lead to fragmentation, which in turn can result in high storage
usage. In these circumstances, consider setting the HEAP runtime environment
variable for the Language Environment to use the FREE parameter.
To set HEAP for all integration servers in a broker, change or add the Language
Environment _CEE_RUNOPTS environment variable in the component profile
(BIPBPROF):
1. Stop the broker.
2. Make the necessary changes to the profile.
3. Submit BIPGEN to re-create the ENVFILE and any integration server specific
ENVFILEs.
4. Restart the broker.
To set HEAP for a specific integration server, change or add the Language
Environment _CEE_RUNOPTS environment variable in the integration server specific
profile (renamed BIPEPROF):
1. Stop the broker.
2. Make the necessary changes to the integration server specific profile.
3. Submit BIPGEN to re-create the broker ENVFILE and any integration server
specific ENVFILEs.
4. Restart the broker.
For example, you can change the default values of KEEP to FREE in the following
line:
_CEE_RUNOPTS=HEAP64(40M,5M,FREE,9M,32K,KEEP,4096,4096,FREE)
548
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
549
-w is set to a value that is less than the configuration timeouts for the broker, then
you might see timeouts for configuration changes that successfully complete.
Look for success messages in the Administration log in the IBM Integration
Explorer, or Deployment Log in the IBM Integration Toolkit. When success
messages are displayed the deployment has completed. If you start a deployment
and record how long it takes for the success messages to appear, you can use this
time interval as the basis for setting these timeout values.
If the broker is on a production system, increase the values for both
ConfigurationChangeTimeout and InternalConfigurationTimeout parameters to allow for
application messages that are currently being processed by message flows to be
completed before the configuration change is applied. Also consider increasing the
value if you have merged message flows into fewer integration servers that you
are using for testing.
If the broker is on a development or test system, you might want to reduce
timeout lengths (in particular, the value of the ConfigurationChangeTimeout
parameter) to improve perceived response times, and to force a response from a
broker that is not showing expected behavior. However, reducing the timeout
values decreases the probability of deploying a configuration change successfully.
During broker startup, the InternalConfigurationTimeout parameter is automatically
extended based on the number of integration servers which a broker contains. At
this time, the timeout period reported in the BIP2080 warning message may not
match the value configured for the InternalConfigurationTimeout parameter.
Related concepts:
The IBM Integration Bus environment
An integration node (broker) is a set of execution processes that hosts one or more
message flows to route, transform, and enrich in flight messages.
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Checking the results of deployment
After you have made a deployment, check that the operation has completed
successfully.
Related reference:
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
550
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsideploy command
Use the mqsideploy command to make a deployment request to the broker.
551
from the queue. Therefore, this node behaves as though you have set the
Additional Instances property of the message flow to zero.
v If you set Order Mode to User Defined, you can order messages by any
message element, by setting an XPath or ESQL expression in the Order
field location property. The node ensures that messages with the same
value in the order field message element are processed in guaranteed
order. A second message with the same value in the order field message
element is not processed by an instance of the message flow if a
previous message with the same value is currently being processed by
another instance of the message flow.
If the field is missing, an exception is raised, and the message is rolled
back. NULL and empty values are processed separately, in parallel.
If you set Order Mode to By User ID or User Defined, and the message
flow uses transformation nodes, it is advisable to set the Parse Timing
to Immediate.
Multiple copies of the message flow in a broker
You can also deploy several copies of the same message flow to different
integration servers in the same broker. This option has similar effects to
increasing the number of processing threads in a single message flow.
This option also removes the ability to determine the order in which the
messages are processed, because, if there is more than one copy of the
message flow active in the broker, each copy can be processing a message
at the same time, from the same queue. The time taken to process a
message might vary, and multiple message flows accessing the same queue
might therefore read messages from the input source in a random order.
The order of messages produced by the message flows might not
correspond to the order of the original messages.
Ensure that the applications that receive message from these message flows
can tolerate out-of-order messages. Additionally, ensure that the input
nodes in these message flows are suitable for deployment to different
processes.
Copies of the message flow in multiple brokers
You can deploy several copies of the same message flow to different
brokers. This option requires changes to your configuration, because you
must ensure that applications that supply messages to the message flow
can put their messages to the right input queue or port. You can often
make these changes when you deploy the message flow by setting the
message flow's configurable properties.
The scope of the message flow
You might find that, in some circumstances, you can split a single message
flow into several different flows to reduce the scope of work that each
message flow performs. If you do split your message flow, be aware that it
is not possible to run the separate message flows in the same unit of work,
and if transactional aspects to your message flow exist (for example, the
updating of multiple databases), this option does not provide a suitable
solution.
The following two examples show when it might be beneficial to split a
message flow:
1. In a message flow that uses a RouteToLabel node, the input queue
might increase in size, indicating that work is arriving faster than it is
being processed; this might indicate a need for increased processing
capacity. You can use another copy of the message flow in a second
552
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
integration server, but this option is not appropriate if you want all of
the messages to be handled in the order in which they are shown on
the queue. You can consider splitting out each branch of the message
flow that starts with a Label node by providing an input queue and
input node for each branch. This option might be appropriate, because
when the message is routed by the RouteToLabel node to the relevant
Label node, it has some level of independence from all other messages.
You might also need to provide another input queue and input node to
complete any common processing that the Label node branches connect
to when unique processing has been done.
2. If you have a message flow that processes very large messages that
take a considerable time to process, you might be able to:
a. Create other copies of the message flow that use a different input
queue (you can set this option up in the message flow itself, or you
can update this property when you deploy the message flow).
b. Set up WebSphere MQ queue aliases to redirect messages from
some applications to the alternative queue and message flow.
You can also create a new message flow that replicates the function of
the original message flow, but only processes large messages that are
immediately passed on to it by the original message flow, that you
modified to check the input message size and redirect the large
messages.
The frequency of commits
If a message flow receives input messages on a WebSphere MQ queue, you
can improve its throughput for some message flow scenarios by modifying
its default properties after you have added it to a BAR file. (These options
are not available if the input messages are received by other input nodes;
commits in those message flows are performed for each message.)
The following properties control the frequency with which the message
flow commits transactions:
v Commit Count. This property represents the number of messages
processed from the input queue per message flow thread, before an
MQCMIT is issued.
v Commit Interval. This property represents the time interval that elapses
before an MQCMIT is started.
Related concepts:
Message flow statistics and accounting data on page 471
Message flow statistics and accounting data can be collected to record performance
and operating details of one or more message flows.
Related tasks:
Optimizing message flow response times on page 554
You can use different solutions to improve message flow response times.
Viewing message flow accounting and statistics data on page 496
You can view snapshot accounting and statistics data as it is produced by the
broker.
Tuning message flow performance on page 510
You can configure your message flows to enhance their performance in terms of
resource usage, message flow throughput, and response times.
Analyzing message flow performance on page 469
You can configure your broker to collect statistics about the operation and behavior
of your message flows. Use this information to assess the performance of your
Chapter 3. Performance, monitoring, and workload management
553
message flows.
Creating a message flow
Create a message flow to specify how to process messages in the broker. You can
create one or more message flows and deploy them to one or more brokers.
Designing a message flow
A message flow can perform a wide range of operations, depending on your
business and operational requirements. For best performance and capability, you
must design it to include the most appropriate nodes.
Defining message flow content
You can define message flow content by adding and configuring message flow
nodes and connecting them to form flows.
Editing configurable properties
You can edit configurable properties in the deployment descriptor file (broker.xml)
of your broker archive.
Configure a workload management policy within Integration Registry on page
644
Describes how to create and configure a policy, and defines the precedent rules.
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Related reference:
Built-in nodes
IBM Integration Bus supplies built-in nodes that you can use to define your
message flows.
Configurable message flow properties
When you add a message flow to a broker archive (BAR) file in preparation for
deploying it to a broker, you can set additional properties that influence its run
time operation. These properties are available for review and update when you
select the Manage and Configure tab for the broker archive file.
Publish message
Related information:
WebSphere MQ Version 7 product documentation
554
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
555
and the processing of each of the label types into separate message flows.
The interface between these two flows would be through a queue.
The following sample demonstrates how you can use the RouteToLabel
and Label nodes instead of using multiple Filter nodes in the
XML_PassengerQuery message flow.
v Airline Reservations
The following sample demonstrates how you can store routing information
in a database table in an in-memory cache in the message flow.
v Message Routing
You can view information about samples only when you use the
information center that is integrated with the IBM Integration Toolkit or
the online information center. You can run samples only when you use
the information center that is integrated with the IBM Integration
Toolkit.
If your message flow includes loops
Avoid loops of repeating nodes, which can be very inefficient and can
cause performance and stack problems. You might find that a Compute
node with multiple PROPAGATE statements avoids the need to loop
around a series of nodes.
The efficiency of the ESQL
Check all the ESQL code that you have created for your message flow
nodes. As you develop and test a node, you might maintain statements
that are not required when you have finalized your message processing.
You might also find that something you have coded as two statements can
be coded as one. Taking the time to review and check your ESQL code
might provide simplification and performance improvements.
The use of persistent and transactional messages
Persistent messages are saved to disk during message flow processing. You
can avoid this situation by specifying that messages are non-persistent on
input, output, or both. If your message flow is handling only
non-persistent messages, check the configuration of the nodes and the
message flow itself; if your messages are non-persistent, transactional
support might be unnecessary. The default configuration of some nodes
enforces transactionality; if you update these properties and redeploy the
message flow, response times might improve.
Message size
A larger message takes longer to process. If you can split large messages
into smaller units of information, you might be able to improve the speed
at which they are handled by the message flow. The following sample
demonstrates how to minimize the virtual storage requirements for the
message flow to improve a message flow's performance when processing
potentially large messages.
v Large Messaging
You can view information about samples only when you use the
information center that is integrated with the IBM Integration Toolkit or
the online information center. You can run samples only when you use the
information center that is integrated with the IBM Integration Toolkit.
Message format
Although IBM Integration Bus supports multiple message formats, and
provides facilities that you can use to transform from one format to
556
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
557
Viewing accounting and statistics data in the web user interface on page 499
You can use the web user interface to view snapshot accounting and statistics data.
Related reference:
Built-in nodes
IBM Integration Bus supplies built-in nodes that you can use to define your
message flows.
Procedure
1. Deploy the BAR file, as described in Deploying a message flow that uses
WebSphere Adapters.
2. Start user trace, as described in Starting user trace.
3. Start to collect accounting and statistics data, as described in Starting
collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482.
4. Run the SAP programs at a typical load.
5. Check user trace for message BIP3461. This message tells you the highest
number of listeners that are waiting for message flow threads at any one time.
In an ideal situation, this number should be as low as possible. To reduce the
number of listeners that are waiting for message flow threads, increase the
number of instances on the SAPInput node, or the message flow that contains
it.
6. Inspect the accounting and statistics data for the message flow.
What to do next
Unnecessary data conversion can also affect performance. To maximize
performance and avoid unnecessary data conversion, ensure that messages that are
passed to a SAPRequest node contain the correct data types. The DataObject
domain is the default domain when parsing messages that are produced by the
SAPRequest node. However, when passing data to the SAPRequest node (for
example, by using an MQInput node), the use of a different domain can improve
performance. For example, use the XMLNSC parser with the MQInput node to
parse XML messages.
558
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related concepts:
SAP adapter scalability and performance
You can improve performance by configuring the number of listeners on the
adapter and the number of additional instances on the message flow to prevent
delays when processing synchronous calls from SAP.
Overview of WebSphere Adapter for SAP Software
With WebSphere Adapter for SAP Software you can create integrated processes
that include the exchange of information with an SAP server, without special
coding.
Related tasks:
Developing message flows that use WebSphere Adapters
For information about how to develop message flows that use WebSphere
Adapters, see the following topics.
Deploying a message flow that uses WebSphere Adapters
Deploy the resources that are generated when you run the Adapter Connection
wizard by adding them to a broker archive (BAR) file.
Starting user trace
Use user trace for debugging your applications; you can trace brokers, integration
servers, and deployed message flows. Start user trace facilities using the
mqsichangetrace command or the IBM Integration Explorer.
Starting collection of message flow accounting and statistics data with the
mqsichangeflowstats command on page 482
You can use the mqsichangeflowstats command to start collecting message flow
accounting and statistics data for an active broker at any time. You can specify
what type of statistics you want to collect, and where to send the data.
Related reference:
SAPInput node
Use the SAPInput node to accept input from an SAP application.
Configurable message flow properties
When you add a message flow to a broker archive (BAR) file in preparation for
deploying it to a broker, you can set additional properties that influence its run
time operation. These properties are available for review and update when you
select the Manage and Configure tab for the broker archive file.
559
the messages from that sequence are processed by a single instance of the message
flow, even if additional instances are configured.
This ensures that messages are processed in the order in which they were sent, but
means that the rate of processing stays the same for the messages in that sequence.
In this example, the SOAP message flow with WS-RM enabled processes messages
from multiple inbound sequences in parallel, but it processes only one request at a
time for messages from the same inbound sequence.
For more information about the concepts of WS-RM, read Web Services Reliable
Messaging.
JVM tuning
When WS-RM is enabled for SOAP message processing, a large JVM heap size is
required. Before deploying SOAP message flows that use WS-RM, ensure that your
JVM heap size is set to a minimum of 1.5 GB.
Related concepts:
Web Services Reliable Messaging
IBM Integration Bus supports WS-RM (Web Services Reliable Messaging), which
allows two systems to reliably exchange messages with each other.
Related tasks:
Configuring WS-RM
Configure reliable messaging for web services.
Related reference:
Configurable message flow properties
When you add a message flow to a broker archive (BAR) file in preparation for
deploying it to a broker, you can set additional properties that influence its run
time operation. These properties are available for review and update when you
select the Manage and Configure tab for the broker archive file.
560
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
Procedure
v Scenario: You are experiencing poor performance in the IBM Integration Toolkit
when working with large or complex projects.
Chapter 3. Performance, monitoring, and workload management
561
|
|
|
Procedure
v Scenario: You see poor response times and throughput rates when you run Web
Services using HTTP, and send smaller messages sizes (typically less than 32
KB). Throughput rates can fluctuate with message size. IBM Integration Bus
running on the AIX platform might be affected.
v Explanation: The default configuration of HTTP enables the Nagle algorithm,
which seeks to improve the efficiency of Internet Protocol networks by reducing
the number of packets sent. It works by buffering small packets together,
creating a smaller number of large packets. The HTTPRequest node uses the
platform default for the tcpnodelay setting of its sockets. You can disable the
Nagle algorithm at either the operating system level (system wide) or through
IBM Integration Bus (affecting only the IBM Integration Bus HTTP sockets).
v Solution: Use the following commands to disable the Nagle algorithm:
HTTPRequest, SOAPRequest, and SCARequest nodes
mqsichangeproperties <BrokerName> -e <IntegrationServerName>
-o ComIbmSocketConnectionManager -n tcpNoDelay -v true|false
mqsichangeproperties <BrokerName> -e <IntegrationServerName>
-o ComIbmSocketConnectionManager -n tcpNoDelaySSL -v true|false
Embedded listener for HTTPReply, SOAPReply, and SCAReply nodes
mqsichangeproperties <BrokerName> -e <IntegrationServerName>
-o HTTPConnector -n tcpNoDelay -v true
mqsichangeproperties <BrokerName> -e <IntegrationServerName>
-o HTTPSConnector -n tcpNoDelay -v true
562
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
Procedure
v Scenario: The PutTime reported by WebSphere MQ on z/OS, and other times or
timestamps are inconsistent. A difference of approximately 20 seconds is
detected in:
Traces (including those obtained from the Trace node)
The MQPUTTIME timestamp in the message MQMD header
Timestamps obtained from ESQL (for example, in a Compute node)
v Explanation: IBM Integration Bus reports the time using Coordinated Universal
Time (UTC), which does not account for leap seconds. However, on z/OS, the
message putTime that is reported by WebSphere MQ in the MQMD header of a
message does account for leap seconds, using the value specified for the number
of leap seconds in the CVT field.
This inconsistency can cause:
Chapter 3. Performance, monitoring, and workload management
563
|
|
|
Procedure
v Scenario: A particular component, or the system in general, is running slowly.
v Solution: Consider the following actions:
Check whether tracing is on. You might have started IBM Integration Bus
user tracing or service tracing, ODBC tracing, WebSphere MQ tracing, or
native database tracing. If one or more of these traces are active, turn them
off.
Clear out all old abend files from your errors directory. If you do not clear the
directory of unwanted files, you might find that your system performance
degrades because significant space is used up.
On Windows, use the workpath -w parameter of the mqsicreatebroker
command to create the errors directory in a hard disk partition that does not
contain IBM Integration Bus or Windows.
Increase your system memory.
Related concepts:
Logs
If an error is reported by an IBM Integration Bus component, start your
investigations into its causes by looking at the product and systems logs to which
information is written during component operation.
Related tasks:
Performance on page 450
You can use message flow design and coding techniques to optimize the
performance of your message flows. You can then analyze statistical information
for your message flows and modify aspects of your broker configuration to tune
564
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
Business-level monitoring
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
565
can be used to correlate messages that belong to the same transaction, or to convey
business data to a monitoring application.
Note: Monitoring messages are published using the persistent as topic option. By
default, the publication resolves to be non persistent, but you can change a
publication to be persistent by configuring named topics in WebSphere MQ. For
more information, see the Subscriptions and message persistence topic in the
WebSphere MQ information center.
To receive monitoring events, complete the following steps.
Procedure
1. Configure event sources on the flow.
You can configure event sources by using either monitoring properties or a
monitoring profile. For instructions, see one of the following topics.
v Configuring monitoring event sources using monitoring properties on page
575
v Configuring monitoring event sources using a monitoring profile on page
580
2. Enable event sources.
You can enable event sources by using either the monitoring properties on the
node or the -i parameter on the mqsichangeflowmonitoring command. For
instructions, see Enabling and disabling event sources on page 585
3. Activate monitoring for the flow.
You can activate monitoring by setting the -c parameter on the
mqsichangeflowmonitoring command. For instructions, see Activating
monitoring on page 583.
4. Subscribe to the topic for the flow.
The form of the topic name is shown in the following example.
$SYS/Broker/brokerName/Monitoring/integrationServerName/flowName
What to do next
You can use WebSphere Business Monitor to monitor your message flows. For
more information, see Monitoring flows by using WebSphere Business Monitor
on page 587.
Related concepts:
Monitoring basics on page 568
Message flows can be configured to emit events. The events can be read and used
by other applications for transaction monitoring, transaction auditing, and business
process monitoring.
Monitoring scenarios on page 571
Events can be used to support transaction monitoring, transaction auditing and
business process monitoring.
Related tasks:
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
566
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Monitoring overview
To monitor message flows, learn about monitoring basics and scenarios, and decide
how to configure event sources.
An event is a message that a message flow publishes when something interesting
happens. The message contains information about the source of the event, the time
of the event, and the reason for the event. The event can include the message bit
stream, and can also include selected elements from the message body. These fields
can be used to correlate messages that belong to the same transaction, or to convey
business data to a monitoring application.
To learn more about the concepts of monitoring, see the following topics.
v Monitoring basics on page 568
v Monitoring scenarios on page 571
v Deciding how to configure monitoring events for message flows on page 573
To configure monitoring, complete the steps in Business-level monitoring on
page 565.
You can also find reference information about monitoring in Monitoring message
flows.
Related tasks:
Resolving problems when you monitor message flows on page 827
Follow the advice for dealing with common problems that can arise when you are
monitoring IBM Integration Bus flows.
567
Monitoring basics
Message flows can be configured to emit events. The events can be read and used
by other applications for transaction monitoring, transaction auditing, and business
process monitoring.
Monitoring Events
A monitoring event is an XML document that conforms to the monitoring event
schema. Each event contains the following information:
v Source of the event
v Name of the event
v Sequence number and creation time
v Correlation ID for events emitted by the same transaction or unit of work
Additionally, a monitoring event can contain the following items:
v Application data extracted from the message
v Part or all of the message bit stream
See The monitoring event for more details
Event Sources
A message flow can emit two kinds of events:
Transaction events
Transaction events are emitted only from input nodes.
Terminal events
Terminal events are emitted from any terminal of any node, including
input nodes.
An individual message flow can choose to emit transaction events, terminal events,
or both kinds of event. You can configure, enable, and disable, both types of events
in either of the following ways:
v Using the monitoring properties of the message flow.
v Using a monitoring profile configurable service.
The use of a monitoring profile configurable service overrides the monitoring
properties of a message flow.
An event source address identifies an event source in a message flow.
Because terminal events can be emitted from any node in a message flow, they can
be used as an alternative to dedicated event-emitting nodes or subflows such as
that supplied in SupportPac IA9V.
Event sources emit events only if monitoring is activated for the message flow.
Terminal events
Any terminal in a message flow can be an event source. If the event source is
active, it emits an event each time a message passes through the terminal, subject
to the evaluation of the eventFilter expression; see Event output options on page
569.
568
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Transaction events
Each input node in a message flow contains three events sources, in addition to
terminal events.
Event source
Description
Transaction start
Nodename.transaction.Start
Transaction end
Nodename.transaction.End
Transaction rollback
Nodename.transaction.Rollback
Events are emitted subject to the evaluation of the eventFilter expression; see
Event output options.
If a message flow handles its own exceptions, a transaction end event, rather than
a transaction rollback event, is issued, because the flow has taken control of the
error and terminated normally. In this case, if you need to distinguish errors, you
can configure terminal events at appropriate nodes in the flow.
569
570
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Monitoring scenarios
Events can be used to support transaction monitoring, transaction auditing and
business process monitoring.
571
transaction events and terminal events, including events that capture data
from the input message and output message. Modify the model to match
your actual events and message formats.
A WebSphere Business Monitor Model is supplied with the WebSphere
Business Monitor sample. For instructions about how to install and
configure the sample WebSphere Business Monitor Model , see Running
the WebSphere Business Monitor sample.
Related concepts:
Monitoring basics on page 568
Message flows can be configured to emit events. The events can be read and used
by other applications for transaction monitoring, transaction auditing, and business
process monitoring.
Related tasks:
Business-level monitoring on page 565
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Configuring monitoring event sources using a monitoring profile on page 580
You can create a monitoring profile and use the mqsichangeflowmonitoring
command to configure your message flows to emit monitoring events.
Resolving problems when you monitor message flows on page 827
Follow the advice for dealing with common problems that can arise when you are
monitoring IBM Integration Bus flows.
Configuring monitoring event sources using monitoring properties on page 575
In the Message flow Editor, use the Monitoring tab on the properties of a node to
add one or more monitoring events.
Related reference:
Monitoring profile
To customize events after a message flow has been deployed, but without
redeploying the flow, use a monitoring profile configurable service. By using this
service, you can apply a monitoring profile to one or more message flows.
mqsichangeflowmonitoring command
Use the mqsichangeflowmonitoring command to enable monitoring of message
flows.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
Built-in nodes
IBM Integration Bus supplies built-in nodes that you can use to define your
message flows.
572
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
573
574
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsireportflowmonitoring command
Use the mqsireportflowmonitoring command to display the current options for
monitoring that have been set using the mqsichangeflowmonitoring command.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
Creating events
About this task
An event source is a point in a message flow from which a monitoring event can
be emitted. Each event source has a set of properties that control the contents of
the monitoring events that it emits.
Procedure
1. Display the properties for the node.
2. Select the Monitoring tab.
3. Click Add.
The Add entry window is displayed.
4. Complete the Event Source field.
The field has a drop-down list of all events that can be defined for this node.
The event source information is used to populate the attributes of the
wmb:eventPointData/wmb:messageFlowData/wmb:node element of the event.
When you have selected the event source, the corresponding value for Event
Source Address is displayed as a read-only property.
575
Example
Transaction start
nodeLabel.TransactionStart
MQInput.TransactionStart
Transaction end
nodeLabel.TransactionEnd
MQInput.TransactionEnd
Transaction rollback
nodeLabel.TransactionRollback
MQInput.TransactionRollback
Terminal
nodeLabel.terminal_label.Terminal
MQInput.OutTerminal
576
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Content
Select from Headers, Body, All.
Encoding
Select from base64, HexBinary and CData (the original text, without
encoding).
9. Optional: Select the Correlation tab, to complete details for event correlation.
10. Complete the Event Correlation details; for information about correlation, see
Correlation and monitoring events.
Every monitoring event must contain at least one correlation attribute, and can contain up to three. If you do not
specify any correlation information, the first event source in the message flow allocates a unique identifier that all
later event sources in the same transaction will use.
577
Message flow
The event, and all other events with this setting, are emitted only if
the message flow commits its unit of work successfully.
If the transaction start event is specified to be included in the message
flow unit of work, but the message processing fails and this unit of
work is not published, the transaction start event will be included in
an independent unit of work. This ensures that your monitoring
application receives a pair of events (start and rollback), rather than
receiving a rollback event in isolation.
Independent
The event is emitted in a second unit of work, independent of the
main unit of work. The event, and all other events with this setting
are emitted whether or not the main unit of work commits
successfully.
An independent transaction can be started only if the main transaction
has been either committed or rolled back. If the Commit count property
of the flow is greater than one, (Configurable message flow
properties), or the Commit by message group property is set (Receiving
messages in a WebSphere MQ message group), the events targeted for
the independent transaction are instead emitted out of sync point, and
a message is output stating that this has been done.
The event is emitted out of sync point (not in any unit of work.) The
event is emitted when the message passes through the event source,
and is available for reading immediately.
Not all these options are available on all event types. The defaults and
allowed values are shown in the following table:
None
Event source
Allowed values
Default
Transaction start
Message flow
Independent
None
Message flow
Transaction end
Message flow
None
Message flow
Transaction rollback
Independent
None
Independent
Terminal
Message flow
Independent
None
Message flow
578
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Right-click the node and select Properties.
2. Select the Monitoring tab.
The monitoring events that you have previously defined are displayed.
3. Select or clear the Enabled check box for each event as appropriate.
v To disable an event, clear the check box.
v To enable an event, select the check box.
4. To add an event, click Add.
5. To delete an event, select the event, then click Delete.
6. To edit an event, select the event, then click Edit.
The Add Event is displayed. For a description of options on this window, see
Creating events on page 575.
7. Save the message flow.
Related concepts:
Deciding how to configure monitoring events for message flows on page 573
Decide whether to use monitoring properties, or a monitoring profile configurable
service, to customize the events produced by a message flow.
Monitoring scenarios on page 571
Events can be used to support transaction monitoring, transaction auditing and
business process monitoring.
Related tasks:
Adding files to a broker archive
To deploy files to an integration server, include them in a broker archive (BAR)
file.
Activating monitoring on page 583
Use the mqsichangeflowmonitoring command to activate monitoring after you have
configured monitoring event sources.
Creating a monitor model for WebSphere Business Monitor V6.2 on page 589
Export monitoring information from IBM Integration Bus to create a monitoring
model for WebSphere Business Monitor V6.2
Creating a monitor model for WebSphere Business Monitor V7 or later on page
591
To create a monitoring model for WebSphere Business Monitor V7 or later, export
monitoring information from IBM Integration Bus.
Related reference:
mqsichangeflowmonitoring command
Use the mqsichangeflowmonitoring command to enable monitoring of message
flows.
Example XPath expressions for event filtering
Use numeric, string, or Boolean expressions when configuring an event source, to
Chapter 3. Performance, monitoring, and workload management
579
Procedure
Follow the guidance at Monitoring profile to create your monitoring profile XML
file.
Procedure
1. Use the mqsicreateconfigurableservice command to create a configurable
service for the monitoring profile. In the following command example, replace
myBroker with the name of your broker, and myMonitoringProfile with the name
of your monitoring profile.
mqsicreateconfigurableservice myBroker -c MonitoringProfiles
-o myMonitoringProfile
2. Use the mqsichangeproperties command to associate your monitoring profile
XML file with the configurable service. In the following command example,
replace myBroker with the name of your broker, myMonitoringProfile with the
name of your monitoring profile, and myMonitoringProfile.xml with the name of
the monitoring profile XML file.
580
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
581
3. You must stop and start the integration server for the changes of property
values to take effect.
Related concepts:
Monitoring basics on page 568
Message flows can be configured to emit events. The events can be read and used
by other applications for transaction monitoring, transaction auditing, and business
process monitoring.
Configurable services
Configurable services are typically runtime properties. You can use them to define
properties that are related to external services on which the broker relies; for
example, an SMTP server or a JMS provider.
Related tasks:
Business-level monitoring on page 565
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
Activating monitoring on page 583
Use the mqsichangeflowmonitoring command to activate monitoring after you have
configured monitoring event sources.
Related reference:
Monitoring profile
To customize events after a message flow has been deployed, but without
redeploying the flow, use a monitoring profile configurable service. By using this
service, you can apply a monitoring profile to one or more message flows.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsichangeflowmonitoring command
Use the mqsichangeflowmonitoring command to enable monitoring of message
flows.
mqsireportflowmonitoring command
Use the mqsireportflowmonitoring command to display the current options for
monitoring that have been set using the mqsichangeflowmonitoring command.
MonitoringProfiles configurable service
Select the objects and properties that you want to change for the
MonitoringProfiles configurable service.
Example XPath expressions for event filtering
Use numeric, string, or Boolean expressions when configuring an event source, to
determine whether the event is emitted.
582
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Activating monitoring
Use the mqsichangeflowmonitoring command to activate monitoring after you have
configured monitoring event sources.
Procedure
v To activate monitoring for all message flows in all integration servers on Linux,
Linux
UNIX
Windows
UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c active -g -j
To activate monitoring for all message flows in all integration servers on z/OS:
z/OS
F MI10BRK,cm c=active,g=yes,j=yes
v To activate monitoring for all message flows in the default integration server on
Linux
UNIX
Windows
Linux, UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c active -e default -j
To activate monitoring for all message flows in the default integration server on
z/OS
z/OS:
F MI10BRK,cm c=active,g=default,j=yes
v To activate monitoring for the myFlow message flow in the default integration
Linux
UNIX
Windows
server on Linux, UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c active -e default -f myFlow
To activate monitoring for the myFlow message flow in the default integration
z/OS
server on z/OS:
Chapter 3. Performance, monitoring, and workload management
583
F MI10BRK,cm c=active,g=default,f=myFlow
v To activate monitoring for all message flows in application application1 in
Linux
UNIX
integration server default on Linux, UNIX, and Windows:
Windows
Procedure
v To deactivate monitoring for all message flows in all integration servers on
Linux
UNIX
Windows
Linux, UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c inactive -g -j
To deactivate monitoring for all message flows in all integration servers on
z/OS
z/OS:
F MI10BRK,cm c=inactive,g=yes,j=yes
v To deactivate monitoring for all message flows in the default integration server
Linux
UNIX
Windows
on Linux, UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c inactive -e default -j
To deactivate monitoring for all message flows in the default integration server
z/OS
on z/OS:
F MI10BRK,cm c=inactive,g=default,j=yes
v To deactivate monitoring for the myFlow message flow in the default integration
Linux
UNIX
Windows
server on Linux, UNIX, and Windows:
mqsichangeflowmonitoring myBroker -c inactive -e default -f myFlow
To deactivate monitoring for the myFlow message flow in the default integration
z/OS
server on z/OS:
F MI10BRK,cm c=inactive,g=default,f=myFlow
584
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
To enable and disable event sources, use the mqsichangeflowmonitoring command,
as shown in the following example.
585
mqsichangeflowmonitoring WBRK_BROKER
-e default
-f myMessageFlow
-s "SOAP Input1.terminal.out,MQOutput1.terminal.in"
-i enable
mqsichangeflowmonitoring WBRK_BROKER
-e default
-f myMessageFlow
-s "SOAP Input1.terminal.catch"
-i disabled
You can enable or disable multiple events at once; the change of state takes place
immediately.
If you configured events by using monitoring properties, the change persists if the
message flow is restarted, but is lost if the message flow is redeployed. To make
the change permanent, you must also update the monitoring properties.
Tip: When specifying values for the -s parameter, use the Event source address
property of the event, not the Event name property.
Tip: To find the list of configured event sources for a message flow, use the
mqsireportflowmonitoringcommand, as shown in the following example:
mqsireportflowmonitoring WBRK_BROKER
e default
f myMessageFlow
n
Tip: If you configured events by using monitoring properties, you can see a list of
the configured event sources in the Message Flow editor by completing the
following steps.
1. Open the message flow by using the Message Flow editor.
2. Click the canvas.
3. Select the Monitoring tab in the Properties view.
The monitoring events that you have defined previously are shown.
Procedure
1. Open the message flow in the editor.
2. Click the canvas.
3. Select the Monitoring tab in the Properties view. The monitoring events that
you have defined previously are shown.
4. Select Enabled for each event that you want to enable.
586
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
To disable a single event, clear the check box for that event. To disable all
events, click Uncheck All.
5. Save the message flow.
6. Rebuild and redeploy the BAR file.
Related concepts:
Monitoring basics on page 568
Message flows can be configured to emit events. The events can be read and used
by other applications for transaction monitoring, transaction auditing, and business
process monitoring.
Related tasks:
Business-level monitoring on page 565
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
Related reference:
mqsichangeflowmonitoring command
Use the mqsichangeflowmonitoring command to enable monitoring of message
flows.
mqsireportflowmonitoring command
Use the mqsireportflowmonitoring command to display the current options for
monitoring that have been set using the mqsichangeflowmonitoring command.
587
v The WebSphere Business Monitor toolkit does not support local elements with
anonymous types. The export monitoring information option therefore does not
generate an event part for event payload XPath queries that resolve to an
element of this type. You see a warning message in the report log
flowProjectName_batchgen_report.txt.
v The WebSphere Business Monitor toolkit does not support creating metrics of
type xs:anyType. If an XPath expression in your event payload resolves to an
element of type xs:anyType, the export monitoring information option creates an
event part of this type, but you cannot create a metric of this type in the
WebSphere Business Monitor toolkit. Create an event part with a supported
type; see Defining Event Parts in the WebSphere Business Monitor information
center.
v If you include unmodeled data, the export monitoring information option cannot
type the data. It assigns a type of string to the data.
v The option to export monitoring information does not support XPath queries
that contain wildcards.
Tip: To identify transaction.Start and transaction.End events separately that are
issued following message flow error handling, create an event source on the
Failure terminal of the Input node.
A sample is provided with IBM Integration Bus that shows how you can configure
WebSphere Business Monitor to receive events from IBM Integration Bus. The
sample demonstrates the following steps.
v Installing a message-driven bean (MDB) into WebSphere Business Monitor
v Importing monitoring information about a message flow
v Deploying a monitor model to WebSphere Business Monitor
v Creating a WebSphere Business Monitor dashboard
v Sending messages through a flow and viewing the events that are generated in
the WebSphere Business Monitor dashboard
For more information about the sample, including detailed instructions for these
steps, see WebSphere Business Monitor. (You can run samples only when you use
the information center that is integrated with the IBM Integration Toolkit.)
To monitor message flows from IBM Integration Bus, generate a monitor model in
the WebSphere Business Monitor development toolkit. Follow the instructions in
the appropriate topic.
Procedure
v Creating a monitor model for WebSphere Business Monitor V6.2 on page 589
v Creating a monitor model for WebSphere Business Monitor V7 or later on
page 591
Related tasks:
Message Sets: Generating XML Schemas
You can generate either a single XML Schema from a message definition file, or
multiple XML Schemas from a message set.
Business-level monitoring on page 565
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
Resolving problems when you monitor message flows on page 827
Follow the advice for dealing with common problems that can arise when you are
588
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. If an event contains complex data extracted from a message, supply details of
the structure of the data to WebSphere Business Monitor:
a. Ensure that the complex data is modeled as a complex type in a message
definition file within a message set in the IBM Integration Toolkit.
b. In the Application Development perspective, right-click the message set
folder and click Generate XML Schemas to create a .zip file of XML
schemas from the definitions in the message set.
c. Extract the file containing the XML schemas on the computer where you
will be using the Monitor Model Editor.
2. Export the WMBEvent.xsd file from an existing message set (or create a message
set, then export it from there):
a. In the Application Development perspective, right-click the message set and
click New > Message Definition File From > IBM Supplied Message.
b. In the window that is displayed, scroll down and click Message Broker
Monitoring Event.
c. Click Finish.
d. Right-click the message set again, and click Generate > XML Schemas.
e. In the window that is displayed, click Export to an external directory, then
enter or browse to a directory.
f. Click Finish. A compressed file containing the WMBEvent.xsd file is created in
the directory that you specified.
The WMBEvent.xsd file gives WebSphere Business Monitor details of the
structure of the IBM Integration Bus event.
What to do next
In WebSphere Business Monitor V6.2
This section outlines the steps you need to take in WebSphere Business Monitor.
See the documentation for WebSphere Business Monitor for full and up-to-date
details.
1. In the WebSphere Business Monitor development toolkit, create a Monitor
Model.
Import the WMBEvent.xsd schema and any schemas describing complex data
that were exported from IBM Integration Bus, then create a monitor model. You
589
see errors, because the model is currently empty. You also see a key, which you
can rename, for example to LocalTransactionID.
2. Create WebSphere Business Monitor inbound events.
A monitoring context definition is the term used by WebSphere Business Monitor
to describe all the data that should be collected about an entity (such as a
transaction or business process). Each runtime instance (referred to as a
monitoring context instance) collects information from inbound events and
stores this information in fields that represent the business measures that a
monitoring context collects: metrics, counters, and stopwatches.
You need to define an inbound event to describe each event source defined in
your message flow that contains information that you want to monitor. For
example, if your message flow has Transaction start, Transaction end and
Transaction rollback event sources, define an inbound event for each of these
event sources.
You typically define inbound events for these three event sources because they
contain information that tells WebSphere Business Monitor when the start and
end of the monitoring context instance occurs. You also define inbound events
to describe any event sources downstream in the flow that contain data that
you want to monitor, for example in the In terminal of the MQOutput
node.Creating inbound events typically involves the following actions:
a. Define event parts within the inbound event.
Event parts are XML Schema definition (XSD) types that provide
information about the structure of part of an event. For an IBM Integration
Bus event, define event parts to describe the different parts of the event that
you want to monitor data from. For a description of the event structure, see
The monitoring event.
As a minimum, define an event part for the event described by type
wmb:event. To monitor data about the source of the event (information
about the message flow name, broker name), also define an event part for
the eventPointData section described by type wmb:eventPointData. You
might also want to define event parts to describe message payload data
from the applicationData section of the event.
b. Define a correlation expression.
You typically correlate events on fields from the eventCorrelation section in
the IBM Integration Bus event. For example, you could correlate events
using the localTransactionId field from the IBM Integration Busevent.
You must also define whether the event should create a monitoring context;
create this for a Transaction start event.
c. Optional: Define a filter condition.
Set a filter condition. For example you might want to filter events for a
specific broker, integration server, or message flow.
d. Optional: Define the event sequence path.
Select a field in the inbound event that can be used to set the order in
which the inbound events are processed. For example, you could use
creationTime from the IBM Integration Bus event.
e. Complete the key.
The key uniquely identifies a monitoring context instance. You can select
any value for the key; for an IBM Integration Bus event, a typical value is
the localTransactionId field from the IBM Integration Bus event.
3. Define the metrics.
590
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Having defined inbound events you can now define your metrics. Metrics hold
data from the event in a monitoring context.
You might want to define metrics that hold event source data from the
eventPointData section of the IBM Integration Bus event, for example broker
name or message flow name. You can also define metrics that hold event
sequencing information, for example TimeStarted and TimeEnded metrics,
which hold the creationTime for Transaction start and Transaction end or
Transaction rollback events.
In addition, metrics can be defined to hold application data from the IBM
Integration Bus event.
Procedure
1. Export your message flow from IBM Integration Bus.
a. In the IBM Integration Toolkit, right-click the message flow or integration
project, and click Export. The Export wizard starts.
b. Click Business Monitoring > Application monitoring information, then
click Next.
c. Select the flows from which you want to export monitoring information,
and specify a file name.
d. Optional: Specify that an existing file should be overwritten without
warning.
e. Click Finish.
A .zip file is created that contains the following monitoring information
about the message flow:
v All monitoring information that is defined in the message flow files
v The WMBEvent.xsd file, which is the schema for the emitted event
v All .xsd files in the message sets that are referenced by the selected flows
591
592
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
When you have completed these steps, you can send messages through the
deployed message flow and view the events in the WebSphere Business Monitor
dashboard.
Related tasks:
Resolving problems when you monitor message flows on page 827
Follow the advice for dealing with common problems that can arise when you are
monitoring IBM Integration Bus flows.
Related reference:
XPath expressions that are not suitable for the export monitoring information
option
Some XPath expressions produce a warning on the Monitoring tab.
UNIX
Windows
UNIX
Windows
593
UNIX
Windows
Tip: When specifying values for the -s parameter, use the Event source address
property of the event, not the Event name property.
Procedure
Issue the following command on Linux, Unix, or Windows:
Linux
UNIX
Windows
594
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. (Message flows only.) Configure the monitoring event points in the message
flow. For information, see Deciding how to configure monitoring events for
message flows on page 573.
2. (Message flows only.) Deploy your message flow. For more information, see
Deploying resources
3. (Message flows only.) Configure IBM Integration Bus to record data. For more
information, see Recording data on page 601.
4. Configure IBM Integration Bus to view recorded data through the web user
interface or programmatically. For more information, see Viewing recorded
data on page 616.
5. Replay data to a WebSphere MQ queue, by using the web user interface, the
REST API, or the IBM Integration API. For more information, see Replaying
data on page 618.
6. If you want to view or replay recorded data through the web user interface,
you must create a web user account by using the mqsiwebuseradmin command.
See Managing web user accounts on page 226 and mqsiwebuseradmin
command.
7. If you want to control users' ability to record, view, and replay data, you must
enable broker administration security and also configure security for data
capture. For information, see Enabling security for record and replay on page
598.
8. If you want to use different brokers for deploying your message flows and for
recording data captured from those message flows to a database, you must
configure a publish/subscribe relationship between the brokers. For more
information, see Using multiple brokers for record and replay on page 620.
Related concepts:
Chapter 3. Performance, monitoring, and workload management
595
596
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
597
Procedure
To enable security for record and replay, complete the following steps.
1. To use a web administration server to view and replay data, you must create a
system user account on your operating system, such as ibmuser. This system
user account functions as a role, which you can associate with one or more web
user accounts. You do not need to create this system user account if you are not
enabling broker administration security. For more information about roles, see
Role-based security on page 220.
2. Enable administrative security by setting the -s parameter to active.
v To enable administrative security when you create the broker, run the
mqsicreatebroker, as shown in the following example:
mqsicreatebroker brokerName -q brokerQueueManagerName -s active
(If you run this command on Windows, you must also set the -i parameter.
For details, see mqsicreatebroker command.)
598
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v To enable administrative security for a broker that you have already created,
stop the broker, then run the mqsichangebroker, as shown in the following
example:
mqsichangebroker brokerName -s active
For more information, see Enabling administration security on page 222.
3. To allow users with an assigned role to run record and replay queries on the
integration server, ensure that the role (system user account) has inquire (inq)
administration authority on the queues SYSTEM.BROKER.AUTH and
SYSTEM.BROKER.AUTH.EG.
For more information, see Authorizing users for administration on page 228.
4. In addition to setting administrative security, you must also set security for
data capture. The queue SYSTEM.BROKER.DC.AUTH controls the record and
replay actions that users with a specified role (such as ibmuser) can complete
on the broker. Ensure that the role has the appropriate authorization to
complete the following actions on this queue:
Action
Authority required
READ (+INQ)
To replay data
EXECUTE (+SET)
What to do next
To disable security, set the -s parameter to inactive on the mqsichangebroker
command.
Next:
To view data that has been recorded, see Viewing recorded data on page 616.
Chapter 3. Performance, monitoring, and workload management
599
To replay data that has been recorded, see Replaying data on page 618.
Related concepts:
Administration security overview on page 214
Broker administration security controls the rights of users to complete
administrative tasks for a broker and its resources.
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Role-based security on page 220
You can control access to broker resources by associating web users with roles.
Authorization queues for broker administration security on page 218
If you have enabled broker administration security, the broker examines specific
queues to determine if a user has the authority to complete a particular task
against a broker or its resources.
IBM Integration Bus permissions and equivalent WebSphere MQ permissions on
page 217
If you have enabled broker administration security, you can give different
permissions to user IDs to allow them to complete various actions against a broker
or its resources.
Related tasks:
Authorizing users for administration on page 228
Grant authority to one or more groups or users to authorize them to complete
specific tasks against a broker and its resources.
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
Viewing recorded data on page 616
You can view a list of recorded messages, or details of individual messages.
Replaying data on page 618
When you have recorded data, you can replay it to a WebSphere MQ queue.
Managing web user accounts on page 226
You can control a web user's access to broker resources by associating the web user
ID with a role, which has security permissions assigned to it.
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsiwebuseradmin command
Use the mqsiwebuseradmin command to administer user accounts for the web user
interface.
Tasks and authorizations for administration security
If you have enabled broker administration security, users require specific authority
so that they can complete administration tasks.
600
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Recording data
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
v Create and configure a database.
v Configure security settings.
v Create appropriate configurable services.
v Configure monitoring for the message flow.
601
What to record
4. Configure
Monitoring Profiles
Where to record it
3. Configure
Pub-Sub Topic
Message Flows
2. Configure Data
Capture Store
1. Configure
Database & ODBC
Execution Group
Data Capture Source
Configurable
Service
Configurable
Service
Event driven
emits
Publications...
Subscriptions...
MQ Pub-Sub
Procedure
To configure IBM Integration Bus to record data, complete the following steps.
1. Create and configure your database, and define an ODBC definition for the
data source name (DSN). Specify an ID and password for your broker to use
when connecting to the database. See Creating and configuring a database for
recording data on page 606.
2. Configure your data capture store.
To define how and where data is stored, create a DataCaptureStore configurable
service. This configurable service specifies the broker runtime properties for
data processing and for connecting to the database.
Your record and replay topology can include more than one broker. If you
deploy the message flows for which you want to capture data to one broker,
and use a different broker to record the data, you must connect the two
brokers. For more information about how you can configure your broker
topology, see Using multiple brokers for record and replay on page 620.
You can use the provided DefaultCaptureStore configurable service or create
your own configurable service of type DataCaptureStore. You can use the IBM
Integration Explorer to create the configurable service; for more information,
see Using the IBM Integration Explorer to work with configurable services.
602
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v brokerName is the name of your broker. You configured this broker to connect
to the database when you completed the steps in the topic Creating and
configuring a database for recording data on page 606.
v dataCaptureStoreName is the name of your configurable service object.
v dataSource is the name of your data source.
v integrationServer is the name of the integration server that processes data for
recording.
3. Specify a publish/subscribe topic that identifies the source of the data that you
want to capture.
To identify the source of the data, create a DataCaptureSource configurable
service. You use this configurable service to specify the monitoring topic that
identifies the messages flows from which your data comes, and the data
capture store to use for storing this data. Multiple instances of the
DataCaptureSource configurable service can use the same DataCaptureStore
configurable service.
You can use the IBM Integration Explorer or the
mqsicreateconfigurableservice command to create the configurable service. If
you use the DataCaptureSourceTemplate in IBM Integration Explorer, you must
create a new configurable service based on the template. If you edit the
template without creating a new configurable service, an error is issued at run
time. For information about the properties of this configurable service, see
DataCaptureSource configurable service. For example, on UNIX systems, enter
the following command on a command line:
mqsicreateconfigurableservice brokerName -c DataCaptureSource -o dataCaptureSourceName
-n dataCaptureStore,topic
-v dataCaptureStoreName,$SYS/Broker/myBroker/Monitoring/integrationServerName/msgFlowName
603
Test that your subscription to the topic specified in the topic property was
successful by retrieving the subscriptions on the queue manager for brokerName.
Use IBM Integration Explorer or the runmqsc command.
To check the subscriptions by using the IBM Integration Explorer, complete the
following steps:
a. Expand the queue manager under the Queue Managers folder
b. To open the Subscriptions pane, click Subscriptions.
c. Click Refresh and check that a subscription with a topic string of
$SYS/Broker/myBroker/Monitoring/integrationServerName/msgFlowName
exists
To check the subscription by using runmqsc, complete the following steps:
a. At a command prompt, type runmqsc qmName, where qmName is your queue
manager name.
b. To display all the queue manager subscriptions, type dis sub(*)
c. Check that the topic name is returned in the list of subscription topics, for
example SUB(myBroker:myTopic)
d. To exit the runmqsc environment, type end
4. To generate the data that you want to record, configure monitoring on your
message flows. See Configuring monitoring for data capture on page 613.
What to do next
Next:
v You can enable security for recording data by following the instructions in
Enabling security for record and replay on page 598.
v After you have recorded data, you can view it. For more information, see
Viewing recorded data on page 616.
v You might want to turn off recording for a particular integration server
temporarily (for performance reasons, for example). For more information, see
Disabling and enabling data capture on page 605.
v For more information about tuning data capture, see Tuning data capture on
page 615.
v If the broker that you specified in your DataCaptureStore is different to the
broker that you specified in your DataCaptureSource, you must configure a
publish/subscribe relationship between the brokers. For more information, see
Using multiple brokers for record and replay on page 620.
Related concepts:
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Related tasks:
Viewing recorded data on page 616
You can view a list of recorded messages, or details of individual messages.
Replaying data on page 618
When you have recorded data, you can replay it to a WebSphere MQ queue.
Recording and replaying data with a CMP application on page 107
You can create CMP applications to examine and replay the data that you have
recorded and stored by using record and replay.
Related reference:
604
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
You can use the IBM Integration Explorer or IBM Integration Bus runtime
commands to disable recording for your integration server. Complete the following
steps.
Review and edit the current setting on the ComIbmDataCaptureManager resource
manager.
v If you are using the IBM Integration Explorer, complete the following steps:
1. In the MQ Explorer - Navigator view, navigate to IBM WebSphere MQ >
Brokers > brokerName, where brokerName is the name of your broker.
Right-click your integration server name, and select Properties.
2. Select the DataCapture tab.
3. Review and set the DataCapture Enabled property by selecting either true
or false from the menu.
4. Click Apply to review your changes and click OK to close the Properties
window.
Your change takes effect immediately.
v If you are using the runtime commands, complete the following steps:
1. Enter the following command on an IBM Integration Bus command line,
where brokerName is the name of your broker and integrationServer is the
name of the integration server:
mqsireportproperties brokerName
-e integrationServer -o ComIbmDataCaptureManager -a
The command produces a response similar to this example:
ComIbmDataCaptureManager
uuid=ComIbmDataCaptureManager
userTraceLevel=none
605
traceLevel=none
userTraceFilter=none
traceFilter=none
enabled=true
2. Change the enabled property to false, by entering the following command:
mqsichangeproperties brokerName
-e integrationServer -o ComIbmDataCaptureManager -n enabled -v false
Your change takes effect immediately.
What to do next
Next:
When you are ready to start recording again for your integration server, use the
mqsichangeproperties command to change the enabled property to true, and
restart the broker.
Related concepts:
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Related tasks:
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Related reference:
mqsireportproperties command
Use the mqsireportproperties command to display properties that relate to a
broker, an integration server, or a configurable service.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
606
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
data source name (DSN) for the database. You use the mqsisetdbparms command to
set a user identifier and password for the broker to use when connecting to the
database.
You can record data to DB2, Microsoft SQL Server, and Oracle databases. For
information about how to create and configure your database, see the following
topics:
v Creating and configuring a DB2 database for recording data
v Creating and configuring an Oracle database for recording data on page 609
v Creating and configuring a Microsoft SQL Server database for recording data
on page 611
What to do next
Next:
Continue to follow the steps for recording data; see Recording data on page 601.
Related concepts:
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Related tasks:
Configuring databases
Configure databases to hold application or business data that you can access from
your message flows.
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
Creating and configuring a DB2 database for recording data:
To record data to a DB2 database, create the database and configure an ODBC
definition to it. Configure your broker so that it can connect to the database.
Before you begin
Before you start:
Read the following topics:
v Record and replay on page 597
v Recording, viewing, and replaying data on page 595
v Creating and configuring a database for recording data on page 606
About this task
Procedure
1. Use the script that is provided with IBM Integration Bus to create and
configure a DB2 database to store your recorded data.
a. Locate the script for your operating system:
v Windows: install_dir\ddl\db2\DataCaptureSchema.sql
v UNIX: install_dir/ddl/db2/DataCaptureSchema.sql
Chapter 3. Performance, monitoring, and workload management
607
v z/OS : the JCL script is in the data set and member SBIPPROC(BIPRRDB)
install_dir is the location of your IBM Integration Bus installation.
b. Optional: To specify your own database or schema, customize the provided
DataCaptureSchema script, and save your changes.
If you modify the SQL to specify a particular schema, you must also set the
same schema name in the DataCaptureStore configurable service.
You might also want to edit the script for the following reasons:
v If you ran the script, and want to run it again, you must drop the
database MBRECORD first. Insert the command drop database MBRECORD
before the line that reads create database MBRECORD.
v The maximum message body size that you can record (after encoding has
taken place) is 5 MB. The default size is 5 MB, but you can increase this
size by editing the script to make the value in the
WMB_BINARY_DATA.DATA column larger.
c. At a command line, navigate to the script location and run it.
On Windows, use a DB2 Command Window to ensure that the command
environment is set up correctly. Click Start > IBM DB2 > databaseInstance
> Command Line Tools, and select Command Window, where
databaseInstance is the DB2 installation name.
On UNIX, a script called db2profile is provided for setting up the
environment; for more information, see Command environment: Linux and
UNIX systems.
When the command environment is set up, you can run the script.
For example, on Windows or UNIX, enter the following command:
db2 -tvf DataCaptureSchema.sql
2. Create an ODBC definition for the database.
If you used the supplied script to create your database without modifications,
create an ODBC definition for the database called MBRECORD, with
MBRECORD as the data source name (DSN). For more information, see
Enabling ODBC connections to the databases.
3. Use the mqsisetdbparms command to set a user identifier and password for the
broker to use when connecting to the database; for example:
mqsisetdbparms brokerName -n dataSourceName -u userID -p password
v brokerName is the name of your broker.
v dataSourceName identifies the database to which you want to record data.
v userID and password specify the user identifier and the password that the
broker uses to connect to the database.
4. To ensure that the changes to the mqsisetdbparms command take effect, restart
the broker. For more information, see Starting and stopping a broker on page
19.
5. Test the connection to your database by using the mqsicvp command. For more
information, see mqsicvp command.
What to do next
Next:
Continue to follow the steps for recording data; for more information, see
Recording data on page 601.
Related tasks:
608
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Configuring databases
Configure databases to hold application or business data that you can access from
your message flows.
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
Creating and configuring a database for recording data on page 606
To record data, create a database and configure an ODBC definition to it.
Configure your broker so that it can connect to the database.
Creating and configuring an Oracle database for recording data
To record data to an Oracle database, create the database tables and configure an
ODBC definition. Configure your broker so that it can connect to the database.
Command environment: Linux and UNIX systems
Set up the Linux or UNIX environment to run IBM Integration Bus commands.
Starting and stopping a broker on page 19
Run the appropriate command to start or stop a broker.
Enabling ODBC connections to the databases
Set up the resources and environment that the broker requires for Open Database
Connectivity (ODBC) connections to databases on distributed systems.
Related reference:
mqsicvp command
Use the mqsicvp command to perform verification tests on a broker, or to verify
ODBC connections.
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
Creating and configuring an Oracle database for recording data:
To record data to an Oracle database, create the database tables and configure an
ODBC definition. Configure your broker so that it can connect to the database.
Before you begin
Before you start:
Read the following topics:
v Record and replay on page 597
v Recording, viewing, and replaying data on page 595
v Creating and configuring a database for recording data on page 606
609
610
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Creating and configuring a Microsoft SQL Server database for recording data:
|
|
|
To record data to a Microsoft SQL Server database, create the database, and
configure an ODBC definition to it. Configure your broker so that it can connect to
the database.
|
|
|
|
Procedure
1. Use the script that is provided with IBM Integration Bus to create and
configure an SQL Server database to store your recorded data.
a. Locate the script at install_dir\ddl\sqlServer\DataCaptureSchema.sql,
where install_dir is the location of your IBM Integration Bus installation.
|
|
|
|
|
|
|
|
|
|
|
|
|
611
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MBRECORD as the data source name (DSN). For more information, see
Enabling ODBC connections to the databases.
3. Use the mqsisetdbparms command to set a user identifier and password for the
broker to use when it connects to the database. For example:
mqsisetdbparms brokerName -n dataSourceName -u userID -p password
v brokerName is the name of your broker.
v dataSourceName identifies the database to which you want to record data.
v userID and password specify the user identifier and the password that the
broker uses to connect to the database.
4. To ensure that the changes to the mqsisetdbparms command take effect, restart
the broker. For more information, see Starting and stopping a broker on page
19.
5. Test the connection to your database by using the mqsicvp command. For more
information, see mqsicvp command.
What to do next
Next:
|
|
Follow the steps for recording data (see Recording data on page 601).
Related tasks:
|
|
|
|
|
|
|
|
|
|
|
|
Configuring databases
Configure databases to hold application or business data that you can access from
your message flows.
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
Creating and configuring a database for recording data on page 606
To record data, create a database and configure an ODBC definition to it.
Configure your broker so that it can connect to the database.
Creating and configuring an Oracle database for recording data on page 609
To record data to an Oracle database, create the database tables and configure an
ODBC definition. Configure your broker so that it can connect to the database.
|
|
|
|
|
|
|
|
|
|
|
mqsicvp command
Use the mqsicvp command to perform verification tests on a broker, or to verify
ODBC connections.
|
|
|
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
612
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
613
When you configure a monitoring event, you can choose to include all of the
message bitstream data, the headers only, or the message body only. When a
broker replays a message, it needs to include a WebSphere MQ message header.
It handles this requirement in one of the following ways:
If the captured data includes a WebSphere MQ header, the broker uses the
existing WebSphere MQ message header.
If the captured data does not include a WebSphere MQ header, the broker
generates a WebSphere MQ header. All other headers are appended to the
message payload.
Procedure
To configure monitoring on a message flow to emit events for capture, use one of
the following methods.
v Configure and enable event sources, and activate monitoring for the message
flow, by completing the steps in Business-level monitoring on page 565.
You do not need to subscribe to the monitoring topic; the broker manages the
subscription to the topic specified in the DataCaptureSource configurable service.
v Configure monitoring event sources by using the sample monitoring profile that
is provided at install_dir/sample/RecordReplay/basicMonitoringProfile.xml.
The sample monitoring profile works for a single input node. You must update
the profile to replace NODENAME with the name of your input node. To enable
this monitoring profile, run the mqsicreateconfigurableservice,
mqsichangeproperties, and mqsichangeflowmonitoring commands against the
broker to which you deployed the flow. For details about running these
commands, see Configuring monitoring event sources using a monitoring
profile on page 580.
The subscription to the monitoring events is durable, which results in messages
being put to the queue specified in the queueName property of the DataCaptureStore
configurable service. Messages can be put to this queue even when the broker is
not running. For more information about how you can monitor the queue depth
and tune data capture, see Tuning data capture on page 615.
What to do next
Next:
Review the steps that you completed for recording data; see Recording data on
page 601. Now you are ready to view the data that you recorded; see Viewing
recorded data on page 616.
Related tasks:
Business-level monitoring on page 565
You can configure your message flow to emit event messages that can be used to
support transaction monitoring and auditing, and business process monitoring.
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
Application Server. View and replay the data.
Viewing recorded data on page 616
You can view a list of recorded messages, or details of individual messages.
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
614
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
615
616
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
To configure IBM Integration Bus to view recorded data, complete the following
steps.
1. Specify the integration server that is to be used for processing data for viewing,
by setting a value for the egForView property of your DataCaptureStore
configurable service.
If you are using the configurable services that you used for recording data, use
the mqsichangeproperties command to modify the egForView property, as
shown in the following example:
mqsichangeproperties brokerName -c DataCaptureStore -o dataCaptureStoreName
-n egForView -v integrationServerName
v brokerName is the name of your broker.
v dataCaptureStoreName is the name of your DataCaptureStore configurable
object.
v integrationServerName is the name of the integration server that processes the
data for viewing.
If you do not want to use the DataCaptureStore and DataCaptureSource
configurable services that you set up for recording data, create new ones as
described in Recording data on page 601. Specify a value for the egForView
property. You can specify the same integration server in the egForRecord and
the egForView properties, or you might want to spread the workload across two
integration servers.
For more information about the egForRecord and egForView properties, see
DataCaptureStore configurable service.
2. Use one of the following methods to view your data.
v Use the IBM Integration API. For more information, see Recording and
replaying data with a CMP application on page 107.
v View recorded data and administer your brokers from a web interface:
a. Configure a web administration server, as described in Configuring the
web user interface server on page 128.
b. Log on to the web user interface (see Accessing the web user interface
on page 133).
c. When you have logged on to the web user interface, the Navigator view
is displayed on the left side. In the Navigator view, select the Data node.
The data viewer is displayed on the right side of the window.
d. Select the data capture store containing the data that you want to view.
617
Replaying data
When you have recorded data, you can replay it to a WebSphere MQ queue.
618
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Create the configurable service by using the IBM Integration Explorer or the
mqsicreateconfigurableservice command. You can set one destination for each
instance of the DataDestination configurable service. This configurable service
is dynamic, therefore you do not need to restart the broker for changes to take
effect.
For a description of the properties that you set on this configurable service, see
DataDestination configurable service.
2. For an example of how to replay data with the IBM Integration API, see
Recording and replaying data with a CMP application on page 107.
619
Results
Results:
The selected data is sent to the specified destination. Messages that are not
delivered are highlighted.
Related concepts:
Record and replay on page 597
For audit or problem determination purposes, you can record data to a database,
then view it, and replay it.
Using the IBM Integration Explorer to work with configurable services
Configurable services are used to define properties that are related to external
services on which the integration node (broker) relies. Use the IBM Integration
Explorer to view, add, modify and delete configurable services.
Related tasks:
Recording data on page 601
Record data that is flowing through a message flow, or that is emitted by
WebSphere Application Server.
Viewing recorded data on page 616
You can view a list of recorded messages, or details of individual messages.
Creating a message flow
Create a message flow to specify how to process messages in the broker. You can
create one or more message flows and deploy them to one or more brokers.
Related reference:
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
DataDestination configurable service
Select the objects and properties that you want to change for the DataDestination
configurable service.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
620
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Establish a point-to-point channel connection between MONQM and RECQM.
a. On a command line on the server that hosts MONQM, enter runmqsc MONQM
b. Define a transmission queue for MONQM to use when forwarding
messages to RECQM:
DEFINE QLOCAL(RECQM) USAGE(XMITQ) TRIGGER TRIGDATA(MONQM.TO.RECQM) INITQ(SYSTEM.CHANNEL.INITQ)
621
MONQM.SERVER is the name of the server that hosts MONQM, and PORT
is the port number on which the listener listens.
You can also configure the queue manager channels by using IBM Integration
Explorer. For more information about configuring channels for
publish/subscribe, see the topics on Publish/subscribe topologies in the
WebSphere MQ Version 7.1 Information Center online .
2. Configure the queue manager publish/subscribe hierarchy. Make RECQM a
child of MONQM by completing the following steps:
a. Open a command line on the server that hosts RECQM, and enter: runmqsc
RECQM
b. Make RECQM a child of MONQM:
ALTER QMGR PARENT(RECQM)
Confirm that the operation worked by listing all publish/subscribe
relationships for this queue manager:
DIS PUBSUB TYPE(ALL)
The output shows that MONQM is now the parent of RECQM:
AMQ8723: Display pub/sub status details.
QMNAME(RECQM)
TYPE(LOCAL)
AMQ8723: Display pub/sub status details.
QMNAME(MONQM)
TYPE(PARENT)
c. Type END to end the RUNMQSC session for RECQM.
d. Start a RUNMQSC session for MONQM and display the publish/subscribe
types, as you did for RECQM. The output shows that RECQM is a child of
MONQM.
What to do next
Next:
622
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Consider the performance implications of your record and replay topology; see
Tuning data capture on page 615.
Complete the steps for recording data; see Recording data on page 601.
Related tasks:
Recording, viewing, and replaying data on page 595
Record data that is processed by a message flow, or emitted from WebSphere
Application Server. View and replay the data.
Related reference:
Designing the WebSphere MQ infrastructure
You must create and manage the WebSphere MQ resources that are required to
support your brokers, and the applications that connect to them to supply or
receive messages.
623
624
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Configurable services
Configurable services are typically runtime properties. You can use them to define
properties that are related to external services on which the broker relies; for
example, an SMTP server or a JMS provider.
Related tasks:
Using Activity logs on page 623
Use Activity logs to get an overview of recent activities in your message flows and
associated external resources.
Navigating brokers and broker resources in a CMP application on page 80
Explore the status and attributes of the broker that your CMP application is
connected to, and discover information about its resources.
Related reference:
IBM Integration API
Use the IBM Integration API (CMP) Java classes and methods to develop CMP
applications.
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
625
Procedure
To open the Activity Log view for a message flow or resource type, complete the
following steps:
1. In the WebSphere MQ Explorer - Navigator view, expand the Integration
Nodes folder and then the folder for the integration server that you want to
work with.
2. Choose one of the following options to view an Activity log for either a
message flow or resource type:
v To open the Activity log for a message flow, right-click the message flow and
select Open Activity Log.
v To open the Activity log for a resource type:
a. Expand the Resource Managers folder.
626
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
What to do next
To find out more about what you can do with Activity log content, see Working
with Activity log content on page 629.
Related concepts:
Activity log overview on page 624
Activity logs help users to understand what their message flows are doing by
providing a high-level overview of how IBM Integration Bus interacts with
external resources. They do not require detailed product knowledge, and can be
used to enhance understanding of the overall system.
Related tasks:
Working with Activity logs in IBM Integration Explorer on page 625
You can view and work with Activity log information by using the IBM Integration
Explorer.
Procedure
1. Right-click in the Activity Log view and select Save Activity Log.
2. Navigate to a directory into which to save the log information and enter a file
name. The file is saved as a comma-delimited .csv file.
3. Click Save.
Results
Each message displayed in the Activity Log view is written to a comma-delimited
.csv file. Only displayed activities and fields are written; hidden fields or activities
that were removed from the view by using a filter search string are not saved. For
more information about how you can organize the data in the Activity Log view,
see Working with Activity log content on page 629.
You can open the saved log in a text editor or in a spreadsheet application such as
Microsoft Excel.
Related concepts:
Activity log overview on page 624
Activity logs help users to understand what their message flows are doing by
providing a high-level overview of how IBM Integration Bus interacts with
external resources. They do not require detailed product knowledge, and can be
Chapter 3. Performance, monitoring, and workload management
627
Results
The data is written in comma -delimited format. It can be imported into a
spreadsheet application such as Microsoft Excel.
Related concepts:
Activity log overview on page 624
Activity logs help users to understand what their message flows are doing by
providing a high-level overview of how IBM Integration Bus interacts with
external resources. They do not require detailed product knowledge, and can be
used to enhance understanding of the overall system.
Related tasks:
Viewing Activity logs for message flows and resource types on page 626
You can view Activity log information for a resource type or a message flow by
using the IBM Integration Explorer.
Saving Activity log information on page 627
Save the Activity log information that is written to the Activity Log view in the
IBM Integration Explorer.
Working with Activity log content on page 629
Manipulate the information that is displayed in the Activity Log view in the IBM
Integration Explorer. Display the information that you are interested in, by using
the refresh, search, sort, and filter features available in this view.
628
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
Use the toolbar in the Activity Log view to customize the information that is
displayed.
v To replace the current log entries with the most recent activities, click the
Refresh icon. Display options that were in force at the time of the refresh are
maintained. For example, if a filter was applied before the refresh using the
Apply filter button, this filter will still be active after the refresh operation
completes.
v Search the log entries for a specified string.
1. Optional: Select an individual column from the Filter menu. The default
behavior if a column is not selected is to search on All Columns.
2. Enter a string into the text box next to the Filter menu. The search is
case-sensitive. You can also substitute the wildcard "." for any single
character and the wildcard "*" for any sequence of zero or more characters.
3. Click Apply filter or press Enter. The filter applies only to the specified
subset of visible Activity log entries and columns. Activities that match the
search string in one or more of the selected and displayed fields are shown.
Activities that do not contain a matching string disappear from view.
v Click Clear to clear the search and filter criteria. This button is activated only if
a search string has been entered. The Activity log entries which had previously
been removed by filtering are restored.
v To view the log entries for a single thread, perform one of the following actions:
Select a thread identifier from the thread menu on the toolbar.
Right-click any row in the log with that thread identifier in its ThreadID field
and select Focus on this thread. If a thread has already been selected using
the thread menu on the toolbar, right-clicking a row no longer provides the
menu option Focus on this thread. Instead, you get the menu option Show
all threads.
The default behavior is to display All Threads.
v Add columns to, or remove columns from, the view:
1. Click Select columns to display the Activity Log Columns window. This
window lists all of the available Activity log fields. Fields that are currently
displayed are selected.
2. Select or clear the check boxes to determine which columns are displayed in
the view.
Chapter 3. Performance, monitoring, and workload management
629
When you open a view for the first time, only the Severity Level, Message Number,
Timestamp, Resource Type (RM), Message Flow (MSGFLOW), and Message Summary
columns are displayed by default. If you change the displayed columns, your
preferences will be preserved next time you open an Activity Log view.
If you filter on an Activity log, your search string is only matched against the
data in columns that have been selected for display.
v For more detailed message information, double-click any row in the Activity log
pane.
v To order on a column, click the column title bar. The data under the column is
sorted into ascending order. If you click a second time, the original order is
restored. You can order on these columns: Thread ID, Timestamp, and all Tag
fields. For more information about Tags, see Activity logs.
v Click Previous or Next to display more log entries. These buttons are disabled if
there are no further log entries to display.
Related tasks:
Saving Activity log information on page 627
Save the Activity log information that is written to the Activity Log view in the
IBM Integration Explorer.
Copying Activity log information on page 628
Copy a selection from the Activity log information that is written to the Activity
Log view in the IBM Integration Explorer.
Related reference:
Activity logs
Activity logs contain information about message flows and how they interact with
external resources. They can be generated for a message flow or a resource type.
Learn about the structure and content of Activity logs, and about the tags that
enrich the log data and can be used to filter its content.
630
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
memory are lost. When diagnosing a problem, save the current activity log
before redeploying or restarting your integration server.
v minSeverityLevel
This property takes an integer value that is used to specify the severity of
messages written to the Activity log.
Only messages with a severity level higher than or equal to the specified value
for this property are logged. The initial value of the property is INFO, which
means that messages of all severities are written to the log.
Valid values are INFO, WARN, and ERROR, where ERROR is the highest severity level
and INFO the lowest.
Specify a value of WARN to log messages of severity levels WARN and ERROR.
To display the current configuration properties and then modify them, complete
these steps:
Procedure
1. Ensure that the broker is running. If it is not, use the mqsistart command to
start it.
2. Display the current Activity log configuration properties. Enter the following
command:
mqsireportproperties myBroker -e myIntegrationServer -o
ComIbmActivityLogManager -a
where:
v myBroker is the name of your broker
v myIntegrationServer identifies the integration server by name
v ComIbmActivityLogManager is the name of the Activity log resource manager
The -a option indicates that all top-level property values are displayed. An
example of the output produced follows:
ComIbmActivityLogManager
uuid=ComIbmActivityLogManager
userTraceLevel=none
traceLevel=none
userTraceFilter=none
traceFilter=none
activityLogEnabled=true
defaultLogSizePerThread=1000
minSeverityLevel=INFO
The response confirms that activity logging is enabled. There are 1,000 log
entries held in memory for each active thread in an integration server. The
minSeverityLevel value of INFO means that Activity log messages of all
severities are displayed in the log.
3. Change the Activity log configuration parameters. Enter this command:
mqsichangeproperties myBroker -e myIntegrationServer -o
ComIbmActivityLogManager -n PropertyNames -v PropertyValues
where:
v myBroker is the name of your broker
v myIntegrationServer identifies the integration server by name
v ComIbmActivityLogManager is the Activity log resource manager
v PropertyNames is a comma-delimited list of the properties to add or change;
for example, defaultLogSizePerThread,minSeverityLevel
631
Procedure
To define and customize the configurable service, perform the following steps:
632
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Workload management
Allows system administrators to monitor and adjust the speed that messages are
processed, as well as controlling the actions taken on unresponsive flows and
threads.
The following topics explain the various options available under workload
management:
Message flow notification
A common requirement is to be able to monitor the speed at which IBM
Integration Bus processes messages. Workload management allows the
system administrator to express a notification threshold for individual
message flows deployed. An out of range notification message is produced
if the notification threshold is exceeded. A back in range notification
message is produced if the notification threshold later drops back into
633
634
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
635
properties file.
Broker properties that are accessible from ESQL, the Mapping node, and Java
You can access broker, message flow, and node properties from ESQL, the Mapping
node, and Java.
Related tasks:
Message publication when the message rate for a message flow goes back into
range
Lists the conditions that control the publishing of the message rate is back in range
message.
636
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
message rate previously exceeded the notification threshold, and then later the
total message rate drops back into range, the back in range XML message is
published.
No state is stored when the message flow is stopped, restarted, or redeployed.
When a flow is terminated, the flow termination process checks to see whether the
last message published was to report that the message rate exceeded the
notification threshold. In this situation, the flow termination process automatically
publishes a message to report that the message flow is now back in range.
If you enable the notification threshold you can subscribe to the following topic:
$SYS/Broker/<brokerName>/WorkloadManagement/BelowThreshold/<integrationServerLabel>
/<applicationName>/<libraryName>/<messageFlowLabel>
637
638
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
639
Integration Bus Version 9.0 new functions are introduced to allow termination of
unresponsive message flows in a controlled manner.
The following topics explain the functions available:
Programmatically check from within a message flow if it has been requested to
stop
By using the programming APIs (ESQL, Java, and .NET), you are able to
see if a message flow has been requested to stop. For more information,
see Check if a message flow has been requested to stop.
Manually force a message flow to stop
A force option f has been added to the mqsistopmsgflow command to
allow you to specify how the message flow can be forced to stop. For more
information, see Manually force a message flow to stop on page 641.
Automatically force a message flow to stop
Two message flow properties are provided which can be set within the
BAR file and the workload management policy:
v processingTimeoutSec maximum time a message flow can process a
message before taking an action.
v processingTimeoutAction the action to take. Currently, this is restricted to
none or restartExecutionGroup.
Additionally, an event message is published on a WebSphere MQ topic
once the processingTimeoutSec is exceeded and again when the message
flow processing has finished.
For more information, see Automatically force a message flow to stop on
page 642.
640
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
.NET
Static Boolean NbMessageFlow.InstanceStopping();
Returns true if a request has been made to stop the message flow.
For more information, see NbMessageFlow Class under .NET reference.
Related reference:
INSTANCESTOPPING function
The INSTANCESTOPPING checks to see if a request has been made to stop a
message flow, and returns a Boolean value of true if a request has been made.
.NET reference
You can call .NET assemblies from .NETCompute nodes, and from nodes that
support ESQL.
Related information:
Java user-defined extensions API
641
The same force option is available in the IBM Integration API and REST API, and
within the web user interface.
Related tasks:
Developing applications that use the IBM Integration API on page 58
Develop Java applications that use the IBM Integration API (also known as the
CMP) to communicate with, deploy to, and manage brokers and their associated
resources.
Representational State Transfer (REST) API
IBM Integration Bus supports the REST management API, and you can use HTTP
clients to administer broker resources.
Administering brokers using the web user interface on page 127
You can use the IBM Integration Bus web user interface to administer broker
resources.
Related reference:
mqsistopmsgflow command
Use the mqsistopmsgflow command to stop integration servers, applications, and
message flows.
642
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
to none and processing of the message flow continues to completion, another event
message is published. For more information, see Message flow processing finished
event message on page 644. However, if the processingTimeoutAction option has
been set to restartExecutionGroup the integration server is restarted and no further
event messages are published from the message flow.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related reference:
IBM Integration Toolkit
The IBM Integration Toolkit provides your application development environment
on Windows and Linux on x86.
mqsiapplybaroverride command
Use the mqsiapplybaroverride command to replace configurable values in the
broker archive (BAR) deployment descriptor with new values that you specify in a
properties file.
Message flow timeout exceeded event message:
Details the event message that is published when the processingTimeoutSec timeout
period is exceeded.
About this task
Once the processingTimeoutSec timeout period is exceeded for the message flow, a
timeout exceeded XML message is published.
You can view the message by subscribing to the following topic:
$SYS/Broker/<brokerName>/WorkloadManagement/ProcessingTimeout/<integrationServerLabel>
/<applicationName>/<libraryName>/<messageFlowLabel>
Related tasks:
Message flow processing finished event message on page 644
Details the event message that is published if a timeout action of none is specified
and when the message flow processing finishes.
643
Related tasks:
Message flow timeout exceeded event message on page 643
Details the event message that is published when the processingTimeoutSec timeout
period is exceeded.
644
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
645
646
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Making initial checks on page 650
v Dealing with problems on page 666
v Using logs on page 839
v Using trace on page 845
v Using dumps and abend files on page 871
v Recovering after failure on page 887
v Contacting your IBM Support Center on page 876
What to do next
You can also read the general troubleshooting guidance in the following topics:
v Troubleshooting overview
v
v
v
v
If an IBM Integration Bus component or command has returned an error, and you
want further information about a message written to the screen or the log, you can
browse for details of the message in Diagnostic messages on page 891; the lists
of messages grouped in numeric order.
For information that is specific to debugging message flows, see Testing and
debugging message flows.
Related reference:
Troubleshooting
Use the reference information in this section to help you diagnose errors in IBM
Integration Bus.
Troubleshooting overview
Troubleshooting is the process of finding and eliminating the cause of a problem.
Whenever you have a problem with your IBM software, the troubleshooting
process begins as soon as you ask yourself "what happened?"
A basic troubleshooting strategy at a high level involves:
Copyright IBM Corp. 1999, 2014
647
648
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Has anyone else experienced this problem? See: Searching knowledge bases on
page 882.
v Is there a fix you can download? See: Getting product fixes on page 883.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Dealing with problems on page 666
Learn how to resolve some of the typical problems that can occur.
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Using Activity logs on page 623
Use Activity logs to get an overview of recent activities in your message flows and
associated external resources.
Using dumps and abend files on page 871
A dump or an abend file might be produced when a problem occurs. Dumps and
abend files can be used by IBM to resolve the problem.
Searching knowledge bases on page 882
If you have a problem with your IBM software, you want it resolved quickly. Begin
by searching the available knowledge bases to determine whether the resolution to
your problem is already documented.
Getting product fixes on page 883
A product fix might be available to resolve your problem. You can determine what
fixes are available from the IBM support site.
Contacting IBM Software Support on page 885
IBM Software Support provides assistance with product defects.
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
Related reference:
mqsiexplain command
Use the mqsiexplain command to display the contents of an IBM Integration Bus
BIP message.
Troubleshooting
Use the reference information in this section to help you diagnose errors in IBM
Integration Bus.
649
Procedure
v Has IBM Integration Bus run successfully before?
v Did you log off Windows while IBM Integration Bus components were active?
on page 651
v Are the Linux and UNIX environment variables set correctly? on page 652
v Are there any error messages or return codes that explain the problem? on
page 653
v Can you reproduce the problem? on page 654
v Has the message flow run successfully before? on page 656
v Have you made any changes since the last successful run? on page 657
v Is there a problem with descriptive text for a command? on page 658
v Is there a problem with a database? on page 659
v Is there a problem with the network? on page 660
v Does the problem affect all users? on page 661
v Have you recently changed a password? on page 661
v Have you applied any service updates? on page 662
v Do you have a component that is running slowly? on page 663
v Additional checks for z/OS users on page 664
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Related reference:
Troubleshooting
Use the reference information in this section to help you diagnose errors in IBM
Integration Bus.
650
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Check your setup
IBM Integration Bus might not be set up correctly.
Linux
UNIX
On Linux and UNIX operating systems, check that you
have set up the command environment correctly; see Setting up a command
environment for more information.
651
You might see messages, including BIP2070, BIP2642, BIP1102, and BIP1103, in the
Windows Event log.
When you log off, any queue manager that supports the IBM Integration Bus
component is stopped unless it is defined to run as a Windows service. The
component runs Windows services and remains active, but it finds that the queue
manager and queue manager objects that are associated with it are no longer
available.
Procedure
To avoid this problem, set the queue manager that is used by the broker to run as
a Windows service, so that logging off Windows from does not cause this problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Windows: Viewing the local error log on page 840
The Windows Event Viewer is where IBM Integration Bus writes records to the
local system. Use Windows system facilities to view this log.
install_dir/bin
What to do next
See Setting up a command environment for information about setting up the
command environment; see Creating a broker on Linux and UNIX systems for
instructions about creating a broker on your operating system.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
652
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Are there any error messages or return codes that explain the
problem?
You can find details of error messages and return codes in several places.
Procedure
v BIP messages and reason codes
IBM Integration Bus error messages have the prefix BIP. If you receive any
messages with this prefix (for example, in the UNIX, Linux, or z/OS syslog),
you can search for them in the information center for an explanation. You can
also view the full content of a BIP message by using the mqsiexplain command.
For more information, see mqsiexplain command.
In the Windows Event log, references to BIP messages are identified
by the source name "WebSphere Broker v6000", where v6000 can be replaced by
a number representing the exact service level of your installation, for example
6001.
IBM Integration Bus messages that have a mixture of identifiers such as
BIPmsgs, BIPv700, BIPv610, BIPv500, WMQIv210, MQSIv202, and MQSIv201
indicate a mixed installation, which does not work properly.
v Other messages
For messages with a different prefix, such as AMQ or CSQ for WebSphere MQ,
or SQL for DB2, see the appropriate messages and codes documentation for a
suggested course of action to help resolve the problem.
Messages that are associated with the startup of IBM Integration Bus, or were
issued while the system was running before the error occurred, might indicate a
system problem that prevented your application from running successfully.
A large or complex IBM Integration Bus broker environment might require some
additional configuration of the environment beyond what is recommended in
Installing complementary products. The need for such configuration changes is
typically indicated by warning or error messages that are logged by the various
components, including WebSphere MQ, the databases, and the operating system.
These messages are normally accompanied by a suggested user response.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Windows
653
Procedure
1. Click Tools > Folder options. The Folder Options dialog box opens.
2. Click the View tab and select Show hidden files and folders.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Changing the location of the work path on page 194
The work path directory is the location where a component stores internal data,
such as installation logs, component details, and trace output. The shared-classes
directory is also located in the work path directory and is used for deployed Java
code. If the work path directory does not have enough capacity, redirect the
directory to another file system that has enough capacity.
Procedure
v Is the problem caused by a particular message flow? If so, use the debugging
facility of the IBM Integration Toolkit and user tracing to identify the problem.
v Is the problem caused by a command? On distributed operating systems, you
issue commands at the system command line.
654
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
z/OS
On z/OS, you can issue commands from the console, the syslog, or by
submitting a batch job. You enter customization commands from an OMVS
session. Console commands that you enter from the console or syslog might be
converted to uppercase, depending on the system configuration. This conversion
can cause some commands, such as mqsichangetrace, to fail, especially if these
commands contain parameters that must be lowercase. An error message
indicating that the integration server is not available might be caused by the
integration server name being in the wrong case. The same thing can happen on
message flows.
v Does a problem command work if it is entered by another user ID?
If the command works when it is entered by another user ID, check the
environment of each user. Paths, especially shared library paths, might be
different. On Windows, UNIX systems, and Linux verify that all users have set
up their command environment correctly; refer to sample profile for more
information.
UNIX
On LinuxUNIX systems, only the service ID that is specified when the
broker was created can start a broker.
655
Related reference:
Commands
All IBM Integration Toolkit and runtime commands that are provided on
distributed systems are listed, grouped by function, with references to command
details.
Procedure
v Have you made any changes to the message flow since it last ran successfully?
If so, it is likely that the error exists somewhere in the new or modified part of
the flow. Examine the changes and see if you can find an obvious reason for the
problem.
v Have you used all the functions of the message flow before?
Did the problem occur when you used part of the message flow that had never
been invoked before? If so, it is likely that the error exists in that part. Try to
find out what the message flow was doing when it failed by using user tracing,
trace nodes, and the IBM Integration Toolkit's debugger function.
If you have run a message flow successfully on many previous occasions, check
the current queue status and the files that were being processed when the error
occurred. It is possible that they contain some unusual data value that invokes a
rarely-used path in the message flow.
v Does the message flow check all return codes?
Has your system been changed, perhaps in a minor way, but your message flow
does not check the return codes it receives as a result of the change? For
example:
Does your message flow assume that the queues that it accesses can be
shared? If a queue has been redefined as exclusive, can your message flow
deal with return codes indicating that it can no longer access that queue?
Have any security profiles been changed? A message flow could fail because
of a security violation.
v Does the message flow expect particular message formats?
If a message with an unexpected message format has been put onto a queue (for
example, a message from a queue manager on a different operating system) it
might require data conversion or a different form of processing. Also, check
whether you have changed any of the message formats that are used.
v Does the message flow run on other IBM Integration Bus systems?
Is there something different about the way that your system is set up that is
causing the problem? For example, have the queues been defined with the same
maximum message length or priority? Are there differences in the databases
used, or their setup?
v Are you using any user-defined extensions?
There might be translation or compilation problems with loadable
implementation library (LIL) files. Before you look at the code, examine the
656
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
output from the translator, the compiler or assembler, and the linkage editor, to
see if any errors have been reported. Fix any errors to make the user-defined
extension work.
If the documentation shows that each of these steps was completed without
error, consider the coding logic of the message flow, message set, or user-defined
extension. Do the symptoms of the problem indicate which function is failing
and, therefore, which piece of code is in error? See User-defined extensions
overview for more information.
v Can you see errors from IBM Integration Bus or external resources, such as
databases?
Your message flow might be losing errors because of incorrect use of the failure
terminals on built-in nodes. If you use the failure terminals, make sure that you
handle errors adequately. See Handling errors in message flows for more
information about failure terminals.
Related concepts:
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Resolving problems when developing message flows on page 708
Use the advice given here to help you to resolve common problems that can arise
when developing message flows.
Handling errors in message flows
The broker provides basic error handling for all your message flows. If basic
processing is not sufficient, and you want to take specific action in response to
certain error conditions and situations, you can enhance your message flows to
provide your own error handling.
Related reference:
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
Have you made any changes since the last successful run?
Have you changed IBM Integration Bus, any related software, or any hardware?
Chapter 4. Troubleshooting and support
657
Procedure
v Have you changed your initialization procedure?
On z/OS, have you changed any data sets or library definitions? Has the
operating system been initialized with different parameters? Check for error
messages generated during initialization.
v Has the profile of the user who is running the commands on Linux or UNIX
systems been changed?
If so, this might mean that the user no longer has access to the required objects
and commands.
v Has any of the software on your system been upgraded to a later release?
Check that the upgrade completed successfully, and whether the new software is
compatible with IBM Integration Bus (check the product readme.html file).
v Do your message flows deal with the errors and return codes that they might
get as a result of any changes that you have made?
Check that your message flow can handle all possible error situations.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Handling errors in message flows
The broker provides basic error handling for all your message flows. If basic
processing is not sufficient, and you want to take specific action in response to
certain error conditions and situations, you can enhance your message flows to
provide your own error handling.
658
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Related reference:
Commands
All IBM Integration Toolkit and runtime commands that are provided on
distributed systems are listed, grouped by function, with references to command
details.
Characters allowed in commands
You must adhere to a few rules when you provide names or identifiers for the
components and resources in your broker environment.
Procedure
v Check that the database is started.
v Check that you have correctly completed ODBC configuration:
Windows
On Windows systems, click Start > Control Panel > Administrative
Tools > Data Sources (ODBC) to configure the connections you require.
Linux
UNIX
659
Procedure
v Brokers
v The IBM Integration Explorer
v The IBM Integration Toolkit
What to do next
If any two components are on different queue managers, make sure that the
channels between them are working. Use the WebSphere MQ display chstatus
command to see if messages are flowing.
Use the ping command to check that the remote computers are connected to the
network, or if you suspect that the problem might be with the network itself. For
example, use the command ping brokername, where brokername is a computer
name. If you get a reply, the computer is connected. If you don't get a reply, ask
your network administrator to investigate the problem. Further evidence of
network problems might be messages building up on the transmission queues.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
660
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Change the properties of the broker to reflect the password change. Use the
mqsichangebroker command to change the appropriate parameters.
v Run the mqsisetdbparms command to redefine the correct values for the user ID
and password.
v Run the mqsireportdbparms command to see the user ID that is defined. You can
also run mqsireportdbparms using the -n and -p parameters and a possible
password. If the entered password is correct, then the command returns
information, including if the password was changed since the broker was last
started.
v Run mqsireportdbparms and check what user IDs are defined for the systems
that require one. It might be that a security identity was not defined for the ID.
661
v Ensure that your passwords do not contain reserved keywords. For example,
"IBM" is a reserved keyword in DB2.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Securing WebSphere MQ resources
Secure the WebSphere MQ resources that your broker configuration requires.
Checking the security credentials that are used by an integration node on page
392
To check what security credentials are set on an integration node that is connected
to a remote system or database, use the mqsireportdbparms command.
Related reference:
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsisetdbparms command
Use the mqsisetdbparms command to associate a specific user ID and password (or
SSH identity file) with one or more resources that are accessed by the broker.
mqsireportdbparms command
Use the mqsireportdbparms command to list all parameters that are set for a
specific broker.
Procedure
v If a service update has been applied to any other product, consider the effect
that it might have on IBM Integration Bus.
v Ensure that you have followed any instructions in the service update that affect
your system. For example, you might need to redefine a resource, or stop and
restart a component.
v If you are not sure whether a service update has been applied to your system,
search for and view the release notes stored in the product installation directory.
These notes include the service level and details of the maintenance that you
have applied.
662
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Finding the latest information
Access the latest information for IBM Integration Bus.
Applying service to the Integration Bus component
Apply maintenance updates and program fixes to the Integration Bus component.
Applying service to the IBM Integration Toolkit
Apply maintenance updates and program fixes to the IBM Integration Toolkit.
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Procedure
v Check whether tracing is on. You might have started IBM Integration Bus user
tracing or service tracing, ODBC tracing, WebSphere MQ tracing, or native
database tracing. If one or more of these traces are active, turn them off.
v Clear out all old abend files from your errors directory. If you do not clear the
directory of unwanted files, you might find that your system performance
degrades because significant space is used up.
v On Windows, use the workpath -w parameter of the mqsicreatebroker command
to create the errors directory in a hard disk partition that does not contain IBM
Integration Bus or Windows.
v Increase your system memory.
Related concepts:
Logs
If an error is reported by an IBM Integration Bus component, start your
investigations into its causes by looking at the product and systems logs to which
information is written during component operation.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
663
Procedure
v The queue manager address space
v A queue manager in your queue-sharing group
v The channel initiator address space
v Batch or TSO address space
v The z/OS system (including ARM, RRS, or the Coupling Facility)
v The network (including APPC or TCP/IP)
v Another system, for example a queue manager on another operating system or a
WebSphere MQ client
v The external security manager product, for example RACF or ACF2
v DB2
What to do next
Understanding interactions between the runtime components
664
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
There are two runtime components: the broker and the integration server. These
components communicate with each other by exchanging command requests inside
WebSphere MQ messages to perform actions, such as deploying a message flow.
After completion of the command request, responses are sent back to the
originating component, indicating whether the request was successful.
On IBM Integration Bus for z/OS, you see extra information messages issued by
z/OS runtime components that allow you and IBM Service personnel to determine
the interactions between the various runtime components, including the
Configuration Manager, broker and integration server.
When the broker receives command requests the broker issues a message that
identifies the command request. When this request completes, a message is issued
that indicates whether the command is successful. Each command request that the
broker receives results in at least one matching command request being sent to an
integration server, and a corresponding message being issued. Every response from
an integration server that results from these command requests result in a message
being issued. These messages can be turned on and off and are to be used by the
IBM Service team.
When an integration server receives command requests from the broker, the
integration server issues information messages that identify the command request.
For actions that are contained within a command request, an information message
is issued that identifies the action to be performed and the resource upon which
the action is to take effect. When the request completes, the integration server
issues a message that indicates that the message has been processed.
Loading IBM and user-defined nodes and parsers
When an integration server starts, it loads all available IBM and user-defined
nodes and parsers. For each library that is loaded, two messages are issued. One is
issued before the library is loaded and one is issued after the library has been
loaded.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Using WebSphere MQ shared queues for input and output (z/OS)
On z/OS systems, you can define WebSphere MQ shared queues as input and
output queues for message flows. You might need to serialize access to those
messages.
Related reference:
Other sources of diagnostic information on z/OS
Other files that you might find useful for problem determination.
665
Procedure
v Resolving problems when installing on page 667
v Resolving problems when uninstalling on page 675
v Resolving problems that occur when migrating or importing resources on
page 676
v Resolving problems when running commands on page 679
v Resolving problems when running samples on page 681
v Resolving problems when creating resources on page 685
v Resolving problems that occur when you start resources on page 688
v Resolving problems when stopping resources on page 705
v Resolving problems when deleting resources on page 707
v Resolving problems when developing message flows on page 708
v Resolving problems when deploying message flows or message sets on page
752
v Resolving problems that occur when debugging message flows on page 768
v Resolving problems when developing message models on page 775
v Resolving problems when using messages on page 782
v Resolving problems when you are writing business rules on page 796
v Resolving problems when you use the IBM Integration Toolkit on page 797
v Resolving problems when using the IBM Integration Explorer on page 806
v Resolving problems when using databases on page 809
v Resolving problems when using publish/subscribe on page 819
v Resolving problems with performance on page 823
v Resolving problems when developing CMP applications on page 828
v Resolving problems with user-defined extensions on page 829
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
666
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
667
Procedure
v Scenario: You have problems during the installation of the Integration Bus
component.
v Solution: Complete the following steps:
1. If you experience problems when installing on z/OS, see the Program
Directory for IBM Integration Bus for z/OS on the IBM Integration Bus Library
web page.
2. Refer to the readme file readme.html for any late changes to the installation
instructions.
3. If you transferred the installation media to your local or networked
filesystem, you might see the following error:
The Install executable launcher was unable to locate its
companion shared library.
Ensure that you have read and execute privileges on all installation
directories and files. Also ensure that the length of the path to the installation
media is within the limits imposed by your operating system.
4. If installation is successful, the installation wizard returns a return code of
zero. If a non-zero return code is returned, check the installation log file for
errors and explanations. Problems associated with the installation of the
Integration Bus component are recorded in the log file
IBM_Integration_Bus_InstallLog.log, which is stored in your installation
directory.
If you accepted the default location during installation, this directory is as
follows. The default directory includes the version, release, modification, and
fix of the product that you are installing in the format v.r.m.f
(version.release.modification.fix):
Linux /opt/ibm/mqsi/v.r.m.f
UNIX /opt/IBM/mqsi/v.r.m.f
Windows 32-bit
C:\Program Files\IBM\MQSI\v.r.m.f
Windows 64-bit
C:\Program Files\IBM\MQSI\v.r.m.f for the 64-bit version of IBM
Integration Bus
C:\Program Files (x86)\IBM\MQSI\v.r.m.f for the 32-bit version of
IBM Integration Bus
These locations define the default value of install_dir on each platform.
5. If you are still unable to resolve the problem, contact your IBM Support
Center.
Procedure
v Scenario: You are installing the Integration Bus component but the process is
interrupted before completion.
v Explanation: The process might be interrupted because of a problem, such as a
power failure.
668
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Solution: Delete the install_dir and all its contents before you restart the
program.
Procedure
v Scenario: Installation in console mode is interrupted by an
InvocationTargetException error, with the following information included in the
stack trace:
java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment (initialization failure)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:176)
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:182)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:113)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:92)
at sun.awt.X11FontManager.isHeadless(X11FontManager.java:499)
at sun.awt.X11FontManager.getFontPath(X11FontManager.java:779)
at sun.font.SunFontManager.getPlatformFontPath(SunFontManager.java:3300)
at sun.font.SunFontManager$11.run(SunFontManager.java:3326)
at java.security.AccessController.doPrivileged(AccessController.java:229)
at sun.font.SunFontManager.loadFonts(SunFontManager.java:3322)
at sun.awt.X11FontManager.loadFonts(X11FontManager.java:451)
at sun.font.SunFontManager.findFont2D(SunFontManager.java:2359)
at java.awt.Font.getFont2D(Font.java:509)
at java.awt.Font.getFamily(Font.java:1198)
at java.awt.Font.getFamily_NoClientCode(Font.java:1172)
at java.awt.Font.getFamily(Font.java:1164)
at Flexeraanx.al(Unknown Source)
...
java.lang.UnsatisfiedLinkError
Before you begin
Integration Bus component on Linux:
Procedure
v Scenario: You are using the Integration Bus component graphical interface to
install on Linux but the interface does not work correctly.
v Explanation: The additional packages that are required to complete the
installation are not installed.
v Solution: You must install additional packages for the interface to work
correctly. For more information about the required additional packages, see
Operating system requirements.
669
Procedure
v Scenario: You start a Red Hat package manager (RPM) query after you have
installed the product, but nothing is returned. An information message like the
following example might have been reported in the installation log file:
(01-Jun-2005 09:02:27), mqsi.Setup,
com.ibm.wizard.platform.linux.LinuxProductServiceImpl, wrn,
The installer could not successfully add the product information
into the RPM database. Installation will continue as this is not
critical to the installation of the product.
v Explanation: It is likely that your system does not have the required RPM
support.
v Solution: Install the additional RPM build package that is described in
Operating system requirements.
Display problems
Before you begin
Integration Bus component on Linux and UNIX:
Procedure
v Scenario: You try to install the Integration Bus component by using the
graphical interface and see one of two common errors reported.
v Explanation: Both errors typically occur if you log in remotely, or you switch
user ID.
v Solution: Address the appropriate error with the following corresponding
solution:
Cant open display localhost:1.0
Check that the DISPLAY variable is set to the correct value. If you are
logged in locally, the typical value is :0.0 or localhost:0.0.
Connection to ":0.0" refused by server
Run the following command, where user is the user ID you are logged in
as:
xauth merge ~user/.Xauthority
If you are unable to correct these errors, contact your systems administrator for
further help.
Procedure
v Scenario: You install the Integration Bus component and the installation
program tries to unpack product files into the temporary file space of the local
system. On Linux and UNIX systems, the temporary space is typically located in
/tmp.
v Explanation: If sufficient file space is not available in this directory, the
command might fail without reason and return no comment, or might report a
lack of file space.
v Solution: Set the environment variable IATEMPDIR to the temporary file system
to use. For example, enter the following command:
export IATEMPDIR=/largetemp
670
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Scenario: During installation of the Integration Bus component, your firewall
software reports attempted internet access from an unexpected program. One of
the following program name displays:
C:\long_generated_hexadecimal_string\setup32.exe
C:\long_generated_hexadecimal_string\setup64.exe
v Explanation: Internet access is not required to complete the installation of the
Integration Bus component. However, this component also installs an updated
Microsoft C runtime library that might attempt internet access during its
installation, which might cause firewall software to report a warning.
v Solution: This is normal behavior for this component, and installation completes
successfully whether you allow access or not.
671
2.
3.
4.
5.
Procedure
v Scenario: You have problems during the installation of the IBM Integration
Toolkit.
v Solution: Complete the following steps:
1. Refer to the readme file readme.html for any late changes to the installation
instructions.
2. If installation is successful, the installation wizard returns a return code of
zero. If a non-zero return code is returned, check the Installation Manager
log file for errors and explanations. Problems associated with the installation
of the IBM Integration Toolkit are recorded in the Installation Manager log
file YYYYMMDD_TIME.xml. Where YYYYMMDD_TIME is the date and time
of installation. The Installation Manager log file is stored in the following
location:
Linux /var/ibm/InstallationManager/logs
Windows
On Windows systems, the directory is created in the following
default location, however the actual location might differ on your
computer:
C:\ProgramData\IBM\Installation Manager\logs
672
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3. If you are still unable to resolve the problem, export the Installation Manager
related information from Installation Manager > Help menu > Export Data
for Problem Analysis, and contact your IBM Support Center with the
exported information.
Procedure
v Scenario: You have problems during the installation of the IBM Integration
Explorer.
v Solution: Complete the following steps:
1. See the Program Directory for IBM Integration Bus for z/OS if you experience
problems when installing on z/OS.
2. Refer to the readme file readme.html for any late changes to the installation
instructions.
3. If installation is successful, the installation wizard returns a return code of
zero. If a non-zero return code is returned, check the log file for errors and
explanations. Problems associated with the installation of the IBM Integration
Explorer are recorded in the log file IBExplorer_install.log, which is stored
in the installation directory. The default installation directories are as follows:
Linux /opt/IBM/IBExplorer
Windows
C:\Program Files\IBM\IBExplorer
Procedure
v Scenario: You click Next in the Installation Manager when it first opens and the
Installation Manager hangs.
v Solution: Close the window and reopen it.
Procedure
v Scenario: You are installing the IBM Integration Toolkit but the initial Install
Packages page that is displayed by the Installation Manager does not show the
IBM Integration Toolkit components.
v Explanation: The location of the update repository has not been set correctly.
v Solution: Select File > Preferences and click Add Preferences. Enter the web
address or directory where the installation packages are stored or click Browse
to search for the correct location. Click OK. The packages are listed in the Install
Packages page.
Chapter 4. Troubleshooting and support
673
Procedure
v Scenario: You install products by using the IBM Integration Bus Launchpad. The
Launchpad waits for a return code from each installation wizard that it initiates,
but the return code indicates that an installation has failed. The Launchpad
reports the error and refers you to the documentation for the product that has
failed.
v Explanation: Most installation wizards roll back from the point of the error and
return your system to the state it was in before the failed attempt, and you can
therefore try again after you have corrected the error. However, in this scenario,
the Launchpad has already installed one or more products successfully before
the error occurred, so does not roll back these installations. When you restart the
Launchpad, the status of installed products reflects successful installations from
the previous invocation.
v Solution: To resolve the failed installation, you must either correct the error and
restart the Launchpad, or click Refresh and clear the selection of the product
that failed.
If you are unable to install the failed product, complete the following steps:
Refer to the readme file readme.html for late changes to the installation
instructions.
If the Integration Bus component fails to install, check the contents of the
installation log file IBM_Integration_Bus_InstallLog.log, which is stored in
your installation directory.
If you accepted the default location during installation, this directory is as
follows. The default directory includes the version, release, modification, and
fix of the product that you are installing in the format v.r.m.f
(version.release.modification.fix):
Linux /opt/ibm/mqsi/v.r.m.f
UNIX /opt/IBM/mqsi/v.r.m.f
Windows 32-bit
C:\Program Files\IBM\MQSI\v.r.m.f
Windows 64-bit
C:\Program Files\IBM\MQSI\v.r.m.f for the 64-bit version of IBM
Integration Bus
C:\Program Files (x86)\IBM\MQSI\v.r.m.f for the 32-bit version of
IBM Integration Bus
These locations define the default value of install_dir on each platform.
If the IBM Integration Toolkit fails to install, check the contents of the
installation log file YYYYMMDD_TIME.xml, where YYYYMMDD_TIME is the date and
time of installation.
If the IBM Integration Explorer fails to install, check the contents of the
installation log file IBExplorer_install.log. The log file is stored in the
installation directory.
674
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
675
Procedure
v Resolving problems when migrating or importing message flows and message
sets on page 677
Message flows that refer to a migrated user-defined node have connection
errors on page 677
After migration, message flows cannot locate a user-defined node on page
677
v Resolving problems when migrating or importing other resources on page 677
The mqsimigratecomponents command fails with database error BIP2322 on
page 678
The File > Import menu provides only the option to import a compressed
file inside an existing project on page 678
Related tasks:
Migrating
To migrate a broker domain to IBM Integration Bus Version 9.0, plan your
migration strategy, perform pre-migration tasks, migrate your domain components,
676
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
677
libraries. You try to recompile a BAR file after the resources have been migrated
to applications and libraries, but you see an error message similar to the
following example:
TotalPurchaseOrderFlow.msgflow belongs in an application or library and should be deployed within that container and not independently.
Create a new BAR file and select the application or library in the Prepare tab of the BAR editor, then select Build and Save.
To deploy the resource separately from the application or library, it must be moved into a Message Broker project.
678
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
3. Select the files and subdirectories as required. The project root folder is
selected, but is displayed as gray.
Then, when you import the compressed file:
1. Clear the root (/) folder.
2. Select the files and subfolders as required. The project root folder is selected,
but is displayed as gray.
COBOL compiler errors when importing a copybook:
Procedure
v Scenario: The report file that is generated by the import contains COBOL
compiler errors. For example, you try to import the following copybook:
01 AIRLINE-REQUEST.
....05 CUSTOMER.
........10 NAME................PIC X(45).
....05 ADDRESS.
........10 STREET.............PIC X(30).
........10 CITY.................PIC X(25).
........10 STATE...............PIC X(20).
........10 ZIP-CODE.........PIC X(5).
....05 FLIGHT-NO............PIC X(6).
....05 TRAN-DATE...........PIC X(10).
....05 COST....................PIC X(7).
....05 CC-NO..................PIC X(20).
....05 RESPONSE.
........10 STATUS.............PIC X(100).
........10 DETAILS............PIC X(100).
The report file contains errors:
Line No : 4 IGYDS1089-S "ADDRESS" was invalid. Scanning was resumed at the next area "A" item, level-number, or the start of the next clause.
Line No : 14 IGYDS1089-S "STATUS" was invalid. Scanning was resumed at the next area "A" item, level-number, or the start of the next clause.
v Explanation: The errors are caused by the copybook containing field names that
are COBOL reserved keywords.
v Solution: Change the name of the fields in question, so that they are not COBOL
reserved keywords, and retry the import.
Related tasks:
Resolving problems when migrating or importing message flows and message
sets on page 677
Use the advice given here to help you to resolve common problems that can occur
when you import or migrate message flows and message sets.
Related reference:
mqsistop command
Use the mqsistop command to stop the specified component.
679
680
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
bipservice
mqsideploy
mqsilist
mqsimode
mqsireloadsecurity
mqsireportresourcestats
mqsiwebuseradmin
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Dealing with problems on page 666
Learn how to resolve some of the typical problems that can occur.
Windows: Viewing the local error log on page 840
The Windows Event Viewer is where IBM Integration Bus writes records to the
local system. Use Windows system facilities to view this log.
Related reference:
mqsistop command
Use the mqsistop command to stop the specified component.
mqsibackupbroker command
Use the mqsibackupbroker command to back up the current configuration of a
broker.
mqsirestorebroker command
Use the mqsirestorebroker command to restore the broker configuration from a
backup file.
681
c. Click the Queues folder in the queue manager to display its queues.
d. Check the Current depth column to identify the queue that is holding the
input message. If several messages are stored on one queue, right-click the
queue, then click Browse Messages to determine if the message that you
are interested in is on the queue.
2. Use the following table to identify the problem, and a suggested solution to
overcome it. If the sample that you are running does not use a database, ignore
the database-related problems listed in the table.
3. If the table did not help you solve the problem, return to the IBM Integration
Toolkit and check the Problems view for error messages. Use this information
to solve the problem.
4. If you created the sample yourself, you must check that all the objects in the
sample have been named and configured correctly.
Problem
Reason
Suggested solution
You cannot find the input message on any You have not refreshed the display in
queue.
WebSphere MQ Explorer, or you have
refreshed only some of the queues.
The input message was passed to a
terminal that was not connected to
another node, and the message was
discarded.
682
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Problem
Reason
Suggested solution
where:
v username is the user name of the broker
v tableschema is the schema that contains
the table that the message flow is
accessing
v tablename is the table that the message
flow is accessing
683
Problem
Reason
Suggested solution
mqsireportproperties IB9NODE
-e sampleIntegrationServer
-o HTTPConnector
-n port
where sampleIntegrationServer is the
appropriate integration server for the
sample that is being run. To verify that
the port that the SOAPRequest node is
using is the correct port to call the
provider flow, change the port of the
SOAPRequest nodes to the port that the
provider integration server is using by
completing the following steps:
1. Open the message flow located in the
message set project.
2. (Perform this step for all of your
SOAPRequest nodes). Open the HTTP
Transport tab in the Properties view. If
the port is not correct, change the port
in the Web service URL property to the
correct port for your web services
provider or TCP/IP Monitor.
3. Save the message flow.
4. Rebuild and redeploy the broker
archive (BAR) file.
If you have set up a TCP/IP Monitor, you
have already checked which port the web
services provider is using, but you must
still configure the consumer to send the
messages to your TCP/IP Monitor, then
rebuild and redeploy the BAR file.
Alternatively, you can remove one of the
samples that is using the same port, so
that only one sample is deployed at a
time.
Related concepts:
Samples
The IBM Integration Toolkit provides samples that show the features that are
available in IBM Integration Bus, and how to use them. This topic provides links to
the information about the individual samples.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
684
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
685
#
+
+
+
686
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Windows
Linux
Windows
Using the -i parameter on the mqsicreatebroker command, specify a
service user ID that is a member of WebSphere MQ group mqm.
UNIX
Linux and UNIX systems
Specify the user ID mqm on the -i parameter on the mqsicreatebroker
command.
v Explanation: You have entered a user name that contains one or more spaces.
The Default Configuration does not support the use of user names that contain
spaces, because the space character can cause problems in communications with
other operating systems.
v Solution: Use an alternative user name that does not contain any spaces in the
Default Configuration wizard.
687
Creating a library
Create a library to contain a logical grouping of related code, data, or both, that
can be reused.
Adding and removing library references
To include a library in an application or integration project, you can add a
reference to that library to the application or integration project. You can also add a
reference to a library from another library.
688
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
689
v Error message BIP2228 is issued when you try to start a second broker on
Linux or UNIX on page 692
v MQIsdp client connection is refused by the broker on page 692
v Error messages BIP2604 and BIP2624 are issued when you start a broker or a
new message flow on page 692
v When you start the broker through the DataFlowEngine, it cycles continually
on page 693
v You have changed your logon password and cannot start your broker on
Windows on page 693
v The Java installation is at an incorrect level on page 693
v Authorization errors are reported on z/OS on page 694
v Error message BIP8875 is issued when you start a broker on page 694
v Warning messages BIP8288-BIP8297 are shown in the syslog when you start a
broker on page 695
v Broker startup on z/OS is very slow on page 696
v Error messages AMQ7626 and BIP8048 are displayed when you try to start a
broker on page 696
The broker fails to start because there is not enough space in the Java TMPDIR
directory or access permissions for the Java TMPDIR directory are inadequate:
Procedure
v Scenario: The broker fails to start and either an error message indicates that
insufficient space is available or a BIP4512 exception indicates a
java.lang.NoClassDefFoundError in the stack trace.
v Explanation: This error has two possible causes:
The broker uses Java JAR files. When the broker starts, the Java runtime
environment extracts the JAR files into a temporary directory, Java TMPDIR.
On Linux, UNIX, and z/OS computers, the TMPDIR directory is typically
/tmp; on Windows computers, it is c:\temp. If this directory is not large
enough to hold the JAR files, the broker does not start.
If the program is packaged as a PAR file, the user must have access to the
system temporary directory and adequate space must be available in the
temporary directory.
v Solution: Use one of the following methods to specify the location of this
temporary JAR directory:
Use the environment variable TMPDIR.
Set the system property java.io.tmpdir.
Allow at least 50 MB of space per integration server in this directory for IBM
Integration Bus components. You might need more space if you deploy large
user-defined nodes or other JARs to the broker. You should ensure that all the
dependencies of the compute node class are deployed to the broker.
Diagnostic message ICH408I is issued on z/OS when your broker fails to start:
About this task
Two scenarios are described here. Choose the appropriate one.
Procedure
v Scenario 1: The following diagnostic message is written to the SDSF SYSLOG on
z/OS when your broker fails to start:
690
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
PG
v Explanation: The started task ID, under which the broker runs, must be in a
RACF or z/OS UNIX System Services (USS) group that has rwx permissions on
the broker directory. For example, consider a broker that is created under
directory /argo/MA00BRK. It runs under started task ID MA00USR. Issuing the ls
-al command from the root directory / to find the permission bit settings on
/argo returns:
drwxrwx--- 5 BPXROOT ARGOUSR
8192 Jul 30 13:57 argo
If you issue the id MA00USR command to find the group membership of started
task ID MA00USR you see:
uid=14938(MA00USR) gid=5(TSOUSER) groups=229(ARGOUSR)
These results show that the started task ID MA00USR potentially has rwx
permissions on subdirectories to /argo, because these permissions are set for
both the user and the group that is associated with MA00USR. If the
permissions are not set correctly, you see the type of diagnostic message shown
in the scenario.
v Solution: Make sure that the started task ID, under which the broker runs, is in
a RACF or USS group that has rwx permissions on the broker directory.
v Scenario 2: The following diagnostic message is written to the SDSF SYSLOG on
z/OS when your broker fails to start:
ICH408I USER(MA10USR ) GROUP(WMQIBRKS ) NAME(MA10USR
CSFRNG CL(CSFSERV )
INSUFFICIENT ACCESS AUTHORITY
FROM ** (G)
ACCESS INTENT(READ ) ACCESS ALLOWED(NONE )
v Explanation: During the broker start up process, Java accesses a secure random
number generator. Consequently, the broker started task ID needs access to the
CSFRNG resource in the CSFSERV class.
v Solution: Make sure that the started task ID that the broker runs under has
access to the CSFRNG resource in the CSFSERV class.
Abend code 047 is issued with a diagnostic message:
Procedure
v Scenario: On z/OS, your broker generates abend code 047 when you try to start
it, and the following diagnostic message is written to the SDSF SYSLOG:
IEA995I SYMPTOM DUMP OUTPUT 463
SYSTEM COMPLETION CODE=047
TIME=10.53.47 SEQ=00419 CPU=0000 ASID=008E
PSW AT TIME OF ERROR 078D0000 98D09E52 ILC 2 INTC 6B
ACTIVE LOAD MODULE
ADDRESS=18D08828 OFFSET=0000162A
NAME=SPECIALNAME
61819987 968995A2 A3618499 89A58599 */argoinst/driver*
F1F46D82 96858261 A4A29961 93979761 *14_boeb/usr/lpp/*
A6949889 61828995 61828997 89948189 *wmqi/bin/bipimai*
Chapter 4. Troubleshooting and support
691
95
*n
*
DATA AT PSW 18D09E4C - 58109948 0A6B5820 B8E95020
GPR 0-3 00000000 0000003C 00000000 00000000
GPR 4-7 18D10300 18D115F0 00000013 00000004
GPR 8-11 18D111CF 18D101D0 18D0BBBE 18D0ABBF
GPR 12-15 98D09BC0 18D101D0 98D09E22 00000000
END OF SYMPTOM DUMP
v Explanation: System completion code 047 means that an unauthorized program
issued a restricted Supervisor Call (SVC) instruction. The diagnostic message
also indicates that the program in error was bipimain.
v Solution: When you install IBM Integration Bus, issue the command extattr +a
bipimain from the bin directory of the installation path to give APF
authorization to program bipimain.
Error message BIP2228 is issued when you try to start a second broker on Linux
or UNIX:
Procedure
v Scenario: Error message BIP2228, which mentions semctl in the syslog, is
displayed when you try to start a second broker on Linux or UNIX.
v Explanation: This error typically indicates a permissions problem with a
semaphore used by IBM Integration Bus. A semaphore is created when the first
broker starts after a reboot (or after an initial installation), and only members of
the primary group of the semaphore creator can access this semaphore. This
problem is a consequence of the UNIX System V IPC primitives that are used by
IBM Integration Bus.
The BIP2228 message is logged by any broker that is started by a user who is
not a member of the primary group of the semaphore creator. The broker tries to
access the semaphore, but fails with a permissions-related error. The broker then
terminates with the BIP2228 message.
v Solution: Avoid this problem by ensuring that all user IDs used to start IBM
Integration Bus have the same primary group. If this action is impractical,
ensure that all user IDs are members of primary groups of all other user IDs.
Contact your IBM Support Center for further assistance.
MQIsdp client connection is refused by the broker:
Procedure
v Scenario: When a new MQIsdp client tries to connect to the broker, its
connection is refused.
v Explanation: MQIsdp Client ID fields must be unique. If a client sends a CONN
packet that contains the same Client ID as a currently connected client, the
behavior is undefined.
v Solution: Ensure that Client IDs are unique.
Error messages BIP2604 and BIP2624 are issued when you start a broker or a
new message flow:
Procedure
v Scenario: The following messages are written to the USS syslog on z/OS when
your integration server, or a newly deployed or started message flow, fails to
start:
(PMQ1BRK.default)[8]BIP2624E: Unable to connect to queue manager PMQ5:
MQCC=2; MQRC=2025; message flow node ComIbmMQConnectionManager
(PMQ1BRK.default)[8]BIP2604E: Node failed to open WebsphereMQ queue
INPUT1 owned by queue manager PMQ5: completion code 2; reason code 2025
692
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
693
If you ran the profile command, check the settings of the environment
variables in mqsiprofile; MQSI_JREPATH, PATH, and the appropriate library
path environment variables for your operating system. Change these settings
to point to the integrated JVM, and ensure that no other Java installation is in
the path.
On z/OS, install the correct level of Java that is reported in this message,
update the broker profile BIPBPROF and submit BIPGEN to refresh the
component ENVFILE.
Authorization errors are reported on z/OS:
Procedure
v Scenario: You issue the command to start a broker, but the component does not
start and the JOBLOG includes message BIP8903, for example:
Verification failed. The APF Authorization check failed
for file /usr/lpp/mqsi/bin/mqsireadlog.
WebSphere Message Broker requires that only bipimain is APF Authorized
for successful operation. File /usr/lpp/mqsi/bin/mqsireadlog
fails that requirement.
If the file indicated in the message is bipimain, use the USS command
extattr to ensure that it is APF Authorized.
If the file indicated in the message is not bipimain, use the USS
command extattr to ensure that it is not APF Authorized.
For more information, search the information center for "APF attributes".
v Explanation: When you start a broker, a series of checks is made to ensure that
the broker environment is set up correctly. One or more of the checks for the
broker identified in the message has failed, therefore the broker is not started.
The errors shown here indicate that the authorizations for some files are
incorrect and incompatible with broker operation.
The broker requires that a single file, bipimain, is APF authorized, but the
checks indicate that the authorization for file mqsireadlog is incorrect.
v Solution: The file bipimain must be APF authorized, and all other files must not
have that authorization. Make the required changes to authorization for the files
that are identified in the error messages and try the operation again.
Error message BIP8875 is issued when you start a broker:
Procedure
v Scenario: You issue the mqsistart command to start a broker, but the broker
does not start and the system log shows message BIP8875, for example:
The component verification for IB9NODE has finished,
but one or more checks failed.
v Explanation: The command performs a series of checks to ensure that the broker
environment, WebSphere MQ queues, and Java are correct and accessible. One
or more of the checks for the broker identified in the message has failed,
therefore the broker is not started.
v Solution: Look in the system log, or in the Application log in the Event Viewer
on Windows. Additional messages have been written before this message to
indicate which checks have failed. All the checks are performed every time you
issue mqsistart, therefore all errors are included in the log. Some messages are
also returned when you run the command from the command line.
Investigate the one or more errors that have been reported and check return
codes and additional details. Look at the complete message content to check for
typical causes of the error, and follow the advice given for the messages that
you see in the log. View the complete message text in the Diagnostic Messages
reference topics.
694
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
For example, you might see one or more of the following messages:
BIP8875W: The component verification for 'component_name' has finished, but
one or more checks failed.
BIP8877W: The environment verification for component 'component_name' has
finished, but one or more checks failed.
BIP8883W: The WebSphere MQ verification for component 'component_name'
has finished, but one or more checks failed.
BIP8885E: Verification failed. Failed to connect to queue manager
'queue_manager_name'. MQRC: return_code MQCC: completion_code
BIP8887E: Verification failed for queue 'queue_name' on queue manager
'queue_manager_name' while issuing 'operation'. MQRC: return_code MQCC:
completion_code
BIP8888E: Verification failed. Failed to disconnect from queue manager
'queue_manager_name'. MQRC: return_code MQCC: completion_code
BIP8892E: Verification failed. The installed Java level 'level_installed' does not
meet the required Java level 'level_supported'.
BIP8893E: Verification failed for environment variable 'variable_name'. Unable
to access file 'file_name' with user ID 'user_ID'. Additional information for IBM
support: data1 data2.
BIP8895E: Verification failed. Environment variable 'variable_name' is incorrect
or missing.
BIP8896E: Verification failed. Unable to access the registry with user ID
'user_ID'. Additional information for IBM support: data1 data2
BIP8897E: Verification failed. Environment variable 'variable_name' does not
match the component name 'component_name'.
BIP8903E: Verification failed. The APF Authorization check failed for file
'file_name'.
BIP8904E: Verification failed. Failed to start file 'file_name' with return code
'return_code' and errno 'error_number'.
If you cannot resolve the problems that are reported, and you receive a message
such as BIP8893 that includes additional information, include these items in the
information that you provide when you contact IBM Service.
Warning messages BIP8288-BIP8297 are shown in the syslog when you start a
broker:
Procedure
v Scenario: Warning messages BIP8288-BIP8297 are shown in the syslog when you
start a broker on Linux and UNIX systems.
v Explanation: One or more problems were detected with the ODBC environment
on Linux and UNIX systems.
When you start a broker by using the mqsistart command, the mqsicvp
command is run automatically to check that the broker environment is set up
correctly. On Linux and UNIX systems, this command also verifies that the
ODBC environment is configured correctly. Warning messages are written to the
syslog in the following situations:
The file that is referenced by the ODBCINI environment variable does not
exist, or the broker does not have access to read or write to the file.
The ODBCSYSINI environment variable is not set.
The directory that is referenced by the ODBCSYSINI environment variable
does not contain a file called odbcinst.ini, or the broker does not have access
to read or write to the file.
Chapter 4. Troubleshooting and support
695
696
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v A "Not Found" error is issued when you click a link to a specific sample on
page 699
v Error message BIP0832 is issued on startup on page 699
v Your integration servers restart repeatedly on page 700
v You cannot tell whether startup is complete on z/OS on page 700
v Abend code 0C1 is issued when you try to start the DataFlowEngine on z/OS
on page 701
v Error message BIP2604 with return code MQRC_CONNTAG_IN_USE is issued during
the start of a message flow on z/OS on page 701
v After creating or changing a configurable service, you restart your broker but
your message flow does not start, and message BIP2275 is issued in the system
log or Windows Event Viewer on page 702
v A device allocation error is issued on page 703
v Windows fails to recognize IBM Integration Bus digital signatures: "Unknown
Publisher" on page 704
v The create command fails, and error message BIP8022 is issued on page 704
v Your integration server restarts repeatedly with a JVM Startup failure on page
704
Resources terminate during startup:
Procedure
Scenario: The following error message is displayed when you start a
broker on Windows:
ServiceName - DLL initialization failure Initialization of the
dynamic link library c:\windows\system32\user32.dll failed.
The process is terminating abnormally.
v Explanation: This error is issued by Windows when it fails to start a service
because it has insufficient storage.
v
Windows
697
698
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
If the Default Configuration wizard does not remove the default configuration
completely, a wizard failure window opens with instructions on where to find
the log. Take the following steps:
1. Follow any advice that is given in the Default Configuration wizard log and
try each step again.
2. If retrying fails, restart the computer and run the Default Configuration
wizard again.
3. If the wizard still does not remove the default configuration, remove each
component manually by performing the following actions in the order
shown:
a. Issue the following commands to find out which components are
installed:
mqsilist (lists the brokers)
dspmq (lists WebSphere MQ components: the queue manager)
b. In the IBM Integration Toolkit, delete the connection file
LocalDomain.broker from the project LocalProject.
c. In the IBM Integration Toolkit, delete the project LocalProject.
d. Stop the default broker by issuing the command:
mqsistop IB9NODE
e. Delete the default broker by issuing the command:
mqsideletebroker IB9NODE -w
The -w parameter deletes all files related to this broker from the
associated work path.
f. If you need to remove the queue manager manually, issue the following
commands:
endmqlsr -w -m IB9QMGR
endmqm -i IB9QMGR
dltmqm IB9QMGR
4. If you still experience problems after removing the default configuration
manually, contact your IBM Support Center.
A "Not Found" error is issued when you click a link to a specific sample:
Procedure
v Scenario: You see a "Not Found" error when you click a link to a specific
sample, indicating that a URL is invalid.
v Explanation: You can view sample applications only when you use the
information center that is integrated with the IBM Integration Toolkit. If you are
viewing a stand-alone or online information center, you cannot access these
resources.
v Solution: If you want to access samples, ensure that you are viewing the
information center from within the IBM Integration Toolkit.
Error message BIP0832 is issued on startup:
Procedure
v Scenario: The following error message is displayed on startup:
BIP0832E: A class java.io.FileNotFoundException exception occurred which
reported the following message: [filepath] (The process cannot access the
file because it is being used by another process). Resolve the reason of
error and try again.
v Explanation: An invalid WebSphere MQ Java Client trace output file has been
specified on the Enqueue preferences screen.
Chapter 4. Troubleshooting and support
699
v Solution:
1. Open the Enqueue preferences screen by clicking Windows > Preferences,
then clicking Enqueue on the left.
2. In the To file field, specify a valid output file (one that is not read-only or
already in use).
Your integration servers restart repeatedly:
Procedure
v Scenario: Your integration servers restart repeatedly. The system log might show
an error, such as BIP2060.
v Explanation: The problem might be caused by:
The broker environment variables incorrectly defined
Incorrect Loadable Implementation Library directory permissions
Incorrect database permissions
Invalid user-written LILs
v Solution: Check:
Environment variables as described in Environment variables after installation
File and directory permissions as described in Checking the permission of the
installation directory
Group memberships as described in Integration servers and Creating an
integration server using the IBM Integration Toolkit or IBM Integration
Explorer on page 36
You cannot tell whether startup is complete on z/OS:
Procedure
v Scenario: You cannot tell whether startup has completed on your z/OS system.
v Solution: To determine if startup is complete:
1. Check the messages in the system log. The following example shows a
system log entry for a startup of a broker with one integration server:
S STU3053
$HASP100 STU3053 ON STCINRDR
IEF695I START STU3053 WITH JOBNAME STU3053 IS ASSIGNED TO USER STU3
, GROUP STCGROUP
$HASP373 STU3053 STARTED
+(broker53) 0 BIP9141W: The component was started.
+(broker53) 0 BIP2001I: The WebSphere Business Integration Message Broker
service has started
process ID 33554919.
+(broker53.default) 0 BIP2201I: Integration Server started: process 67109
442
196; thread 0; additional information broker53, 76eb7f2d-e800-00
00-0080-974c271866d2, default, true, Q4A3, false, ARG5D651,
ARGO53, ********, false, f9c27f2d-e800-0000-0080-974c271866d2
, /local/argo/driver/drv3, /local/argo/tgrp53/broker53.
+(broker53.default) 0 BIP9137I: A work manager has been registered by R
443
RMS registration services, work manager name is BIP.STU30532.006710919
6.IBM.UA .
2. Display the address spaces. The following example shows the display of a
broker with one integration server:
D OMVS,U=STU3
BPXO040I 18.49.59 DISPLAY OMVS 446
OMVS
000E ACTIVE
OMVS=(68,05)
USER
JOBNAME ASID
PID
PPID STATE START
CT_SECS
700
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
STU3
STU30531
LATCHWAITPID=
STU3
STU30532
LATCHWAITPID=
STU3
STU3053
LATCHWAITPID=
STU3
STU30532
LATCHWAITPID=
STU3
STU3053
LATCHWAITPID=
STU3
STU30531
LATCHWAITPID=
0069
03FD
0036
03FD
0036
0069
33554696 33554919 HR
18.49.15
2.217
0 CMD=bipbroker broker53
67109196 67109222 HR
18.49.23
19.816
0 CMD=DataFlowEngine broker53 76eb7f2d-e800-00
33554768 83886483 HRI 18.49.08
.653
0 CMD=bipservice Q4A3BRK AUTO
67109222 33554696 1W
18.49.23
19.816
0 CMD=bipimain DataFlowEngine broker53 76eb7f2
83886483
1 1WI 18.49.08
.653
0 CMD=/local/argo/driver/drv3/bin/bipimain bip
33554919 33554768 1W
18.49.15
2.217
0 CMD=bipimain bipbroker broker53
Results
The infrastructure main program bipimain is the first process in every address
space. It starts bipservice, bipbroker, or DataFlowEngine as the second process in
the same address space. For each integration server, an additional address space is
started. In this example, only one integration server is available.
Abend code 0C1 is issued when you try to start the DataFlowEngine on z/OS:
Procedure
v Scenario: The first two IBM Integration Bus address spaces start successfully, but
the third address space (the DataFlowEngine) fails to start. The result is an 0C1
abend.
v Explanation: The DataFlowEngine address space is generated by the admin
agent. If the region size is too small, either because an insufficient region size
was specified in the procedure, or because the region size was overridden by the
z/OS IEFUSI exit, the DataFlowEngine address space might fail to start, and
fails with an 0C1 abend.
v Solution:
1. Use the IPCS command on the dump (move the dump from the file system
to a traditional MVS data set if required):
verbx vsmdata,noglobal,jobname(vcp0brk2)
where vcp0brk2 is the name of the failing job.
2. Find the string VSM LOCAL DATA AREA AT ADDRESS . The field ELIM gives
the available region size and must be greater than 0C800000. If the field
SMFEL is not ffffffff, the IEFUSI exit has changed the allowable region
size. This value must also be greater than 0C80000.
3. If you have an IEFUSI exit, check that the exit does not limit the broker
address spaces. For example, a commonly used field is OUCBSUBN. This
field can be STC or OMVS for the broker, and indicates how the address
space was started.
Error message BIP2604 with return code MQRC_CONNTAG_IN_USE is issued during
the start of a message flow on z/OS:
Procedure
v Scenario: Error message BIP2604 is issued with return code
MQRC_CONNTAG_IN_USE during the start of a message flow on z/OS:
BIP2604E: Node failed to open WebSphere MQ queue [queue name]
owned by queue manager [queue manager name]
This message is output every 30 minutes.
701
702
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
MODULE nixxi_r.cpp
LINE 8728
DETAIL NiPConnect2
SYSTEM CALL SiPeekPendConn
ERRNO 10061
ERRNO TE
This error was detected by the adapter. The following message describes the
diagnostic information that is provided by the adapter:
Connect to SAP gateway failed
Connect_PM GWHOST= invalidhost.test.co, GWSERV=sapgw00, ASHOST= invalidhost.test.co,
SYSNR=00
LOCATION CPIC (TCP/IP) on local host
ERROR partner not reached (host invalidhost.test.co, service 3300)
TIME Fri Nov 28 15:27:32 2008
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -10
MODULE nixxi_r.cpp
LINE 8728
DETAIL NiPConnect2
SYSTEM CALL SiPeekPendConn
ERRNO 10061
ERRNO TE
703
who is issuing the command (which might be to start the broker, or to submit
JCL to start one of the utility jobs) does not have the correct file system
permissions for the file system component. Use the ICH408I information to
rectify the problem.
Another possible reason for authorization failures is inconsistencies in the RACF
definitions for a user ID in the MVS image and the OMVS segment. Also check
with your system administrator that the RACF ID that is used on MVS has a
corresponding OMVS image created.
Windows fails to recognize IBM Integration Bus digital signatures: "Unknown
Publisher":
Procedure
v Scenario: User A installs IBM Integration Bus, and can run all programs
(mqsi*.exe, bip*.exe, including the command console launcher). User B is
created and given appropriate privileges. When User B runs an executable file
such as the command console launcher, a window opens and reports that the
executable file is from an unidentified publisher.
v Explanation: The operating system has not installed the appropriate digital
certificates for User B.
v Solution: User B must manually install the certificates:
1. In Windows Explorer, navigate to the bin directory for the IBM Integration
Bus installation; for example, on 32-bit systems, C:\Program
Files\IBM\MQSI\7.0\bin
2. Right-click any .exe file to open the Properties window.
3. Click the Digital Signatures tab.
4. Select the appropriate certificate from the list, then click Details. The Digital
Signature Details window is displayed.
5. Click View Certificate. The Certificate window is displayed.
6. Click Install Certificate and complete the steps in the wizard. (Click Next,
Next, Finish, then click OK.)
7. Close the Certificate window. You return to the Digital Signature Details.
8. Select the countersignature from the list, then click the Details button. A new
Digital Signature Details window is displayed. You can repeat the preceding
steps to install other certificates.
The create command fails, and error message BIP8022 is issued:
Procedure
v Scenario: Error message BIP8022 is displayed when you use the
mqsicreatebroker command on Windows, even if the supplied user name and
password are correct.
v Explanation: The Microsoft component "Shared File and Printer Services" is
required.
v Solution: Correct this error by installing the "Share File and Printer for Microsoft
network" service on the Windows system.
Your integration server restarts repeatedly with a JVM Startup failure:
Procedure
v Scenario: When you start the DataFlowEngine it continually starts and stops,
displaying errors BIP2116E and BIP7409S in the log:
BIP2116E: Message broker internal error: diagnostic information Fatal Error; exception thrown before initialisation completed, JVM Startup
BIP7409S: The broker was unable to create a JVM. The return code indicates that an unrecognized option was passed in to it.
704
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
705
706
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Deleting a broker on page 29
Delete a broker using the command line on the system where the Integration Bus
component is installed.
Deleting an integration project
An integration project is the container in which you create and maintain all the
resources associated with one or more message flows. These resources are created
as files, and are displayed in the project in the Application Development view. If
you do not want to retain an integration project, you can delete it.
Related reference:
707
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
708
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
709
v A CORBA IDL file drop error is issued when you are using an IDL file that
contains includes
v Error message BIP4910 is issued during deployment when you are using an
IDL file that contains includes
Error message BIP4891 is issued when you include a CORBARequest node in a
message flow:
Procedure
v Scenario: You have created a message flow that contains a CORBARequest node,
but error message BIP4891 is issued, indicating that the node did not receive a
valid body.
v Explanation: This error message indicates that the CORBARequest node is trying
to call an operation but cannot find the required input parameters in the
incoming tree. IBM Integration Bus uses the DataObject parser to read and write
message from CORBA applications. If you use an input node to pass XML into
the CORBARequest node, ensure that it uses the DataObject domain.
v Solution: Ensure that the incoming message has the correct structure. If you are
using an input node to pass XML into the CORBARequest node, set the Message
domain property on the Input Message Parsing tab of the input node to
DataObject.
A CORBA IDL file drop error is issued when you are using an IDL file that
contains includes:
Procedure
v Scenario: You have dragged a CORBA IDL file onto the canvas but a CORBA
IDL file drop error is issued.
v Explanation: If you have imported an IDL file that contains includes, you must
drag the top-level IDL file onto the canvas so that the CORBARequest node has
all the relevant information. Similarly, when setting properties on the
CORBARequest node, if you have imported an IDL file that contains includes,
you must select the top-level IDL file in the IDL file property.
v Solution: Drag the top-level IDL file onto the canvas, or set the IDL file
property on the CORBARequest node to the top-level IDL file.
Error message BIP4910 is issued during deployment when you are using an IDL
file that contains includes:
Procedure
v Scenario: You are deploying a message flow that contains a CORBARequest
node, but error message BIP4910 is issued.
v Explanation: This error is issued when you have imported an IDL file that
contains includes, but not all the included IDL files have been added to the BAR
file. For example, you might have dragged only the message flow onto the
integration server. If you have imported an IDL file that contains includes, you
must ensure that all the included IDL files are added to the BAR file so that all
the relevant information is available to the message flow.
v Solution: When you deploy a message flow that contains a CORBARequest
node and an IDL file that contains includes, ensure that all included IDL files are
added to the BAR file.
If you are dragging a message flow that uses a multifile IDL file onto an
integration server in the Integration Development perspective, included IDL files
are not deployed. To deploy message flows that use multifile IDL files, you must
create a BAR file.
Related concepts:
710
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
711
used to calculate the size of the email content and attachments for a multipart
MIME document. In this example, the result is stored in the LocalEnvironment:
DECLARE CURSOR REFERENCE TO InputRoot.MIME.Parts;
DECLARE I INTEGER 0;
FOR SOURCE AS CURSOR.Part[] DO
SET I = I + LENGTH( SOURCE.Data.BLOB.BLOB);
END FOR;
SET OutputLocalEnvironment.Variables.EmailSize = I;
For more information about messages that belong to the MIME domain, see
Manipulating messages in the MIME domain.
A parsing error displays when you reparse an email attachment as XML:
Procedure
v Scenario: Your message flow retrieves emails from an email server by using an
EmailInput node. The email contains an XML document attachment that you
want to reparse. However, when you try to reparse the attachment you receive
parsing errors from IBM Integration Bus reporting that you have an invalid XML
character.
v Explanation: Some email servers might insert carriage return (CR) and line feed
(LF) characters at the end of an email. Typically you would want to keep these
characters, but in this scenario you must remove them so that you can reparse
your XML data.
v Solution: Use the following ESQL in a Compute node to remove the CR and LF
characters:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X0d0a FROM InputRoot.
MIME.Data.BLOB.BLOB );
Removing unwanted null characters from an email:
Procedure
v Scenario: Your email attachment contains unwanted null characters that you
would like to remove.
v Explanation: Your email attachment might contain null characters that you
would like to remove; for example, you intend to reparse the data in the
attachment.
v Solution: Use the following ESQL in a Compute node to remove the null
characters:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X00 FROM InputRoot.MIME.
Data.BLOB.BLOB)
Related concepts:
Local environment tree structure
The local environment tree is a part of the logical message tree in which you can
store information while the message flow processes the message.
Related tasks:
Processing email messages
You can configure the EmailOutput node to deliver an email from a message flow
to an email server that supports Simple Mail Transfer Protocol (SMTP). You can
also configure the EmailInput node to retrieve an email from an email server that
supports Post Office Protocol 3 (POP3) or Internet Message Access Protocol
(IMAP).
712
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Sending emails
You can configure IBM Integration Bus to send an email, with or without
attachments, to a static or dynamic list of recipients.
Receiving emails
You can configure the EmailInput node to receive an email, with or without an
attachment, from an email server that supports Post Office Protocol 3 (POP3) or
Internet Message Access Protocol (IMAP).
Related reference:
EmailInput node
Use the EmailInput node to retrieve an email, with or without attachments, from
an email server that supports Post Office Protocol 3 (POP3) or Internet Message
Access Protocol (IMAP).
713
Procedure
v Scenario: You do not know the restrictions for choosing names for ESQL
modules or schema scope ESQL and mapping procedures and functions.
v Solution: Module and schema scope procedures and functions cannot have
names starting with IBM_WBIMB_ because IBM_ is reserved for IBM use, and
IBM_WBIMB_ is reserved for IBM Integration Bus.
Error message BIP5431 is issued and the broker fails:
Procedure
v Scenario: Error message BIP5431 is displayed and the broker fails.
v Explanation: When setting output message properties, you have specified an
incorrect physical format name for the message format.
v Solution: The name that you specify for the physical layer must match the name
that you have defined for it. The default physical layer names are Binary1, XML1
and Text1.
You are unable to call Java from ESQL:
Procedure
v Scenario: Your Java class files are not being found.
v Explanation: When creating the class files, you have not placed them in the
correct location within the system CLASSPATH.
v Solution: See the CREATE PROCEDURE statement for further information.
Error message BIP3203 is issued: Format expression is not a valid FORMAT
expression for converting expression to type:
Procedure
v Scenario: Your format expression contains an unrecognized character for the
conversion.
v Explanation: Your format expression for a numeric conversion was used to
convert to or from a DATE, TIME, TIMESTAMP, GMTTIME or
GMTTIMESTAMP variable. Another possible explanation is that your format
expression for a DateTime conversion was used to convert to or from an
INTEGER, DECIMAL or FLOAT variable.
v Solution: Replace the format expression with one from the applicable types. For
more information about valid data types and expressions, see the ESQL reference
topic.
Error message BIP3204 is issued: Input expression does not match FORMAT
expression. Parsing failed to match:
Procedure
v Scenario: You have used an input string that does not match the format
expression.
v Explanation: Your format expression contains data that does not match the
current element of the format expression.
v Solution: Either rewrite the format expression to match the input data, or
modify the input data to match the format expression. For more information
about valid data types and expressions, see the ESQL reference topic.
The CAST function does not provide the expected DST offset for non-GMT time
zones:
714
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Scenario: You are using the CAST function to convert a string to a TIME
variable, in a broker that is running in a time zone other than GMT. The
daylight saving time (DST) offset is not correctly calculated.
v Explanation: If no time zone is associated with the time string passed to CAST,
it is converted to GMT time. If no date is supplied, the current system date is
assumed.
v Solution: Specify the correct time zone and date. See Formatting and parsing
dateTimes as strings for more information.
Error message BIP3205 is issued: The use of a FORMAT expression is not
allowed when converting:
Procedure
v Scenario: You have used a format expression when it is not applicable, for
example when converting from decimal to integer.
v Explanation: The use of format expressions is limited to casting between
datetime and string values or numeric and string values. Your format expression
cannot be applied in this case.
v Solution: Either remove the FORMAT clause, or change the parameters. For
more information about valid data types and expressions, see the ESQL reference
topic.
Related concepts:
ESQL overview
Extended Structured Query Language (ESQL) is a programming language defined
by IBM Integration Bus to define and manipulate data within a message flow.
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Resolving problems when developing message flows on page 708
Use the advice given here to help you to resolve common problems that can arise
when developing message flows.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Handling errors in message flows
The broker provides basic error handling for all your message flows. If basic
processing is not sufficient, and you want to take specific action in response to
certain error conditions and situations, you can enhance your message flows to
provide your own error handling.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Accessing the Properties tree
The Properties tree has its own correlation name, Properties, and you must use this
in all ESQL statements that refer to or set the content of this tree.
715
716
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
5. Check whether the input file causing the problem has been successfully
processed (except for being moved to the archive or backout directory). If it
has been successfully processed, remove it from the input directory.
6. Restart the flow.
If the first error message issued is BIP3332, you do not need to stop the flow
because the FileInput node has detected the problem before starting file
processing. Find the error message referenced in the BIP3332 message. This
second error message identifies the problem and the files and directories causing
it.
During processing of a large file, error message BIP2106 is issued or the broker
stops because of insufficient memory:
Procedure
v Scenario: Large input files cause the broker to issue messages, or stop, because
insufficient memory is available.
v Explanation: The FileInput node can process very large files. Subsequent
processing in the flow attached to its Out terminal might require more memory
than is available to the broker.
v Solution: In most cases, the FileInput node imposes a limit of 100 MB on the
records propagated to the attached flow. If your application needs to access large
amounts of data, you might need to increase its available memory and reduce
the number of available instances. See Resolving problems with performance
on page 823 for more information. If your application needs to process messages
larger than 100 MB, you can override the FileInput node record size limit by
taking the following actions:
Before starting the broker, set the environment variable
MQSI_FILENODES_MAXIMUM_RECORD_LENGTH to the required limit as
an integer number of bytes, for example:
SET MQSI_FILENODES_MAXIMUM_RECORD_LENGTH=268435456
When the broker first initializes a FileInput node, it will use the environment
variable value instead of the default value of 100 MB. Subsequent changes to
the environment variable value will not affect the broker limit until the broker
is restarted.
If the Record detection property is set to Whole File, the limit applies to the
file size. If the Record detection property is set to Fixed Length or Delimited,
the limit applies to the record size. The FileOutput node is not affected by
changes to this limit.
Note: Increasing the FileInput node record size limit might require additional
broker resources, particularly memory. You must thoroughly test and evaluate
your broker's performance when processing these files. The number of factors
that are involved in handling large messages make it impossible to provide
specific broker memory requirements.
You can also reduce the memory required to process the file's contents in the
following ways:
If you are processing a whole file as a single BLOB, split it into smaller
messages by specifying on the Records and Elements tab of the FileInput
node's properties:
- A value of Fixed Length in the Record detection property
- A large value in the Length property, for example 1000000.
717
If you are writing the file's contents to a single output file, specify Record is
Unmodified Data in the FileOutput node's Record definition property; this
reassembles the records in an output file of the same size as the input file.
Wire the FileInput node's End of Data terminal to the FileOutput node's
Finish File terminal. Configure the flow to have no additional instances to
ensure that the output records arrive in sequence.
If you are processing large records using the techniques shown in the Large
Messaging sample, ensure that you do not cause the integration server to
access the whole record. Avoid specifying a value of $Body in the Pattern
property of a Trace node.
If you have specified a value of Parsed Record Sequence in the FileInput
node's Record definition property, the broker does not limit the size of the
record. If subsequent nodes in the message flow try to access an entire large
record, the broker might not have sufficient memory to allow this and stop.
Use the techniques in the Large Messaging sample to limit the memory
required to handle very large records.
Missing or duplicate messages after recovery from failure in a flow attached to a
FileInput node:
Procedure
v Scenario: After the failure of a message flow containing a FileInput node
processing the input file as multiple records, a subsequent restart of the flow
results in duplicate messages being processed. If the flow is not restarted, some
input records are not processed.
v Explanation: If a record produces a message which causes the flow to fail and
retry processing does not solve the problem, the node stops processing the file
and moves it to the backout directory. Records subsequent to the failing message
are not processed. The FileInput node is not transactional; it cannot roll back the
file input records. Transactional resources in the attached flow can roll back the
effects of the failing input record but not preceding records. Records before the
failing record will have been processed but records subsequent to the failing
record will not have been processed. If you restart the flow by moving the input
file from the backout directory to the input directory, messages from records
preceding the point of failure are duplicated.
v Solution: If the input messages have unique keys, modify your flow to ignore
duplicate records. If the messages do not have unique keys but each input file
has a unique name, you can modify your flow to form a unique key based on
the file name and record number. Define a database table and add a Database
node to your flow to record the key of each record that is processed. Add a
DatabaseRoute node to filter input messages so that only records without keys
already in the database are processed. See the Simplified Database Routing
sample to understand how to use the DatabaseRoute node to filter messages.
If you cannot generate unique keys for each record, split your flow into two
separate flows. In the first flow, wire the FileInput node to an MQOutput node
so that each input record is copied as a BLOB to a WebSphere MQ queue.
Ensure there are adequate WebSphere MQ resources, queue size for example, so
that the first flow does not fail. In the second flow, wire an MQInput node to the
flow previously wired to your FileInput node. Configure the MQInput and other
nodes to achieve the desired transactional behavior.
No file is created in the output directory after FileOutput node processing:
Procedure
v Scenario: A file created by the FileOutput node does not appear in the output
directory. The node is configured so that the Record definition property has a
718
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
719
720
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
721
java.security.cert.CertPathBuilderException:
PKIXCertPathBuilderImpl could not build a valid CertPath.;
internal cause is:
java.security.cert.CertPathValidatorException:
The certificate issued by OU=Class 3 Public Primary Certification Authority,
O="VeriSign, Inc.", C=US is not trusted;
internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error
v Explanation: The broker cannot build the entire certificate path. The keystore of
this broker must contain all the certificates in this chain of certificate authorities
(CA). For a broker to verify the digital signature on a signed certificate, the
keystore must contain the public key of the certificate authority (CA) that issued
that certificate. If this public key is itself issued on a signed certificate, the
keystore must contain the public key of the CA that issued that certificate. This
chain continues until the broker reaches a root certificate authority that issues a
self-signed certificate.
v Solution: Verify that you added all the required certificates to your keystore. If
any of the components in the certificate chain are missing from your keystore,
re-create your keystore by using keytool with the genkey option, then reimport
your application certificates.
How do I tell which listener the HTTP and SOAP nodes are using?:
Procedure
v Scenario: HTTP and SOAP nodes that you include in a message flow can use
either the broker-wide listener or the embedded listener that is defined to the
integration server to which the containing message flow is deployed. Both
listeners can handle both HTTP and HTTPS messages by handling the different
message types on different ports.
v Solution: Use the mqsireportproperties command to check the properties that
define what listener is in use.
1. Check whether the broker listener is disabled:
mqsireportproperties IB9NODE -b httplistener -o HTTPListener -n startListener
If this property is false, all HTTP and SOAP nodes in all integration servers
are using an embedded listener.
2. If the broker listener is active, you must check the specific integration server.
For example, check whether the listener in EG_A is being used to process
HTTP messages for HTTP nodes:
mqsireportproperties TEST -e EG_A -o ExecutionGroup
-n httpNodesUseEmbeddedListener
If this property is true, all HTTP nodes that you deploy to this integration
server are using the embedded listener.
Check all integration servers for which you want to know this information.
Check whether the listener in EG_A is being used to process HTTP messages
for SOAP nodes:
mqsireportproperties TEST -e EG_A -o ExecutionGroup
-n soapNodesUseEmbeddedListener
If this property is true (the default value), all SOAP nodes that you deploy to
this integration server are using the embedded listener.
Check all integration servers for which you want to know this information.
3. If both properties are false, all HTTP and SOAP nodes that you deploy to all
integration servers are using the embedded listener. The value for the
integration server property is ignored.
722
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
If you are experiencing problems with message flows that contain HTTP or SOAP
nodes, and you want to collect trace information to provide to your IBM Support
Center, trace the integration server. If you are using the broker-wide listener for
HTTP or SOAP nodes, also trace the HTTPListener component.
How do I collect HTTPListener trace?:
About this task
To gather information about HTTP nodes and listeners, you must start trace, run
your message flows, then retrieve and format the trace information.
Trace the integration server and the HTTPListener component:
Procedure
v Start trace for the integration server.
For example:
mqsichangetrace IB9NODE -t -e default -l debug
v If you are using the broker-wide listener for one or more integration servers,
start trace for the HTTPListener component in one of the following two ways:
Trace all broker components:
1. Run the mqsichangetrace command to start trace with the following
options:
mqsichangetrace component -t -b -l debug
where component is the broker name.
2. Retrieve the HTTPListener trace log by using the mqsireadlog command
with the HTTPListener qualifier for the -b parameter.
For example:
mqsireadlog brokerName -t -b httplistener -f -o listenertrace.xml
Format the trace log by using the mqsiformatlog command to view its
contents.
Trace only the HTTPListener component:
3.
723
724
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v When using secure HTTP connections, you change a DNS host's destination but
the broker is using a cached DNS host definition on page 730
v The TimeoutControl node issues error message BIP4606 or BIP4607 when the
timeout request start time that it receives is in the past on page 731
v You are using a TimeoutControl node with a TimeoutNotification node, with
multiple clients running concurrently, and messages appear to be being
dropped on page 731
v Error message BIP5347 is issued on AIX when you run a message flow that
uses a message set on page 731
v Error message BIP2130 is issued with code page value of -1 or -2 on page 732
v The integration server restarts before an MQGet node has retrieved all
messages on page 732
Messages are directed to the Failure terminal of an MQInput node:
Procedure
v Scenario: Messages that are received at a message flow are directed immediately
to the Failure terminal on the MQInput node (if it is connected), or are rolled
back.
v Explanation: When a message is received by WebSphere MQ, an error is
signalled if the following conditions are all true:
The MQInput node requests that the message content is converted (the
Convert property is set to yes on the node).
The message consists only of an MQMD followed by the body of the
message.
The message format, as specified in the MQMD, is set to MQFMT_NONE.
This error causes the message to be directed to the Failure terminal.
v Solution: In general, you do not need to request WebSphere MQ to convert the
message content, because the broker processes messages in all code pages and
encodings that are supported by WebSphere MQ. Set the Convert property to no
to ensure that messages flow from the MQInput node to successive nodes in the
message flow.
Error message BIP2211 is issued on z/OS by the MQInput node:
Procedure
v Scenario: The following error message is issued by the MQInput node,
indicating an invalid attribute:
BIP2211: (Invalid configuration message containing attribute value [attribute value]
which is not valid for target attribute [target attribute name],
object [object name]; valid values are [valid values])
v Explanation: On z/OS, WebSphere MQ supports serialized access to shared
resources, such as shared queues, through the use of a connection tag
(serialization token) when an application connects to the queue manager that
participates in a queue sharing group. In this case, an invalid attribute has been
specified for the z/OS serialization token.
v Solution: Check that the value that is provided for the z/OS serialization token
conforms to the rules as described in the Application Programming Reference
section of the WebSphere MQ Version 7 product documentation online.
Messages enter the message flow but do not exit:
Procedure
v Scenario: You have sent messages into your message flow, and they have been
removed from the input queue, but nothing appears at the other end of the
message flow.
Chapter 4. Troubleshooting and support
725
v Explanation: Several situations might cause this error to occur. Consider the
following scenarios to try to identify the situation that is causing your failure:
1. Check your message flow in the IBM Integration Toolkit.
You might have connected the MQInput node Failure terminal to a
successive node instead of the Out terminal. The Out terminal is the middle
terminal of the three. Messages directed to an unconnected Out terminal are
discarded.
2. If the Out terminal of the MQInput node is connected correctly to a
successive node, check the broker's local error log for an indication that
message processing has been ended because of problems. Additional
messages give more detailed information.
If the Failure terminal of the MQInput node has been connected (for
example, to an MQOutput node), these messages do not appear.
Connecting a node to a Failure terminal of another node indicates that you
have designed the message flow to deal with all error processing. If you
connect a Failure terminal to an MQOutput node, your message flow ignores
all errors that occur.
3. If the Out terminal of the MQInput node is connected correctly to a
successive node, and the local error log does not contain error messages, turn
user tracing on for the message flow:
a. Open the IBM Integration Explorer.
b. In the Navigator view, expand the Integration Nodes folder.
c. Right-click the message flow, and click User TraceNormal.
This action produces a user trace entry from only the nodes that the message
visits.
On distributed systems, you can retrieve the trace entries by using the
mqsireadlog command, format them by using the mqsiformatlog command,
and view the formatted records to check the path of the message through the
message flow.
For z/OS, edit and submit the BIPRELG job in COMPONENTPDS
to execute the mqsireadlog and mqsiformatlog commands to process traces.
4. If the user trace shows that the message is not taking the expected path
through the message flow, increase the user trace level to Debug by selecting
the message flow, right-clicking it, and clicking User Trace > Debug.
z/OS
Send your message into the message flow again. Debug-level trace produces
much more detail about why the message is taking a particular route, and
you can then determine the reasons for the actions taken by the message
flow.
Do not forget to turn tracing off when you have solved the problem, because
performance might be adversely affected.
5. If the MQPUT command to the output queue that is defined on the
MQOutput node is not successful (for example, the queue is full or put is
disabled), the final destination of a message depends on:
Whether the Failure terminal of the MQOutput node is connected.
Whether the message is being processed transactionally (which in turn
depends on the transaction mode setting of the MQInput node, the
MQOutput node, and the input and output queues).
Whether the message is persistent or nonpersistent. When transaction
mode is set to the default value of Automatic, message transactionality is
726
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
derived from the way that it was specified at the input node. All messages
are treated as persistent if transaction mode=yes, and as nonpersistent if
transaction mode=no.
In general, if a path is not defined for a failure (that is, neither the Catch
terminal nor the Failure terminal of the MQInput node is connected):
Non-transactional messages are discarded.
Transactional messages are rolled back to the input queue to be tried
again:
- If the backout count of the message is less than the backout threshold
(BOTHRESH) of the input queue, the message is tried again and sent to
the Out terminal.
- When the backout count equals or exceeds the backout threshold, one
of the following might happen:
v The message is placed on the backout queue, if one is specified
(using the BOQNAME attribute of the input queue.)
v The message is placed on the dead-letter queue, if there is no backout
queue defined or if the MQPUT to the backout queue fails.
v If the MQPUT to the dead-letter queue fails, or if there is no
dead-letter queue defined, then the message flow loops continuously
trying to put the message to the dead-letter queue.
If a path is defined for the failure, then that path defines the destination of
the message. If both the Catch terminal and the Failure terminal are
connected, the message is propagated through the Catch terminal.
6. If your message flow uses transaction mode=yes on the MQInput node
properties, and the messages are not appearing on an output queue, check
the path of the message flow.
If the message flow has paths that are not failures (but that do not end in
an output queue), either:
- The message flow has not failed and the message is not backed out.
- The message flow is put to an alternative destination (for example, the
Catch terminal, the dead-letter queue, or the queue's backout queue).
Check that all possible paths reach a final output node and do not reach a
dead end. For example, check that you have:
- Connected the Unknown terminal of a Filter node to another node in
the message flow.
- Connected both the True and False terminals of a Filter node to another
node in the message flow.
Your integration server is not reading messages from the input queues:
Procedure
v Scenario: Your integration server has started, but is not reading messages from
the specified input queues.
v Explanation: A started integration server might not read messages from the
input queues of the message flows because previous errors might have left the
queue manager in an inconsistent state.
v Solution: Complete the following steps:
1. Stop the broker.
2. Stop the WebSphere MQ listener.
3. Stop the WebSphere MQ channel initiator.
4. Stop the WebSphere MQ queue manager.
Chapter 4. Troubleshooting and support
727
5.
6.
7.
8.
Restart
Restart
Restart
Restart
the
the
the
the
z/OS
On z/OS, an SQLSTATE of HY014 might be returned with an SQL
code of -99999, indicating that the DataFlowEngine process has reached the DB2
z/OS process limit of 254 prepared SQL statement handles.
v Explanation: When a database call is made from within a message flow node,
the flow constructs the appropriate SQL, which is sent using ODBC to the
database manager. As part of this process, the SQL statement is prepared using
the SQLPrepare function, and a statement handle is acquired so that the SQL
statement can be executed.
For performance reasons, after the statement is prepared, the statement and
handle are saved in a cache to reduce the number of calls to the SQLPrepare
function. If the statement is already in the cache, the statement handle is
returned so that it can be re-executed with newly bound parameters.
The statement string is used to perform the cache lookup. By using hardcoded
SQL strings that differ slightly for each message, the statement is not found in
the cache, and an SQLPrepare function is always performed (and a new ODBC
cursor is opened). When using PASSTHRU statements, use parameter markers
so that the same SQL prepared statement can be used for each message
processed, with the parameters being bound at run time. This approach is more
efficient in terms of database resources and, for statements that are executed
repeatedly, it is faster.
However, it is not always possible to use parameter markers, or you might want
to dynamically build the SQL statement strings at run time. This situation
potentially leads to many unique SQL statements being cached. The cache itself
does not grow that large, because these statements themselves are generally not
big, but many small memory allocations can lead to memory fragmentation.
v Solution: If you encounter these types of situations, disable the caching of
prepared statements by setting the MQSI_EMPTY_DB_CACHE environment
variable to an arbitrary value. When this environment variable has been created,
the prepared statements for that message flow are emptied at the end of
processing for each message. This action might cause a slight performance
degradation because every SQL statement is prepared.
Your integration server hangs, or ends with a core dump:
728
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Scenario: While processing a message, an integration server either hangs with
high CPU usage, or ends with a core dump. The stack trace from the core dump
or abend file is large, showing many calls on the stack. Messages written to the
system log might indicate "out of memory" or "bad allocation" conditions. The
characteristics of the message flow in this scenario often include a hard-wired
loop around some of the nodes.
v Explanation: When a message flow thread executes, it requires storage to
perform the instructions that are defined by the logic of its connected nodes.
This storage comes from the integration server's heap and stack storage. The
execution of a message flow is constrained by the stack size, the default value of
which differs depending on the operating system.
v Solution: If a message flow that is larger than the stack size is required, you can
increase the stack size limit and then restart the brokers that are running on the
system so that they use the new value. For information on setting the stack size
for your operating system, see System resources for message flow
development on page 517.
Your XSLTransform node is not working after deployment and errors are issued
indicating that the style sheet could not be processed:
Procedure
v Scenario: Your XSLTransform node is not working after deploying resources,
and errors are displayed indicating that the style sheet could not be processed.
v Solution:
If the broker cannot find the style sheet or XML files that are required,
migrate the style sheets or XML files with relative path references.
If the contents of a style sheet or XML file are damaged and therefore no
longer usable (for example, if a file system failure occurs during a
deployment), redeploy the damaged style sheet or XML file.
Output messages are not sent to expected destinations:
Procedure
v Scenario: You have developed a message flow that creates a destination list in
the LocalEnvironment tree. The list might contain queues for the MQOutput
node, labels for a RouteToLabel node, or URLs for an HTTPRequest node.
However, the messages are not reaching these destinations, and there are no
error messages.
v Solution:
Check that you have set Compute mode to a value that includes the
LocalEnvironment in the output message, for example All. The default setting
of Compute mode is Message, and all changes that you make to
LocalEnvironment are lost.
Check your ESQL statements. The content and structure of LocalEnvironment
are not enforced, so the ESQL editor (and content assist) does not provide
guidance for field references, and you might have specified one or more of
these references incorrectly.
Some example procedures to help you set up destination lists are provided in
Populating Destination in the local environment tree. You can use these
procedures unchanged, or modify them for your own requirements.
You experience problems when sending a message to an HTTP node's URL:
729
Procedure
v Scenario: Sending a message to an HTTP node's URL causes a timeout, or the
message is not sent to the correct message flow.
v Explanation: The following rules are true when URL matching is performed:
There is one-to-one matching of HTTP requests to HTTPInput nodes. For each
HTTP request, only one message flow receives the message. This statement is
true even if two message flows are listening on the same URL. Similarly, you
cannot predict which MQInput node that is listening on a particular queue
will receive a message.
Messages are sent to wildcard URLs only if no other URL is matched.
Therefore a URL of /* receives all messages that do not match another URL.
Changing a URL in an HTTPInput node does not automatically remove the
entry from the HTTP listener. For example, if a URL /A is used first, then
changed to a URL of /B, the URL of /A is still used to listen on, even though
there is no message flow to process the message. This incorrect URL does get
removed after the broker has been stopped and restarted twice.
v Solution: To find out which URL the broker is currently listening on, look at the
file wsplugin6.conf in the following location:
Linux
UNIX
broker_name/config
Windows
On Windows, %ProgramData%\IBM\MQSI\components\broker_name\
config, where %PROGRAMDATA% is the environment variable that defines the
system working directory. The default directory depends on the operating
system.
If problems persist, empty wsplugin6.conf, restart the broker, and redeploy the
message flows.
When using secure HTTP connections, you change a DNS host's destination but
the broker is using a cached DNS host definition:
Procedure
v Scenario: You are using a broker with secure HTTP connections that use the Java
virtual machine (JVM). You have changed a DNS destination, but the broker is
using a cached DNS host definition, therefore you have to restart the broker to
use the new definition.
v Explanation: By default, Java caches the host lookup from DNS, which is not
appropriate if you want to look up the host name each time or if you want to
cache it for a limited amount of time. This situation occurs only when you use
SSL connections. (When using a secure HTTPS connection, the HTTPRequest
node uses the SSL protocol, which issues Java calls, whereas a non-SSL protocol
uses native calls.)
To avoid this situation, you can empty the cache on the JVM by setting the
networkaddress.cache.ttl property to zero. This property dictates the caching
policy for successful name lookups from the name service. The value is specified
as an integer to indicate the number of seconds for which to cache the successful
lookup. The default value of this property is -1, which indicates that the
successful DNS lookup value is cached indefinitely in the JVM. If you set this
property to 0 (zero), the successful DNS lookup is not cached.
v Solution: To pick up DNS entry changes without the need to stop and restart
the broker and JVM, disable DNS caching. Edit file $JAVA_HOME/jre/lib/
security/java.security, and set the value of the networkaddress.cache.ttl
property to 0 (zero).
730
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The TimeoutControl node issues error message BIP4606 or BIP4607 when the
timeout request start time that it receives is in the past:
Procedure
v Scenario: When a TimeoutControl node receives a timeout request message that
contains a start time in the past, it issues error message BIP4606 or BIP4607: The
Timeout Control Node '&2' received a timeout request that did not contain
a valid timeout start date/time value.
v Explanation: The start time in the message can be calculated by adding an
interval to the current time. If a delay occurs between the node that calculates
the start time and the TimeoutControl node, the start time in the message will
have passed by the time it reaches the TimeoutControl node. If the start time is
more than approximately five minutes in the past, a warning is issued and the
TimeoutControl node rejects the timeout request. If the start time is less than five
minutes in the past, the node processes the request as if it were immediate.
v Solution: Ensure that the start time in the timeout request message is a time in
the future.
You are using a TimeoutControl node with a TimeoutNotification node, with
multiple clients running concurrently, and messages appear to be being
dropped:
Procedure
v Scenario: You are using a TimeoutControl node with a TimeoutNotification
node, with multiple clients running concurrently, and messages appear to be
being dropped. In the timeout request message, allowOverwrite is set to TRUE.
v Explanation: If multiple clients are running concurrently, and allowOverwrite is
set to TRUE in the timeout request message, messages can overwrite each other.
v Solution: Ensure that different TimeoutNotification nodes that are deployed on
the same broker do not share the same unique identifier.
Error message BIP5347 is issued on AIX when you run a message flow that uses
a message set:
About this task
Procedure
v Scenario: Error message BIP5347 (MtilmbParser2: RM has thrown an unknown
exception) is issued on AIX in either of these circumstances:
When you are deploying a message set
When you are running a message flow that uses a message set
v Explanation: BIP5347 is typically caused by a database exception, and it is
issued when an integration server tries to load an MRM dictionary for use by a
message flow. This process involves two steps:
1. The integration server retrieves the dictionary and wire format descriptors
from the broker data store.
2. The integration server stores the dictionary in the memory that a message
flow would use to process an MRM message.
BIP5347 is typically issued during step 1. This problem can appear to be
intermittent; if you restart the integration server, the message is sometimes
processed correctly.
BIP5347 might also be caused by the presence of a datetime value constraint in
the message set, which causes the error each time the message set is deployed.
v Solution: To identify the cause of the error, capture a service level debug trace to
confirm that the database exception is occurring.
Chapter 4. Troubleshooting and support
731
732
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
733
message flows.
MQInput node
Use the MQInput node to receive messages from clients that connect to the broker
by using the WebSphere MQ Enterprise Transport, and that use the MQI and AMI
application programming interfaces.
MQOutput node
Use the MQOutput node to send messages to clients that connect to the broker
using the WebSphere MQ Enterprise Transport and that use the MQI and AMI
application programming interfaces.
Related information:
WebSphere MQ Version 7 product documentation
734
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
This example shows that one client is connected on TCP port 1109, and that the
client is connecting from the IP address 9.17.137.11.
You can run netstat on that system to find out in which process that client is
running.
Use the following IMS command to view the TPIPEs that are created for those
connections:
/DISPLAY TMEMBER IMSConnect_Name TPIPE ALL
For transactions that have a commit mode of 1, the TPIPE name is the port
number that is used for that interaction (for example, 1080 in the previous
example).
For transactions that have a commit mode of 0, the TPIPE name is the same
as the client ID (for example, HWSEHYMO in the previous example). The
client ID is generated automatically in the IMSRequest node.
How can I discover the correct settings for Hostname, Portnumber, and
DataStoreName?:
Procedure
v Scenario: Your broker fails to connect to IMS and you want to verify your
settings.
v Explanation: You can use SDSF on z/OS to issue a command to see members of
the XCF group to which your IMS control region belongs. One of these members
should be IMS Connect. You can then run a command against IMS Connect to
discover these properties.
v Solution: Use SDSF to enter the following command:
/xx/display OTMA
where xx is the reply ID for your IMS control region job.
For example, if you see ....... *26 DFS996I *IMS READY* IM0A in S.log, run
the command /26/DISPLAY OTMA.
The output from that command shows the name of the IMS Connect that is in
the same XCF group as this IMS control region:
DFS000I
GROUP/MEMBER
XCF-STATUS USER-STATUS
SECURITY TIBINPT SMEM IM0A
DFS000I
DRUEXIT T/O
IM0A
DFS000I
IM0AGRNM
IM0A
DFS000I
-IM0A
ACTIVE
SERVER
CHECK
IM0A
DFS000I
-IM0A
N/A
0
IM0A
DFS000I
-IM0ACONN
ACTIVE
ACCEPT TRAFFIC CHECK
05000
IM0A
DFS000I
*08350/175112* IM0A
Use SDSF to enter the following QUERY MEMBER command, where IM0ACONN is
the name of your IMS Connect job that was reported by the previous command:
/F IM0ACONN,QRY MEMBER TYPE(IMSCON)
The output is in the following format:
/F IM0ACONN,QRY MEMBER TYPE(IMSCON)
HWSC0001I
HWS ID=IM0ACONN RACF=Y PSWDMC=N
HWSC0001I
MAXSOC=50 TIMEOUT=0
HWSC0001I
RRS=N
STATUS=REGISTERED
HWSC0001I
VERSION=V10 IP-ADDRESS=009.017.252.024
HWSC0001I
SUPER MEMBER NAME=
HWSC0001I
ADAPTER=N
HWSC0001I
DATASTORE=IM0A
STATUS=ACTIVE
HWSC0001I
GROUP=IM0AGRNM MEMBER=IM0ACONN
HWSC0001I
TARGET MEMBER=IM0A
HWSC0001I
DEFAULT REROUTE NAME=HWSDEF
Chapter 4. Troubleshooting and support
735
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
HWSC0001I
CLNTPORT IP-ADDRESS
1109 009.017.137.11
736
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
IBM Integration Bus acts as a client to IMS Connect, and opens connections to
IMS Connect. Therefore, find out how many connections are required by IBM
Integration Bus by gathering the following information:
The number of message flows with IMS nodes that are deployed
For those message flows, the values of the Additional instances property
The maximum number of connections required for each broker is determined by
the number of threads that can be running concurrently in the IMS nodes. In the
following example, three message flows with IMS nodes exist:
Message flow A has 0 additional instances, therefore one thread is running.
Message flow B has 3 additional instances, therefore four threads can be
running concurrently.
Message flow C has 4 additional instances, therefore five threads can be
running concurrently.
In this example, the maximum number of connections required by the broker is
10 (1+4+5). If you have four other similar brokers, all connecting to the same
instance of IMS Connect, which has five ports configured, you would set the
maximum number of sockets (MAXSOC) to at least 55 (the maximum number of
connections for five brokers plus the number of ports: 10x5+5).
Related concepts:
IBM Information Management System (IMS)
IMS is a message-based transaction manager and hierarchical-database manager for
z/OS. External applications can use transactions to interact with applications that
run inside IMS.
Execution and threading models in a message flow
The execution model is the system used to start message flows which process
messages through a series of nodes.
Related tasks:
Changing connection information for the IMSRequest node
You can create a configurable service that the IMSRequest node or message flow
refers to at run time for connection information, instead of defining the connection
properties on the node or the message flow. The advantage being that you can
change the host name, performance, and security values without needing to
redeploy your message flow.
Related reference:
IMSRequest node
Use the IMSRequest node to send a request to run a transaction on a local or
remote IMS system, and wait for a response. IMS Connect must be configured and
running on the IMS system.
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
Configurable message flow properties
When you add a message flow to a broker archive (BAR) file in preparation for
deploying it to a broker, you can set additional properties that influence its run
time operation. These properties are available for review and update when you
select the Manage and Configure tab for the broker archive file.
737
738
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
1. Create a reference to the tree and the parser in the module's main procedure.
2. Associate the reference to the correlation name, for example InputRoot or
Root. Alternatively, create the OutputRoot.parser node, where parser is the
name of the parser that you want to use.
3. Pass the reference as a parameter to an ESQL subroutine that identifies the
XSD type of the reference.
Results
This practice is beneficial because the passed reference supports content assistance
and validation for ESQL. The message type content properties open, or open
defined are not used in validation, and the assumption is that this property is
closed.
A $db:select out of scope error is generated when you map from a database
source:
Procedure
v Scenario: You have specified a database as the data source and when you save
the map file, there is an error saying $db:select out of scope
v Explanation: A $db:select expression must be within the scope of the $db:select
entry in the Map Script column of the Spreadsheet pane, meaning that it must
be a descendant of the select statement. If a $db:select expression is out of scope
the Graphical Data Mapping editor moves the $db:select entry to a position
where the $db:select expression is in scope. The $db:select expression can remain
out of scope if it is positioned above the $db:select entry in the Map Script
column of the Spreadsheet pane.
v Solution: Delete the out of scope $db:select expression or move the $db:select
entry in the Map Script column. You can drag the element out of the 'for' row,
and then drag the $db:select entry in the Map Script column higher in the
message, above the out of scope $db:select expression. Ensure that the out of
scope $db:select expression is now a descendant of the $db:select entry.
A $db:proc out of scope error is generated when you map from a database
stored procedure:
Procedure
v Scenario: You have specified a stored procedure as the source and when you
save the map file, there is an error saying $db:proc out of scope
v Explanation: A $db:proc expression must be within the scope of the $db:proc
entry in the Map Script column of the Spreadsheet pane, meaning that it must
be a descendant of the stored procedure statement. If a $db:proc expression is
out of scope the Graphical Data Mapping editor moves the $db:proc entry to a
position where the $db:proc expression is in scope. The $db:proc expression can
remain out of scope if it is positioned above the $db:proc entry in the Map
Script column of the Spreadsheet pane.
v Solution: Delete the out of scope $db:proc expression or move the $db:proc
entry in the Map Script column. You can drag the $db:proc entry in the Map
Script column higher in the message, above the out of scope $db:proc
expression. Ensure that the out of scope $db:proc expression is now a
descendant of the $db:proc entry.
A $db:func out of scope error is generated when you map from a database
user-defined function:
739
Procedure
v Scenario: You have specified a user-defined function as the source and when
you save the map file, there is an error saying $db:func out of scope
v Explanation: A $db:func expression must be within the scope of the $db:func
entry in the Map Script column of the Spreadsheet pane, meaning that it must
be a descendant of the user defined function statement. If a $db:func expression
is out of scope the Graphical Data Mapping editor moves the $db:func entry to a
position where the $db:func expression is in scope. The $db:func expression can
remain out of scope if it is positioned above the $db:func entry in the Map
Script column of the Spreadsheet pane.
v Solution: Delete the out of scope $db:func expression or move the $db:func
entry in the Map Script column. You can drag the $db:func entry in the Map
Script column higher in the message, above the out of scope $db:func
expression. Ensure that the out of scope $db:func expression is now a
descendant of the $db:func entry.
Target is not referencing a valid variable warning when you set the value of a
target:
Procedure
v Scenario: You have set the value for a target to a variable, such as a WebSphere
MQ constant, and when you save the map file the warning The target
"$target" is not referencing a valid variable is generated.
v Explanation: The variable that you have referenced is not recognized. For
example, you might have entered an expression of the form $mq: followed by a
WebSphere MQ constant, but the constant is not recognized. This might be
because the variable has been entered incorrectly or it is not supported.
Alternatively, you might be referencing a new variable or constant that can be
resolved only at run time. If this is the case you can ignore the warning.
v Solution: Try one of the following to solve the problem:
Check that the variable has been entered correctly.
If you are using WebSphere MQ constants, use Edit > Content Assist to
select from the list of available WebSphere MQ constants.
There are missing or unexpected targets in a message map:
Procedure
v Scenario: In your message map, warning messages are displayed that indicate a
target element is missing, or a target element is at an unexpected location. As a
result the output message generated by the message map might be incorrect.
v Explanation: If target elements are missing from the Spreadsheet pane when you
edit and save the message map, a warning is displayed that a target is missing.
This situation can occur if you use the Insert Children wizard and do not select
all the required elements, or if you create mappings using the drag-and-drop
method and do not create mappings for all the required fields. If target elements
in the Spreadsheet pane are in an unexpected order, a warning that the element
is unexpected at that location is displayed. This situation can occur if you drag
elements to new locations in the Spreadsheet pane.
v Solution: To solve the problem:
Use Insert Children on the parent element to add any missing target
elements to the Spreadsheet pane.
Drag any target elements that are in an unexpected location to the correct
location. Use the message tree in the Target pane as a guide to the expected
structure of the output message.
740
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Error message BIP6118 is issued: The remaining bitstream is too small contain
the indicated structure.:
Procedure
v Scenario: You have used an unsupported message domain for a target message
in your message map.
v Explanation: The message domain that is associated with a target message is
determined by the Message Domain property of your message set. Mapping
nodes generate a target message that matches the message domain of the
message set. Using a message domain that is not supported by the message
mapper can result in an output message with a structure that is not valid for the
chosen parser.
v Solution: To solve the problem, change the target message domain for your
message set.
Error message BIP4680 is issued: Unsupported message domain encountered in
mapping node.:
Procedure
v Scenario: You have used an unsupported message domain for a target message
in your message map, for example BLOB.
v Explanation: The message domain that is associated with a target message is
determined by the Message Domain property of your message set. Mapping
nodes generate a target message that matches the message domain of the
message set. Using a message domain that is not supported by the message
mapper can result in an output message with a structure that is not valid for the
chosen parser.
v Solution: To solve the problem, change the target message domain for your
message set.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Resolving problems when developing message flows on page 708
Use the advice given here to help you to resolve common problems that can arise
when developing message flows.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Handling errors in message flows
The broker provides basic error handling for all your message flows. If basic
processing is not sufficient, and you want to take specific action in response to
certain error conditions and situations, you can enhance your message flows to
provide your own error handling.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Accessing the Properties tree
The Properties tree has its own correlation name, Properties, and you must use this
Chapter 4. Troubleshooting and support
741
in all ESQL statements that refer to or set the content of this tree.
Creating destination lists
Create a list of destinations to indicate where a message is sent.
Related reference:
Message flows
Use the reference information in this section to develop your message flows and
related resources.
742
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Solution: To see the alert, refresh the message flow, or disconnect, then
reconnect to the domain.
Data that the Trace node sends to the syslog on UNIX is truncated:
Procedure
v Scenario: You are using a Trace node on UNIX and have set the Destination
property to Local Error Log. You send a message to the Trace node that consists
of multiple lines, but the message that appears in the syslog is truncated at the
end of the first line.
v Explanation: On UNIX, syslog entries are restricted in length and messages that
are sent to the syslog are truncated by the new line character.
v Solution: To record a large amount of data in a log on UNIX, set the
Destination property on the Trace node to File or User Trace instead of Local
Error Log.
Related concepts:
Message flows overview
A message flow is a sequence of processing steps that run in the broker when an
input message is received.
Related tasks:
Resolving problems when developing message flows on page 708
Use the advice given here to help you to resolve common problems that can arise
when developing message flows.
Developing integration solutions
IBM Integration Bus provides a flexible environment in which you can develop
integration solutions to transform, enrich, route, and process your business
messages and data. You can integrate client applications that use different
protocols and message formats.
Handling errors in message flows
The broker provides basic error handling for all your message flows. If basic
processing is not sufficient, and you want to take specific action in response to
certain error conditions and situations, you can enhance your message flows to
provide your own error handling.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Related reference:
Message flows
Use the reference information in this section to develop your message flows and
related resources.
743
v Error messages are issued when classes cannot be found, or when problems
occur with Java initialization
v The WebSphere Adapters are not visible when you run ITLM on page 745
v A message flow with an SAPRequest, SiebelRequest, or PeopleSoftRequest node
has deployed successfully, but message BIP3540 is issued indicating that
connection failed on page 745
SAP nodes
v You have deployed an SAP inbound adapter but do not receive expected
messages on page 746
v You have imported an existing project into your workspace, but messages are
issued when you try to build SAP message sets on page 746
v An error is issued when you use the message set that is generated by the
Adapter Connection wizard on page 746
v When you run the SAP samples on Linux or UNIX, IBM Integration Bus does
not connect to the SAP gateway on page 746
v SAP inbound messages (ALE and BAPI) appear to be missing on page 747
v When two ALE inbound modules use the same RFC program ID with SAP JCo
version 3.0.2, NullPointer exceptions are logged in the JCo trace and the Adapter
does not receive IDocs on page 747
Siebel nodes
v You are using a SiebelInput node with the delivery type set to unordered, and
error message BIP3450 is issued with a NullPointer exception on page 747
JD Edwards nodes
v Error message BIP3450 is issued when you include a JDEdwardsRequest node
in a message flow and try to connect to a JD Edwards EnterpriseOne server on
page 748
Error messages BIP3414 and BIP3450 are issued when you deploy a WebSphere
Adapters input node:
Procedure
v Scenario: When you deploy a message flow that contains a SiebelInput node,
error message BIP3414 is issued.
v Explanation: The error messages explain that the SiebelInput node could not
register with the adapter component to receive events. This problem can be
caused when the broker does not know where to find the client libraries for the
Siebel Enterprise Information Service (EIS). You might also encounter this
problem if you are using the WebSphere Adapter for Siebel on an unsupported
operating system.
v Solution: Use the mqsireportproperties and mqsichangeproperties commands
to configure the broker with the location of the Siebel client libraries, as
described in Preparing the environment for WebSphere Adapters nodes.
Error messages are issued when classes cannot be found, or when problems
occur with Java initialization:
Procedure
v Scenario: You are deploying WebSphere Adapters, and error messages are issued
that indicate that classes cannot be found, or problems are occurring with Java
initialization. BIP3521 and BIP3522 error messages might also be issued.
744
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: The SAP, Siebel, and PeopleSoft adapters need client libraries from
the manufacturer of the Enterprise Information System (EIS). If these libraries
are missing, not installed correctly, or at an incorrect level, errors are issued.
v Solution: To solve this problem, complete the following steps.
1. On the broker that you are using to change the configurable service of the
adapter, run the mqsichangeproperties command to identify the location of
the Java and native libraries.
2. Ensure that the libraries are installed correctly, are valid for your operating
system, and have the correct permission so that the broker can access them.
3. Ensure that your operating system is supported by IBM Integration Bus and
the EIS provider. For details about supported operating systems, visit the
IBM Integration Bus Requirements Web site.
The WebSphere Adapters are not visible when you run ITLM:
Procedure
v Scenario: The adapter is not visible when you run the IBM Tivoli License
Manager (ITLM).
v Explanation: If you want to use ITLM with the WebSphere Adapters, you must
activate the ITLM file for each adapter.
v Solution: Follow the instructions in Activating IBM License Metric Tool for
WebSphere Adapters.
A message flow with an SAPRequest, SiebelRequest, or PeopleSoftRequest node
has deployed successfully, but message BIP3540 is issued indicating that
connection failed:
Procedure
v Scenario: From an SAPRequest, SiebelRequest, or PeopleSoftRequest node, an
exception is thrown to indicate that the node is unable to make a connection
even though the message flow has deployed successfully. The exception contains
message BIP3540 with inserted text that indicates that connection failed. For
example, for SAP, the inserted text is:
Exception in connecting to SAP:Connect to SAP gateway failed
Connect_PM GWHOST= invalidhost.test.co, GWSERV=sapgw00, ASHOST= invalidhost.test.co,
SYSNR=00
LOCATION CPIC (TCP/IP) on local host ERROR partner not reached (host
invalidhost.test.co, service 3300) TIME Mon Dec 01 16:43:52 2008 RELEASE 640
COMPONENT NI (network interface) VERSION 37 RC -10 MODULE nixxi_r.cpp LINE 8719
DETAIL NiPConnect2 SYSTEM CALL SiPeekPendConn ERRNO 10061 ERRNO TE
745
You have deployed an SAP inbound adapter but do not receive expected
messages:
Procedure
v Scenario: You have deployed an SAP inbound adapter but do not receive the
IDoc messages that you expected to receive.
v Explanation: If you have not received IDoc messages from SAP, it is possible
that deployment was unsuccessful or the SAP server has not started.
v Solution: Check user trace for message BIP3484 occurring at the time of
deployment. The adapter component writes diagnostic information to this
message, in an insert that begins "CWYAP...". If this message is issued, it
explains the cause of the problem.
You have imported an existing project into your workspace, but messages are
issued when you try to build SAP message sets:
Procedure
v Scenario: You have imported an existing project into your workspace, but when
you try to build an SAP message set, you see the message set compile error
message BIP0182.
v Explanation: This error occurs when you choose the option to "Import existing
projects into your workspace" from the Import dialog box. By choosing this
option when you import, a link is created from the workspace to the existing
projects in an external location and a required file is not available to the
workspace. To copy the entire project into your workspace, use the option to
import the Project Interchange (PI) file.
v Solution: When you import an exiting SAP project into your workspace, click
File > Import, expand the Other folder, and click Project Interchange. For more
information, see Importing resources from previous versions.
An error is issued when you use the message set that is generated by the
Adapter Connection wizard:
Procedure
v Scenario: You run the Adapter Connection wizard and select an inbound SAP
IDoc. You run the wizard again, but this time you select an outbound SAP IDoc.
When you use the message set that is generated, the following error is issued:
Selector exception caught from generateEISFunctionname, commonj.connector.runtime.SelectorException:
commonj.connector.runtime.SelectorException: For the IDoc type SapYwmspgi01, operation key=YWMSPGIWMS not
found using the application-specific information {Create={MsgType=, MsgCode=, MsgFunction=}} verify appropriate
combination of MsgType, MsgCode, MsgFunction is set in SapYwmspgi01, application-specific information.
v Explanation: If you run the Adapter Connection wizard for an inbound SAP
IDoc, then you run the wizard again for an outbound SAP IDoc, the outbound
IDoc definition replaces the inbound IDoc definition. Information that is stored
in the inbound definition is used to map MsgType, MsgCode, and MsgFunction
to a method binding. The outbound definition does not contain these mappings,
so processing of the inbound IDoc fails.
v Solution: To avoid this error, ensure that inbound and outbound SAP IDocs
have different names if they are stored in the same message set.
When you run the SAP samples on Linux or UNIX, IBM Integration Bus does
not connect to the SAP gateway:
Procedure
v Scenario: When you run the SAP samples on Linux or UNIX, the message flow
deploys successfully, but a connection is not established between IBM
Integration Bus and the SAP system. You might see the following error message:
746
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: SAP JCo version 3.0.2 does not support the use of two ALE
inbound modules with the same RFC program ID.
v Solution: To solve this problem, download a hotfix from SAP; the SAP ticket
reference number is 584247/2009.
You are using a SiebelInput node with the delivery type set to unordered, and
error message BIP3450 is issued with a NullPointer exception:
747
Procedure
v Scenario: You are using a SiebelInput node, you have set the delivery type to
unordered in the Adapter Connection wizard, and the minimum number of
connections is 1 or less. The following exception is shown in user trace:
RecoverableException BIP3450E: An adapter error occurred during the
processing of a message. The adapter error message is
java.lang.NullPointerException.
v Explanation: When using unordered events, the minimum connections
(MinimumConnections) and maximum connections (MaximumConnections)
properties must be greater than 1 for event delivery to be successful.
v Solution: Set the MinimumConnections and MaximumConnections properties on the
Adapter Connection wizard to values greater than 1. For example, set the
minimum number of connections to 2 and the maximum number of connections
to 4.
Error message BIP3450 is issued when you include a JDEdwardsRequest node in
a message flow and try to connect to a JD Edwards EnterpriseOne server:
Procedure
v Scenario: You have created a message flow that contains a JDEdwardsRequest
node, but error message BIP3450 is issued, indicating that the node is unable to
connect to the JD Edwards EnterpriseOne server.
v Explanation: This error message indicates that the JDEdwardsRequest node is
trying to connect to the JD Edwards EnterpriseOne server but is unable to do so.
This error can be caused by the following situations.
The JD Edwards EnterpriseOne server is not running.
The JD Edwards adapter has been configured with incorrect connection
details; for example, the name of the JD Edwards EnterpriseOne Environment
to which to connect.
The JDBC drivers that are required to connect to the JD Edwards
EnterpriseOne server are missing from the class path. The following table lists
the required JDBC driver files for each database.
Database
Implementation class
Oracle
tsnames.ora
classes12.zip
oracle.jdbc.driver.OracleDriver
sqljdbc.jar
com.ibm.microsoft.sqlserver.jdbc.SQLServerDriver
SQLServer
jt400.jar
com.ibm.as400.access.AS400JDBCDriver
db2java.zip
com.ibm.db2.jdbc.app.DB2Driver
db2jcc.jar
db2jcc_license_cu.jar
com.ibm.db2.jcc.DB2Driver
db2jcc4.jar
com.ibm.db2.jcc.DB2Driver
AS/400
748
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
PeopleSoft.
Related tasks:
Developing message flows that use WebSphere Adapters
For information about how to develop message flows that use WebSphere
Adapters, see the following topics.
Preparing the environment for WebSphere Adapters nodes
Before you can use the WebSphere Adapters nodes, you must set up the broker
runtime environment so that you can access the Enterprise Information System
(EIS).
Deploying a message flow that uses WebSphere Adapters
Deploy the resources that are generated when you run the Adapter Connection
wizard by adding them to a broker archive (BAR) file.
Changing connection details for SAP adapters
SAP nodes can get SAP connection details from either the adapter component or a
configurable service. By using configurable services, you can change the connection
details for adapters without the need to redeploy the adapters. To pick up new
values when a configurable service is created or modified, you must reload the
broker or integration server to which the adapter was deployed, by using the
mqsistop and mqsistart commands, or the mqsireload command.
Changing connection details for Siebel adapters
Siebel nodes can get Siebel connection details from either the adapter component
or a configurable service. By using configurable services, you can change the
connection details for adapters without the need to redeploy the adapters. To pick
up new values when a configurable service is created or modified, you must
reload the broker or integration server to which the adapter was deployed, by
using the mqsistop and mqsistart commands, or the mqsireload command.
Related reference:
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
IBM Integration Bus Requirements
749
v The Message Flow editor experiences problems when opening a message flow,
and opens in error mode
v A message flow has subflows with the same user-defined property set to
different values, but only one value is set at run time
v You want to move resources to a new broker schema that you have created but
it is not visible in the Application Development view
v A selector exception is raised when you use WebSphere Adapters on page 751
The values of your promoted properties are lost after editing:
Procedure
v Scenario: You edited a message flow using the Message Flow editor, and the
values of your promoted properties are lost.
v Explanation: The values of promoted properties for nodes with more than a
single subflow definition (that is, two identically named subflows in the same
project reference path) are lost if the flow is edited and saved.
v Solution: To avoid this problem, ensure that each subflow in your project has a
different name.
The Message Flow editor experiences problems when opening a message flow,
and opens in error mode:
Procedure
v Scenario: You attempt to open an existing message flow in the Message Flow
editor and it opens in read-only error mode, displaying a list of parsing or
loading errors. The message flow is not open and a message is displayed
indicating that the message flow file is not valid.
v Explanation: The message flow file is unreadable or is corrupted, and the
Message Flow editor cannot render the model graphically.
v Solution: Contact IBM Customer Support for assistance with the corrupted file.
A message flow has subflows with the same user-defined property set to
different values, but only one value is set at run time:
Procedure
v Scenario: You have a message flow that contains identical subflows. Each
subflow has the same user-defined property (UDP), but with different values. At
run time, only one of the values is set.
v Explanation: A UDP has global scope and is not specific to a particular subflow.
If you reuse a subflow in a message flow, and those subflows have identical
UDPs, you cannot set the UDPs to different values.
v Solution: If you need to set a different value for each subflow, use a different
UDP for each subflow.
You want to move resources to a new broker schema that you have created but it
is not visible in the Application Development view:
Procedure
v Scenario: You have created a new broker schema and you want to move a
resource to it, but the schema is not visible in the Application Development
view.
v Explanation: If category mode is selected, you cannot see the broker schema in
the Application Development view.
v Solution: To move resources to a broker schema that you have created, take one
of the following steps.
750
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
751
Initial checks
Procedure
1. To debug problems when deploying, check the following logs:
v The administration log
v The local error log (the Windows Event log or the syslog)
v The WebSphere MQ logs
These logs might be on separate computers, and must be used with the IBM
Integration Explorer and IBM Integration Toolkit output to ensure that the
deployment was successful.
Use the mqsilist command to check that the deployment was successful, or
look in the Windows Event or Administration Log view.
2. Use this checklist when you have deployment problems:
v Make sure that the mode that your broker is working in is appropriate for
your requirements. See Operation modes.
v Make sure that the remote queue manager is running.
v Make sure that channels are running.
v Display the channel status to see if the number of system messages sent
increases.
v Check the channel from the remote end.
v Check the queue manager name.
v Determine whether the channel is a cluster channel.
Common problems
About this task
Resolving problems that occur when preparing to deploy message flows on
page 754
v An error is issued when you add a message set to a broker archive file
on page 754
v You cannot drag a broker archive file to a broker on page 754
v You cannot deploy a message flow that uses a user-defined message
flow on page 754
v The compiled message flow file (.cmf) has not been generated on page
754
Resolving problems that occur during deployment of message flows on page
755
v You receive a warning message about your broker mode on page 756
v The message flow deploys on the test system, but not elsewhere on
page 757
v Error messages about your broker mode are issued when you create an
integration server on page 757
v Error messages about your broker mode are issued when you deploy
on page 758
v Error messages about your function level are issued when you deploy
on page 759
752
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Error messages are issued when you deploy to z/OS on page 759
v Expected serialization of input is not occurring for a shared queue that
serves multiple instances of a message flow on z/OS on page 759
v You create a configurable service, then deploy a message flow and
inbound adapter, but the deployment fails on page 760
v Error messages are issued when you deploy on page 762
v You get an authority check failure when you deploy to z/OS on page
761
Resolving problems that occur after deployment of message flows on page
766
v Your XSLTransform node does not work after deployment on page 766
v You receive exception ('MQCC_FAILED') reason '2042'
('MQRC_OBJECT_IN_USE') on page 766
Related concepts:
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
Operation modes
The operation mode that you can use for your broker is determined by the license
that you purchase.
Related tasks:
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Are the Linux and UNIX environment variables set correctly? on page 652
Use the mqsiprofile command to set a command environment.
Related reference:
mqsideploy command
Use the mqsideploy command to make a deployment request to the broker.
mqsilist command
Use the mqsilist command to list installed brokers and their associated resources.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
753
754
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v You receive a warning message about your broker mode on page 756
v The message flow deploys on the test system, but not elsewhere on page 757
v Error messages about your broker mode are issued when you create an
integration server on page 757
v Error messages about your broker mode are issued when you deploy on page
758
v Error messages about your function level are issued when you deploy on page
759
v Error messages are issued when you deploy to z/OS on page 759
v Expected serialization of input is not occurring for a shared queue that serves
multiple instances of a message flow on z/OS on page 759
v You create a configurable service, then deploy a message flow and inbound
adapter, but the deployment fails on page 760
v You have created a WebSphere Adapters message flow that uses secondary
adapters, and a naming clash has occurred in the secondary adapters or message
sets on page 760
v You get an authority check failure when you deploy to z/OS on page 761
v Deployment fails when you have circular project dependencies on page 762
v Error messages are issued when you deploy on page 762
Chapter 4. Troubleshooting and support
755
756
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Solution: Contact your IBM representative to upgrade your license, rework your
message flow to use nodes that are valid in the current mode, or remove the
message flows that contain unsupported nodes; see Deleting a message flow or
subflow.
Message BIP1824
v Scenario: Warning message BIP1824 is displayed.
WARNING: The trial period for broker Broker_Name expired on Day_Month_Year.
v Explanation: Your broker is running in the Trial Edition mode and your trial
period of 90 days has expired; see Restrictions that apply in each operation
mode.
v Solution: Contact your IBM representative to upgrade your license.
The message flow deploys on the test system, but not elsewhere:
Procedure
v Scenario: The message flow that you have developed deploys on the test
system, but not elsewhere.
v Solution: Carry out the following checks:
Ensure that you have verified the installation on the target system by creating
and starting a broker, and deploying a single integration server. These actions
confirm that the broker is correctly defined.
Ensure that the broker archive (BAR) file's broker.xml file contains references
to the correct resources for the new system.
Ensure that any referenced message sets are deployed.
If database resources or user-defined nodes are not accessible or authorized
from the target system, the deploy fails. On distributed systems, ensure that
you have defined either ODBC or JDBC connections to your databases so that
they can be accessed from the broker. Also, set the broker environment to
allow access to the databases. On Linux or UNIX systems, you might have to
run a database profile.
Any user-defined extensions that you are using in your message flow might
not load if they cannot be found, or are not linked correctly. Consult the
documentation for your operating system for details of tools that can help
you to check the binary files of your user-defined extension.
Error messages about your broker mode are issued when you create an
integration server:
About this task
Message BIP1825
v Scenario: Error message BIP1825 is displayed.
You attempted to create an integration server Execution_Group on broker Broker_Name,
but the broker is running in Mode_Name mode which
limits the number of integration servers that can exist at any one time.
The integration server cannot be created.
v Explanation: The integration server cannot be created because the maximum
number of integration servers for the mode of the target broker has been
reached, and creating the integration server causes this limit to be exceeded; see
Restrictions that apply in each operation mode. The integration server was not
created.
v Solution: Reuse an existing integration server, or delete an existing integration
server and try the command again; see Deleting an integration server by using
Chapter 4. Troubleshooting and support
757
758
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: The transmission queue is not large enough for the messages that
are issued by IBM Integration Bus.
v Solution: See the WebSphere MQ documentation for details on how to increase
the size of the transmission queue.
Expected serialization of input is not occurring for a shared queue that serves
multiple instances of a message flow on z/OS:
Procedure
v Scenario: Expected serialization of input is not occurring for a shared queue that
serves multiple instances of a message flow on z/OS.
759
760
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When the node is first deployed, information about the current set of
secondary adapters and message sets is reported.
When adapters and message sets are deployed subsequently, information
about them is reported at the time of deployment.
When the message flow, broker, or integration server is stopped then
restarted, information about the entire set of secondary adapters and message
sets is written to user trace, including those secondary adapters and message
sets that are deployed after the message flow was first deployed.
This information is reported by the following messages.
BIP3432 and BIP3434 list the adapters and message sets that are available
when the node is deployed or when the broker, integration server, or message
flow are restarted.
BIP3433 reports that a secondary adapter is being deployed and added to the
set.
BIP3435 reports that a secondary message set is being deployed.
BIP3436 identifies the message set in which each type is being defined.
BIP3437 identifies message sets that attempt to redefine a type that is already
defined.
BIP3438 identifies the adapter in which each method is being defined.
BIP3439 identifies adapters that attempt to redefine a method that is already
defined.
Messages BIP3436, BIP3437, BIP3438, and BIP3439 are issued when a message is
processed to report whether definitions are used for that message.
v Solution: The following steps describe how to use user trace when working with
secondary adapters.
When you deploy the flow for the first time
1. Start user trace.
2. Deploy your message flow, primary adapter, primary message set, and
any secondary adapters or message sets that are ready.
3. Read user trace, looking out for the messages described.
4. Optional: Reset user trace, stop and restart the message flow, then read
user trace again, looking out for the messages described.
When you add new adapters and message sets
1.
2.
3.
4.
When you have identified where the naming clash has occurred, you can ensure
that names are unique by editing them in the following ways:
Edit method names by clicking Edit Operations on the Service Generation
and Deployment Configuration panel of the Adapter Connection wizard.
Edit the namespaces of the types in the message set by using the Business
Object Namespace control on the Adapter Connection wizard.
You get an authority check failure when you deploy to z/OS:
Procedure
v Scenario: You deploy a BAR file to z/OS, and you get an authority check failure
like the following message:
761
762
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Scenario: You have initiated a deployment request; for example, you have
deployed a BAR file to an integration server. Error message BIP2066 is returned
one or more times.
v Explanation: The deployment request was not acknowledged by the integration
server before the sum of the values for the broker timeout parameters
ConfigurationChangeTimeout and InternalConfigurationTimeout expired.
v Solution: Increase these timeout values by specifying the -g and -k parameters
of the mqsicreatebroker or mqsichangebroker command. See Setting
configuration timeout values on page 548 for information about factors that
affect timeout values, and how to set appropriate values.
Message BIP2080
v Scenario: The broker has started an integration server; for example, if you have
issued mqsistart for the broker, or an error has occurred and the integration
server is being recovered. Error message BIP2080 is displayed one or more times.
v Explanation: The internal configuration request was not acknowledged by the
integration server before the value of the InternalConfigurationTimeout (default
60 seconds) expired.
v Solution: Change the configuration timeout by specifying the -k parameter of
the mqsicreatebroker or mqsichangebroker command. See Setting configuration
timeout values on page 548 for information about factors that affect timeout
values, and how to set appropriate values.
Message BIP2241
v Scenario: Error message BIP2241 is displayed.
v Explanation: You are attempting to deploy a message flow containing a node
that is not available on the target broker.
v Solution: Ensure that the version of the IBM Integration Toolkit in which the
message flow has been developed matches the version of the broker to which
the message flow is being deployed. If the message flow is using a user-defined
node, or a node supplied in a SupportPac, ensure that the runtime node
implementation has been correctly installed on the computer on which the
broker is running. If your message flow includes a user-defined node, see
Installing user-defined extension runtime files on a broker. If your message flow
includes a node provided in a SupportPac, see the installation information, if
supplied, for the SupportPac.
Message BIP2242
v Scenario: Error message BIP2242 is displayed.
v Explanation: The deployment request (configuration change) was not accepted
before the timeout value set by the broker parameter
ConfigurationChangeTimeout expired. This configuration timeout value must be
long enough for the message flow to complete processing its current message,
then accept the deploy request; the default is 300 seconds.
v Solution: Set the configuration timeout values by specifying the -g and -k
parameters of the mqsicreatebroker or mqsichangebroker command.
Message BIP3226
v Scenario: Error message BIP3226 is displayed; for example:
(Semipersistent_Compute1.Main, 27.89) : Array index evaluated to 0 but must
evaluate to a positive, nonzero integer value.
763
764
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Solution: Use the information in the error log to correct the problem.
:
Related concepts:
Packaging and deployment overview
Deployment is the process of transferring data to an integration server on a broker
so that it can take effect in the broker. Message flows and associated resources are
packaged in broker archive (BAR) files for deployment.
WebSphere Adapters deployment
When you have run the Adapter Connection wizard and created a message flow,
you must deploy the resources that are generated by adding them to a broker
archive (BAR) file.
Related tasks:
Resolving problems when deploying message flows or message sets on page 752
Use the advice given here to help you to resolve common problems that can arise
when you deploy message flows or message sets.
Packaging and deploying
Package resources that you create in the IBM Integration Toolkit, such as message
flows, and deploy them to integration servers on brokers.
Are the Linux and UNIX environment variables set correctly? on page 652
Use the mqsiprofile command to set a command environment.
Related reference:
mqsideploy command
Use the mqsideploy command to make a deployment request to the broker.
mqsilist command
Use the mqsilist command to list installed brokers and their associated resources.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
Chapter 4. Troubleshooting and support
765
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
parameters of the broker.
mqsichangeproperties command
Use the mqsichangeproperties command to modify broker properties and
properties of broker resources.
mqsicreateconfigurableservice command
Use the mqsicreateconfigurableservice command to create an object name for a
broker external resource.
mqsideleteconfigurableservice command
Use the mqsideleteconfigurableservice command to delete a configurable service,
such as a JMS provider, JDBC provider, or FTP server, that you have created by
using the mqsicreateconfigurableservice command.
Related information:
WebSphere MQ Version 7 product documentation
766
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
767
Explorer.
Are the Linux and UNIX environment variables set correctly? on page 652
Use the mqsiprofile command to set a command environment.
Related reference:
mqsideploy command
Use the mqsideploy command to make a deployment request to the broker.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
XSLTransform node
Use the XSLTransform node to transform an XML message to another form of
message, according to the rules provided by an XSL (Extensible Stylesheet
Language) style sheet, and to set the Message domain, Message set, Message type,
and Message format for the generated message.
768
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
769
770
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: The application, library, or integration project did not have the
correct references set before you copied the message mapping.
v Solution: These errors remain in the task list, even if you reset the project
references immediately after copying. Therefore, you must perform a clean build
of the application, library, or integration project.
Related concepts:
Flow debugger overview
Use the flow debugger in the IBM Integration Toolkit to track messages through
your message flows.
Related tasks:
Resolving problems that occur when debugging message flows on page 768
Advice on dealing with some of the common problems that you see when
debugging message flows.
Starting the flow debugger
To start the flow debugger, you must attach it to an integration server. When the
flow debugger is started, you can introduce test messages to your message flow.
Attaching the flow debugger to an integration server for debugging
Before you can debug your message flow, you must attach the flow debugger to
the integration server where your flow is deployed, then start a debugging session.
771
1. Check your launch configuration settings, ensuring that you have specified
the correct Flow Project, HostName and Flow Engine for the debug session.
2. Restart the debug session.
Editing problems occur in the Message Flow editor:
Procedure
v Scenario: While debugging a message flow, editing problems occur when you
are using the Message Flow editor.
v Solution: Do not attempt to edit the message while the flow debugger is
attached. To edit a message flow, detach the debugger, edit the message flow,
then redeploy the message flow.
Editing the MQ message descriptor (MQMD) causes unexpected behavior in the
debugger:
Procedure
v Scenario: You edit properties of the message MQMD descriptor in the Message
Set editor, but this causes unexpected behavior in the debugger.
v Explanation: If you edit the content of the MQMD descriptor, these fields take a
certain range of values. You need to know these ranges before editing the
properties. Unless you explicitly specify the value of these fields, they take
default values, and certain fields might not have been specified in the message.
The values in the fields that are not set explicitly in the message are default
values; do not change these unless you are aware of their importance or the
possible range of values.
You cannot see the message content when debugging your message flow:
Procedure
v Scenario: You are using the message flow debugger, and you can see the
message passing through the message flow, but you cannot see the content of
the message.
v Solution: Open the Flow Debug Message view by clicking Window > Show
View > Other > Message Flow > Flow Debug Message, then OK.
An exclamation mark appears above a node during debugging:
Procedure
v Scenario: In the Message Flow editor, an exclamation mark (!) is displayed
above a node during debugging.
v Explanation: An exception has occurred in the node during debugging.
v Solution: Look under the ExceptionList in the Variables view of the Debug
perspective to find out what error has occurred.
The message does not stop processing at breakpoints:
Procedure
v Scenario: Message processing continues when a breakpoint is encountered.
v Explanation: This error could be caused by a timing problem, or if you have set
the wrong parameters for the debug session.
v Solution: Check your launch configuration setting. Ensure you have specified
the correct Flow Project, HostName and Flow Engine for the debug session.
Restart the debug session.
You cannot see where the debugger is in the Graphical Data Mapping editor:
772
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
v Scenario: The Graphical Data Mapping editor has opened in the toolkit, but it is
unclear where the debugger is in the map.
v Explanation: The source lookup path for the message map file is not configured
correctly.
v Solution: Check your debug launch configuration settings and ensure you have
configured the source lookup path for the message map file correctly.
When debugging a message map, the debugger does not move to the next field:
Procedure
v Scenario: You are debugging a message map, and the debugger does not move
to the next field. You have to click the Step over button multiple times.
v Explanation: The source lookup path for the message map file is not configured
correctly.
v Solution: Check your debug launch configuration settings and ensure you have
configured the source lookup path for the message map file correctly.
When debugging a message map, the debugger does not move out of the
mapping node:
Procedure
v Scenario: You are debugging a message map, and the debugger does not move
out of the message map.
v Explanation: The source lookup path for the message map file is not configured
correctly.
v Solution: Check your debug launch configuration settings and ensure you have
configured the source lookup path for the message map file correctly.
The message flow stops at a collector node:
Procedure
v Scenario: Message processing stops after selecting the Step into Source Code
icon on a Collector node.
v Explanation: The collector node is a multithreaded node and the thread is ended
by selecting Step into Source Code.
v Solution: Set a breakpoint manually after the collector node.
Related concepts:
Flow debugger overview
Use the flow debugger in the IBM Integration Toolkit to track messages through
your message flows.
Related tasks:
Resolving problems that occur when debugging message flows on page 768
Advice on dealing with some of the common problems that you see when
debugging message flows.
Starting the flow debugger
To start the flow debugger, you must attach it to an integration server. When the
flow debugger is started, you can introduce test messages to your message flow.
Attaching the flow debugger to an integration server for debugging
Before you can debug your message flow, you must attach the flow debugger to
the integration server where your flow is deployed, then start a debugging session.
773
774
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
definition files:
Your message definition file does not open
A message definition file error is written to the task list on page 776
Your physical format property values have reverted to defaults on
page 776
v You are unable to enter text in the Message Definition editors on page
776
v Objects in your message definition file are not listed in alphabetic
order on page 776
v You want to make the Properties tab the default tab in the Message
Definition editor on page 778
v Error messages are written to the task list after you have imported
related XML Schema files on page 777
v A group contains two different elements with the same XML name in
the same namespace on page 777
v You are unable to set up a message definition file to include a message
definition file within another message definition file on page 777
v Error message BIP5410 is issued because a union type cannot be
resolved on page 778
v Error message BIP5395 is issued because an xsi:type attribute value
does not correspond to a valid member type of the union on page 779
v Error message BIP5396 is issued because a data type does not
correspond to any of the valid data types of the union on page 779
v A union type contains two or more simple types that are derived from
the same fundamental type on page 779
v A list type is based on a union that also contains a list type on page
780
v A union type contains an enumeration or pattern facet on page 780
v Error message BIP5505 is issued because input data is not valid for the
data type on page 780
Other:
v A deprecation error is issued on an imported .mrp file on page 781
v User trace detects an element length error on page 781
v MRM dateTime value has changed after it has been parsed on page
781
775
776
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Error messages are written to the task list after you have
imported related XML Schema files
Procedure
v Scenario: When you have finished importing a collection of related XML Schema
files, you find that the IBM Integration Toolkit task list contains error messages
for the message set project, indicating that referenced types or other objects
cannot be found.
v Explanation: These errors are typically an indication that one message definition
file includes or imports another message definition file, but that the Message
Definition editor is unable to resolve the specified link.
v Solution:
Check that a message definition file exists in the IBM Integration Toolkit for
each of the related XML Schema files that you are importing. If the new
message definition files have been created, they appear in the Application
Development view.
Using the Properties Hierarchy in the Message Definition editor, check that
any message definition files that include or import other message definition
files are correctly locating the target files.
One common scenario is where you have two XML Schema files X and Y, which
both exist in the same directory in the file system but where X, which includes
Y, is defined with a real target namespace, while Y is defined in the notarget
namespace. After you import the two files, X is placed into the location that is
determined by its namespace, but Y is placed into the default namespace
location used for files defined in the notarget namespace. This situation causes
the link between the two files to break, and you must modify X so that it
correctly includes Y in its new relative location.
777
You want to make the Properties tab the default tab in the
Message Definition editor
Procedure
v Scenario: When using the Message Definition editor to edit your message
definition files, you prefer to use the Properties tab rather than the Overview
tab, but the Overview tab is always selected as the default.
v Solution: Use the IBM Integration Toolkit preferences to choose the Properties
tab as the default tab:
1. From the menu, click Windows > Preferences.
2. Expand Integration Development, then Message Set.
3. Expand Editors and select Tab Extensions.
4. In the Message Definition Editor section, select the Properties and the
Overview check boxes.
5. Click OK.
778
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
A union type contains two or more simple types that are derived
from the same fundamental type
Procedure
v Scenario: A warning is issued during logical validation indicating that a union
type contains two or more simple types that are derived from the same
fundamental type.
v Explanation: The broker does not apply value constraints until the data is in the
logical tree. Therefore, it is not possible to choose between two simple types that
are derived from the same fundamental type but with different constraints. For
example, the broker cannot differentiate between a member type of integer with
779
a range of 1-10 and another member type of integer with a range of 11-20,
therefore it resolves the union to the first member type of integer.
v Solution: Ensure that the union type that is identified in the warning does not
contain more than one simple type that is derived from the same fundamental
type or ensure that the ordering of such member types is as desired.
780
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
them not valid for the logical data type. If character conversions are used
with negative external decimals, consider using the EBCDIC custom option.
If the error is on a numeric field, ensure that the input data is compatible
with the physical format settings. For example, if the field is signed, ensure
that a valid sign byte has been passed in, that it corresponds to the
orientation of the sign, and that it is included or excluded as appropriate.
If the input message is found not to be compatible with the MRM message
definitions, check the message at the source. If it is sent over channels, check
that the conversion settings on the channels are correct.
781
v Solution: See the information about lenient dateTime checking in Message Sets:
DateTime as string data with particular reference to how years and fractional
seconds are represented.
Related concepts:
Message Sets: Message definition files
A message definition file contains the messages, elements, types, and groups which
make up a message model within a message set.
Message model objects
An introduction to the objects that make up a message model. Message model
objects are defined by XML Schema 1.0, except for Message which is an IBM
Integration Bus extension to XML Schema.
Message model objects: simple types
A simple type is an abstract definition of an item of data such as a number, a string,
or a date.
Related tasks:
Message Sets: Creating a message set
Use the New Message Set wizard to create a message set.
Message Sets: Working with MRM message model objects
Add, configure, and delete objects.
Message Sets: Working with a message definition file
Create, open, and delete a message definition file.
Message Sets: Linking from one message definition file to another
Add an 'include', or an 'import' to the file that you want to reference.
Message Sets: Configuring physical properties
Working with the physical properties of message model objects.
Related reference:
Message set projects and files
Message Definition editor
The Message Definition editor is the default editor provided by the Integration
Development perspective for editing message definition (.mxsd) files.
Message Sets: DateTime as string data
You can use a string of pattern letters to specify the dateTime format.
XML Schema Part 0: Primer on the World Wide Web Consortium (W3C) Web
site
782
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
783
Enqueue message files are still listed after they have been
deleted
Procedure
v Scenario: Enqueue message files are still listed in the menu after they have been
deleted.
v Explanation: Deleted enqueue files are not removed from the menu. Nothing
happens if you selecting these files.
784
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
785
set to 500. EBCDIC 1047 and EBCDIC 500 are similar. Only uppercase O, J, and Z
are different. (J and Z are also converted incorrectly.) The conversions leave a
string that is unreadable because it is really in ASCII. However, it does convert
the O from an EBCDIC 1047 character to an EBCDIC 500 character.
v Solution: Change your program either to do a string assignment without any
conversions, or specify that the string is in ASCII ISO-8859-1 (CCSID 819).
786
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
787
propagated to the Failure terminal. This action is done under the same
transaction, if one is being used. If the Failure terminal is not connected,
propagation does not occur.
If an error happens downstream of the TimeoutNotification node after a
successful propagation (either to the Out or Failure terminal), the message is
propagated to the Catch terminal (all under the same transaction). If the Catch
terminal is not connected, or the propagation along the Catch flow fails, the
processing of that timeout is rolled back.
v Solution: Ensure that the Failure and Catch terminals of your
TimeoutNotification node have been connected correctly.
Procedure
v Explanation: The XML domains and the XML Wire Format in the MRM domain
have their own representation of XML attributes.
XML domains rely on setting a field type of XML.Attribute in the message
tree, because they have no model to parse against.
For the XML Wire Format in the MRM domain, the message model indicates
whether an element is an attribute or a tag, therefore the message tree does
not need to reflect whether a field is an attribute or a tag.
Therefore, if fields are copied out of the XMLNS or MRM domains, the fact that
fields are attributes is lost. This loss happens if they are copied out to each other,
or to another message tree, such as the environment tree.
This problem typically appears in the following situations:
v Scenario 1: You are writing an XML message in the MRM domain, and XML
tags are being written instead of XML attributes.
v Solution 1: Check that your message tree has the same structure and sequence
as the message model. If the message tree does not match the message model,
the field is written as self-defining, and consequently the XML Render property
is not used.
Switch on message validation. Validation shows where the message tree and
message definition do not match.
Alternatively, take a user debug trace of the message flow; BIP5493W
messages indicate which fields are being written as self-defining. Use this
information to ensure that the message tree matches the model. When you
have corrected any discrepancies, attributes are correctly written.
788
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Scenario 2: An MRM message has been copied to an XMLNS domain, and the
XML attributes are now written as tags.
v Solution 2: Take one of these actions:
Serialize the XML message in the MRM domain, for example using the ESQL
ASBITSTREAM function, then use the ESQL CREATE PARSE clause to
reparse the message using the required XML domain.
When copying fields between the MRM domain and XMLNS, copy attribute
fields individually, and specifically specify XML.Attribute on the target XML
field.
v Scenario 3: An XML message has been copied to another message tree, such as
Environment. When the message is copied back to the XML message tree, XML
attributes are now seen as XML tags.
v Solution 3: Serialize the XML message, for example using the ESQL
ASBITSTREAM function, then use the ESQL CREATE PARSE clause to reparse
the XML message into the required target message tree. See CREATE statement
for an example.
v Scenario 4: A portion of a non-XML message tree has been detached and
attached to an XML tree, and XML tags are now written as XML attributes.
v Solution 4: Do not detach and attach portions of message trees that are owned
by different parsers. Instead, use a tree copy.
v Scenario 5: An XML tag is copied to an XML attribute and the XML attribute is
not written in the output message.
v Solution 5: When referencing the source XML tag, use the ESQL FIELDVALUE
function to copy the specific field value to the target XML attribute field.
789
The use of these default values by the parser might result in different content,
structure, or both, for either message tree or output message. You can find
further information about the action taken by the broker in the user trace log
where the following information might be written:
XMLWorker::initializeParse file:C:\s000\src\cpi\pwf\xml\xmlworker.cpp
line:126 message:5409.BIPmsgs
No dictionary present have you specified Wire Format XML in error? ,
UserTrace BIP5409E: XML Worker: Wire Format XML specified.
Default MRM XML settings are being used because wire format
identifier XML was specified and not found.
This can be due to an incorrect setting of the wire format
identifier in a message.
Solution 2: If you have incorrectly entered the identifier of the format that
you have defined, correct your code and try again. If you do not want the
default action to be taken, define a physical layer that produces the required
results.
790
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Either the top-level MIME header block, or a MIME header block for a nested
multipart part, does not have a valid Content-Type header.
The top-level Content-Type has a media type of message.
The top-level Content-Type has a media type of multipart and no boundary
definition.
A MIME header block is not correctly terminated by a blank line.
The constituent MIME parts are not correctly separated by boundary lines.
A boundary parameter value occurs in the content of a MIME part.
v Solution: Check the MIME message for one or more of the error conditions
listed here, and correct them.
Runtime errors are issued when you write a MIME message from
the logical message tree
Procedure
v Scenario: You are writing a MIME logical message tree as a bit stream and the
parser generates a runtime error.
v Explanation: The following errors can cause the MIME parser to reject a logical
message tree:
The root of the tree is not called MIME.
The last child of MIME is not called Parts or Data.
The Parts element has a value-only element, and this element is not the first
or last child of Parts.
The Parts element has children that are not value-only elements or Part
children.
The Parts element does not have any children called Part.
The last child of a Data element is not a BLOB.
v Solution: Check the MIME logical message tree for one or more of the error
conditions listed here, and correct them.
791
CALL CopyMessageHeaders();
DECLARE outRef REFERENCE TO OutputRoot;
CREATE LASTCHILD OF outRef AS outRef NAME BLOB;
CREATE LASTCHILD OF outRef NAME BLOB VALUE X01;
or the outRef reference variable was passed to an ESQL function or procedure
that contained similar CREATE statements. You have not specified an owning
parser by using the DOMAIN clause on the CREATE statement.
An MRM message tree has been constructed, then only part of it has been
passed, by specifying a subfolder or field, to the ASBITSTREAM function
with the parser mode option set to RootBitStream. This combination is not
valid, and results in a zero length BLOB.
You have copied a message tree, or part of a message tree, to a folder and the
owning parser association is not maintained.
v Solution: Depending on the reason for the empty message body or zero length
BLOB, ensure that:
When you create a message tree folder in a user-defined node, associate an
owning parser with it. Use code similar or equivalent to:
createElementAfter(String parserName)
createElementAsFirstChild(String parserName)
createElementAsLastChild(String parserName)
createElementBefore(String parserName)
When you use ESQL CREATE to create a message tree folder, use the
DOMAIN clause to associate an owning parser with the message tree, for
example:
CALL CopyMessageHeaders();
DECLARE outRef REFERENCE TO OutputRoot;
CREATE LASTCHILD OF outRef AS outRef DOMAIN BLOB NAME BLOB;
CREATE LASTCHILD OF outRef NAME BLOB VALUE X01;
This code creates a BLOB folder that has the BLOB parser associated with it.
When copying a message tree, or part of a message tree, ensure that the
owning parser association is maintained, by first serializing, then reparsing
the message into the appropriate message tree. An example scenario is where
you have created a field:
SET Environment.Variables.myMsg = InputRoot.XMLNS;
Now you must pass it to the ASBITSTREAM function. Unless you use ESQL
similar or equivalent to:
DECLARE xmlMsgBlob BLOB
ASBITSTREAM(InputRoot.XMLNS, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId);
CREATE LASTCHILD OF Environment.Variables.myMsg DOMAIN(XMLNS)
PARSE(xmlMsgBlob,
InputRoot.MQMD.Encoding,
InputRoot.MQMD.CodedCharSetId);
the result is a zero length bit stream.
792
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: This error can occur when you have created an XML message tree
folder with multiple roots or no root at all by:
Using a user-defined node
Using an MQGet node
Using ESQL
v Solution: Ensure that the final output message tree has one, and only one, XML
root node.
793
Before calling this procedure, the message flow needs to be able to obtain the
value of the boundary. This value might be available only within a Content-type
header. The following procedure allows you to extract the Boundary value:
create procedure getBoundary(IN ct reference,OUT boundary char)
/*****************************************************************
* return value of the boundary parameter from a Content-Type value
******************************************************************/
begin
declare boundaryStart integer;
declare boundaryEnd
integer;
set boundaryStart = position(boundary= in ct) + 9;
set boundaryEnd
= position(; in ct from boundaryStart);
if (boundaryStart <> 0) then
if (boundaryEnd <> 0) then
set boundary = substring(ct from boundaryStart for boundaryEnd-boundaryStart);
else
set boundary = substring(ct from boundaryStart);
end if;
end if;
end;
A Compute node can invoke these procedures for sending a MIME message
using the following ESQL:
SET OutputRoot = InputRoot;
declare boundary char;
794
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation:Java 5 has a parameter to adjust the stack size for Java threads. The
default operating system stack size for Java 5 is only 256 KB. In certain message
flows (for example, flows that contain Java user-defined nodes or XMLT nodes)
this size might not be sufficient, and so you see a stack overflow error in the
stderr file. Use the JVM option -Xmso to adjust the operating system stack for
Java. You can display information about the stack by using the following
command:
export MQSIJVERBOSE=-verbose:stack,sizes
This command creates in the stderr file on startup an entry that has the
folllowing content, or similar:
-Xmca32K
RAM class segment increment
-Xmco128K
ROM class segment increment
-Xmns0K
initial new space size
-Xmnx0K
maximum new space size
-Xms125000K
initial memory size
-Xmos125000K
initial old space size
-Xmox250000K
maximum old space size
-Xmx250000K
memory maximum
-Xmr16K
remembered set size
-Xlp0K
large page size
available large page sizes: 4K 16M
-Xmso256K
OS thread stack size
-Xiss2K
java thread stack initial size
-Xssi16K
java thread stack increment
-Xss256K
java thread stack maximum size
-Xscmx16M
shared class cache size
Note: The stack size defaults to 256K.
v Solution:
1. Issue the following command to set the operating system stack size for Java
to 2 MB:
export IBM_JAVA_OPTIONS=-Xmso2m
2. Restart the broker.
Chapter 4. Troubleshooting and support
795
796
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Explanation: This problem can be caused when the TCP/IP port that you
configure for IBM Integration Bus to communicate with IBM Operational
Decision Manager is used by another application. For example, the default IBM
Operational Decision Manager TCP/IP port is 1883, which is also the default
TCP/IP port for WebSphere MQ Telemetry.
v Solution: Check that the TCP/IP port that is configured for IBM Operational
Decision Manager is not used by another application. If a conflict exists, change
the port number for the JDBCProviders configurable service that defines the
connection to the IBM Operational Decision Manager repository.
Related concepts:
Business rules
A business rule is a required operation that applies to a specific set of business
conditions. For example, you can create a business rule that offers a discount to
customers who spend more than a certain amount. The business rule can be
modified in the future if the business climate changes and the amount of discount
must change.
Related tasks:
Developing business rules
Build business rules with natural language to control business logic.
Retrieving business rules at run time from an IBM Operational Decision
Manager repository
Use a configurable service to retrieve business rules that are created in IBM
Operational Decision Manager.
Related reference:
Configurable services properties
The supplied configurable services, and the configurable services that you create,
are defined by their names and properties. You can use the supplied services.
797
798
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
BIP0889E
Command line
Actions
BIP1046E with
WebSphere MQ
reason code 2059
Check that the broker queue manager and listener are running, and that the
correct port is specified for the queue manager.
BIP1047E
Check the system event log to ensure that the broker is available for use,
and correct all errors that are shown.
BIP0915E
BIP1046E with
WebSphere MQ
reason code 2035
Check that the IBM Integration Toolkit local user ID is created on the broker
system. If it is not, create it.
Check if the IBM Integration Toolkit local user ID that is created on the
broker system is authorized to connect to the broker queue manager.
v Use the WebSphere MQ dspmqaut command to determine what
WebSphere MQ authorities the user has.
v If necessary, add the IBM Integration Toolkit local user ID to the mqm
group on the broker system.
799
800
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Resolving problems when you use the IBM Integration Toolkit on page 797
Use the advice given here to help you to resolve common problems that might
occur you use the IBM Integration Toolkit.
Changing IBM Integration Toolkit preferences
The IBM Integration Toolkit has a large number of preferences that you can change
to suit your requirements. Some of these are specific to the product plug-ins that
you have installed, including those for IBM Integration Bus. Others control more
general options, such as the colors and fonts in which information is displayed.
Viewing the Eclipse error log on page 844
The Eclipse error log captures internal errors that are caused by the operating
system or your code.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Related reference:
Resource types in the IBM Integration Toolkit
Links to information on projects and resource files.
Integration Development perspective
The Integration Development perspective is the default perspective that is
displayed when you start the IBM Integration Toolkit.
IBM Integration Bus logs
IBM Integration Bus writes information to a number of product-specific logs to
report the results of actions that you take.
801
802
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
troubleshooting.
Related reference:
Resource types in the IBM Integration Toolkit
Links to information on projects and resource files.
Integration Development perspective
The Integration Development perspective is the default perspective that is
displayed when you start the IBM Integration Toolkit.
IBM Integration Bus logs
IBM Integration Bus writes information to a number of product-specific logs to
report the results of actions that you take.
803
804
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
805
806
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
807
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related tasks:
Installing IBM Integration Explorer
To use IBM Integration Explorer only, without installing the complete IBM
Integration Toolkit, use the IBM Integration Explorer installation wizard to install
the IBM Integration Explorer.
Configuring integration nodes using the IBM Integration Explorer
Configure your local and remote integration nodes (brokers) by using the IBM
Integration Explorer.
Viewing accounting and statistics data in the IBM Integration Explorer on page
497
You can use the Broker Statistics and Broker Statistics Graph views in the IBM
Integration Explorer to view snapshot accounting and statistics data as it is
produced by the integration node (broker).
Related information:
WebSphere MQ Version 7 product documentation
808
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Data Analysis
Data Analysis analyzes and filters information in complex XML documents. You
can use this analysis to create a library, that contains Data Analysis tools to quickly
and easily transform your data in IBM Integration Bus.
Procedure
v DB2 error message SQL0443N is issued on page 810
v DB2 error message SQL0805N is issued on page 810
v DB2 error message SQL0998N is issued on Linux on page 810
v DB2 error message SQL0998N or SQL1248N is issued on page 811
v DB2 error message SQL1040N is issued on page 811
v DB2 error message SQL1224N is issued when you connect to DB2 on page 811
v DB2 or ODBC error messages are issued on z/OS on page 813
v You do not know how many database connections a broker requires on page
813
v You want to use XA with DB2 databases on page 813
v XA coordination fails if the database restarts while the broker is running on
page 814
v Error message BIP2322 is issued when you access DB2 on z/OS on page 814
v Error message BIP2322 IM004 is issued when you connect to an Informix
database on page 814
v On Oracle, a database operation fails to return any rows, even though the rows
exist on page 815
v Broker commands fail when the Oracle 10g Release 2 client runs on Linux on
POWER with Red Hat Enterprise Linux Advanced Server V4.0 on page 815
v Error message BIP2322 Driver not capable is issued when you use an Informix
database on page 816
v Database updates are not committed as expected on page 816
v You want to list the database connections that the broker holds on page 816
v You want to know whether the password that is set for a database is as
expected on page 817
v The queue manager finds the XA resource manager is unavailable when
configured for XA with DB2 on Windows on page 817
v Error messages are received when you are trying to remove a DB2 database on
Windows when you are using a sample on page 817
v DB2 error message SQL7008N is issued on page 818
v SQLCODE -981 is issued when you access DB2 on z/OS on page 818
809
UNIX
connect to db
bind ~/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
connect reset
where db is the database name.
On Windows systems, enter the commands:
connect to db
bind x:\sqllib\bnd\@db2cli.lst blocking all grant public
connect reset
where x: identifies the drive onto which you installed DB2, and db is the
database name.
Windows
810
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
811
812
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
UNIX
813
Windows
Explorer.
v Explanation: This error can be caused when the environment for the database
has not been initialized.
v Solution: Check the documentation for the client on your broker system for
details of the actions that you must take. For example, you might have to specify
the following environment variables:
814
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
export
export
export
export
export
export
export
INFORMIXDIR=/installation_directory_of_informix_client_software
PATH=${INFORMIXDIR}/bin:${PATH}
INFORMIXSERVER=server_name
INFORMIXSQLHOSTS=${INFORMIXDIR}/etc/sqlhosts
TERMCAP=${INFORMIXDIR}/etc/termcap
TERM=vt100
LIBPATH=${INFORMIXDIR}/lib:${INFORMIXDIR}/lib/esql:
${INFORMIXDIR}/lib/cli:$LIBPATH
where server_name is defined in the file sqlhosts (the required value is typically
the machine name), and the location of the file sqlhosts is set up as part of the
installation process.
To configure your system to run this setup at the start of every session, add
these statements to the login profile of the user that is going to run the broker.
For more information, see Command environment: Linux and UNIX systems.
Broker commands fail when the Oracle 10g Release 2 client runs
on Linux on POWER with Red Hat Enterprise Linux Advanced
Server V4.0
Procedure
v Scenario: Broker commands fail in an environment where an Oracle 10g Release
2 client runs on Linux on POWER with Red Hat Enterprise Linux Advanced
Server V4.0. Abend files might be created, with contents like the following data:
/opt/mqsi/lib/libCommonServices.so(.ImbAbendSignalHandler+0x10)[0x800017d3c0]
[0x80022b33f0]
/lib64/tls/libpthread.so.0[0x80cc2339d8]
/lib64/tls/libpthread.so.0[0x80cc230e4c]
/lib64/tls/libpthread.so.0[0x80cc22af54]
bipservice[0x10005e38]
/lib64/tls/libpthread.so.0[0x80cc22a1d8]
/lib64/tls/libc.so.6[0x80cc0dd3e4]
or
/opt/mqsi/lib/libImbCmdLib.so(._ZN15ImbCreateTables15createAllTablesEv+0x38)
[0x800014c9bc]mqsicreatebroker[0x10023324]mqsicreatebroker[0x1002c0c4]
/opt/mqsi/lib/libImbCmdLib.so(._ZN10ImbCmdBase20processCommandStringEv+0x6c)
[0x80001dcad4]mqsicreatebroker[0x1000d728]/lib64/tls/libc.so.6[0x80cc02423c]
/lib64/tls/libc.so.6[0x80cc0243c4]
v Explanation: The Oracle installation library contains copies of libgcc library
files. The Oracle user profile adds the directory containing these files to the
environment variable LD_LIBRARY_PATH. This action causes the libgcc library
files to be found before the system libraries, and leads to the failure of broker
commands and the production of abend files.
Chapter 4. Troubleshooting and support
815
You want to list the database connections that the broker holds
Procedure
v Scenario: You want to list the database connections that the broker holds.
v Solution: The broker does not have any functionality to list the connections that
it has to a database. Use the facilities that your database supplies to list
connections. Refer to the documentation for your database to find out how to
perform this task.
816
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
817
818
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
Database facilities
The database products used by IBM Integration Bus also record information that
might be useful if you have any problems with their access.
819
820
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
and an error has been encountered when the broker attempts to filter the
published message. This situation can occur, for example, if a message is
published that includes unsupported data types, or if the message body is
corrupted.
Escape character
<
<
>
>
"
"
'
'
&
&
821
/var/wmqi/lib (for all IBM Integration Bus for AIX processes) or /usr/lib (for
AIX
IBM Integration Bus for AIX configuration
all processes on the system).
does this action for DB2 libraries.
If it is necessary to set LIBPATH, update it to include the directory
/usr/java130/bin. For example, you can use the following command to start the
broker:
LIBPATH=/usr/local/lib:/usr/java130/bin mqsistart mybroker
Related concepts:
Publish/Subscribe
Publish/subscribe is a style of messaging application in which the providers of
information (publishers) are decoupled from the consumers of that information
(subscribers).
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Routing using publish/subscribe applications
You can route your messages to applications using the publish/subscribe method
of messaging.
Related tasks:
Viewing Administration log information on page 190
You can view Administration log information by using either the IBM Integration
Explorer, or the CMP.
Interpreting trace on page 859
Use the information in a formatted trace file to identify unexpected behavior.
Related reference:
Publish/subscribe
Use the reference information in this section to help you develop
publish/subscribe applications.
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
WebSphere MQ logs
WebSphere MQ messages are written to the local error log in the same way as IBM
Integration Bus messages.
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsichangebroker command
Use the mqsichangebroker command to change one or more of the configuration
822
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
823
1;
2;
3;
4;
5;
In this example, the five fields that are created are all children of ParentA. Before
the specified field can be created or modified, the broker must navigate the
named message tree to locate the point in the message tree that is to be altered.
For example:
To access field 1, the SET statement navigates to ParentA, then to the first
field, therefore involving two navigations.
To access field 5, the SET statement navigates to ParentA, then traverses each
of the previous fields until it reaches field 5, therefore involving six
navigations.
Navigating over all the fields that precede the specified field causes the loss in
performance.
Now consider a scenario that accesses repeating fields in an input message tree;
for example:
824
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
825
826
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
827
828
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
The value specified represents the time in milliseconds that the CMP will wait
for information before throwing the
BrokerProxyPropertyNotInitializedException exception.
If you set this timeout value too low, an exception is thrown, even if the broker
is available.
You set a property of an object and query its value, but the value
has not changed
Procedure
v Scenario: You have set a property of an object, then queried its value; the value
has not changed.
v Explanation: Methods that change properties of broker objects are not processed
immediately. If you call a property change method on a CMP object, the CMP
sends a message that requests the specified change to the broker. The broker
processes the request asynchronously, and notifies all
AdministeredObjectListeners of the affected object when the change has been
attempted.
v Solution: Methods that change state typically return to the calling program as
soon as the request has been put to the queue manager of the broker, or,
following a call to BrokerProxy.beginUpdates(), as soon as the request has been
added to the current batch. If the property has still not been updated after the
action's response to the request has been returned to the application, consult the
response message for more details.
829
You get problems when nodes try to use the ESQL path interface
in the plug-in API
Procedure
v Scenario: When you attempt to use the ESQL path interface in the plug-in API,
the return value is CCI_PATH_NOT_NAVIGABLE.
v Explanation: The plug-in API allows you to specify a path in the form of an
ESQL path expression and navigate to that element, returning a handle to it if it
exists. It also allows you to create elements along the path to the requested
element.
The navigate path utility function (cniSqlNavigatePath) executes the
SQLPathExpression created with the cniSqlCreateReadOnlyPathExpression or
cniSqlCreateModifiablePathExpression utility functions, as defined by the
sqlPathExpression argument.
If the path is not navigable, the return code is set to
CCI_PATH_NOT_NAVIGABLE. This might be returned when embedding a path
expression in another path expression. The input cciMessage* functions must not
be NULL; however, any of the output cciMessage* functions can be NULL. If
you embed a path expression that can be NULL inside a path expression that
cannot be NULL, CCI_PATH_NOT_NAVIGABLE is returned.
830
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
831
cpiCreateParserFactory
cniCreateElement*
cpiDefineParserClass
cniDeleteMessage
cpiAppendToBuffer
cniAdd*
cpiCreateElement
cniDetach
cpiCreateAndInitializeElement
cniCopyElementTree
cpiAddBefore
cniFinalize
cpiAddAfter
cniWriteBuffer
cpiAddAsFirstChild
cniSql*
cpiAddAsLastChild
cniSetInputBuffer
cpiSetNameFromBuffer
cniDispatchThread
(* represents all nodes with that stem; for example, cniAdd* includes
cniAddAfter, cniAddasFirstChild, cniAddasLastChild, and cniAddBefore.)
The Java methods that invoke messages BIP4144 and BIP4145 are:
For user-defined nodes
com.ibm.broker.plugin.MbElement.CreateElement*
com.ibm.broker.plugin.MbElement.add*
com.ibm.broker.plugin.MbElement.detach
com.ibm.broker.plugin.MbElement.copyElementTree
832
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
833
On Linux and UNIX, set the file permissions of the user-defined extension to
group read by issuing the command chmod a+r.
On z/OS, set the file permissions of the user-defined extension to group read
and execute by issuing the command chmod a+rx.
834
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
835
836
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Click Next to continue. The WebSphere ESB conversion tool does not convert
all WebSphere Enterprise Service Bus project types. For more information, see
WebSphere ESB conversion tool limitations.
3. Click Finish. The Migration Validation window opens. The window displays
the following message: Migration validation completed successfully. See the
Migration Results view for additional information.
4. Click Ok to finish.
Procedure
Solution:
Complete the following tasks in order:
1. In IBM Integration Designer, export the WebSphere Enterprise Service Bus
projects that you want to convert to IBM Integration Bus projects by selecting
the Business Integration export option Integration Modules and Libraries. For
more information, see Exporting WebSphere Enterprise Service Bus projects for
conversion.
2. Import WebSphere Enterprise Service Bus resources by using the WebSphere
ESB Project Interchange import option. For more information, see Importing
WebSphere Enterprise Service Bus resources.
3. Optional: If your WebSphere Enterprise Service Bus PI file includes a Java
project, complete the following steps in order:
v In the Application Development view, complete the following steps:
a. Expand Independent resources. Select YourJavaProject, where
YourJavaProject is the name of your Java project.
b. Right-click the YourJavaProject and select Properties.
v Click Targeted Runtimes. In the list of runtimes, clear any selected entries,
for example wps.esb.v75. Click Apply.
v Click Java Build Path, then click JRE System Library. Click Edit, and choose
the option Workspace default JRE. Click Finish.
v Click Ok.
837
WebSphere Enterprise Service Bus resources that are imported into IBM Integration
Bus workspace display incorrect project icon types and are marked in error.
Projects are represented in IBM Integration Bus with the wrong icon type when
you import WebSphere Enterprise Service Bus files directly from the file system or
by using the standard Project Interchange import option. Icons display in error.
Procedure
Solution:
Complete the following tasks in order:
1. Import WebSphere Enterprise Service Bus resources by using the WebSphere
ESB Project Interchange import option.
2. Resolve all unbound classpath container errors that result from importing
WebSphere Enterprise Service Bus resources into the IBM Integration Bus
workspace. For more information, see Resolving unbound classpath container
errors reported in the IBM Integration Bus Problems view.
Procedure
Solution:
Complete the following tasks in order:
1. Right-click the message that describes error 2 in the Problems tab. Select Quick
Fix. The window Quick Fix opens.
2. Select the option Select a system library to use when building project name,
where project name is the name of the WebSphere Enterprise Service Bus
imported project in IBM Integration Bus workspace.
3. Click Finish. The window Edit Library opens.
4. Select the option Workspace default JRE (jdk).
5. Click Finish.
838
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
resources included in the WebSphere Enterprise Service Bus project are not
refreshed automatically.
Procedure
Solution:
To view your WebSphere Enterprise Service Bus project resources in your
WebSphere ESB conversion session, complete the following tasks in order:
1. Close your WebSphere ESB conversion session.
2. Open your WebSphere ESB conversion session.
a. In the Application Development view, select Independent resources >
WESB_conversions.
b. Double-click YourConversionSessionName.
Results
Your WebSphere Enterprise Service Bus resources display correctly.
Using logs
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
839
Procedure
1. Open a command prompt.
2. At the prompt, type eventvwr. This opens the Windows Event Viewer.
Procedure
1. Open a command prompt.
2. At the prompt, type eventvwr. This opens the Windows Event Viewer.
840
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Within the system or application log, find the log entry.
2. Right-click the entry.
v On Windows, click Events to open the Event Properties window.
The window shows a description of the event. Select the Details tab to view
bytes or words that were parsed when the record was written to the log.
3. Use the up and down arrows to move through the events of the log.
4. To close the window, click OK to return to the system or application log.
Related concepts:
Logs
If an error is reported by an IBM Integration Bus component, start your
investigations into its causes by looking at the product and systems logs to which
information is written during component operation.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Linux and UNIX systems: Configuring the syslog daemon
On Linux and UNIX systems, all IBM Integration Bus messages (other than
messages that are generated by the command-line utilities) are sent to the syslog
subsystem.
z/OS: Viewing broker job logs on page 843
On z/OS, the broker writes messages to the appropriate z/OS system log and job
logs. These messages might include information, warning, error, and severe
messages to indicate various situations and events.
Related reference:
Local error logs
IBM Integration Bus components use the local error log (also known as the system
log) to record information about major activities within the system. When an error
occurs, check the local error log first.
The configuration steps you make to ensure that all relevant messages are
displayed depend on the version of Linux and UNIX that you are using. Refer to
your operating system documentation relating to syslog (or syslog-ng for some
versions of Linux) for information about how to configure the syslog subsystem.
Chapter 4. Troubleshooting and support
841
IBM Integration Bus processes call the syslog commands on the operating system
but only those messages that correspond to the filter defined for the output
destination are displayed. IBM Integration Bus messages have:
v A facility of user.
v A level of err, warn, or info, depending on the severity of the situation causing
the message to be issued.
To record all IBM Integration Bus messages, create a filter on the user facility for
messages of level info or greater. It is good practice to write these messages to a
separate file; there might be a high number of them and they are more likely to be
of interest to broker administrators rather than to system administrators.
The following line in a syslog.conf file causes all IBM Integration Bus events to be
written to a file /var/log/user.log
user.info /var/log/user.log
Many UNIX systems provide a command-line utility, known as logger, to help you
test and refine your configuration of the syslog subsystem.
On UNIX, syslog entries are restricted in length and messages that are sent to the
syslog are truncated by the new line character. To record a large amount of data in
a log on UNIX, set the Destination property on the Trace node to File or User
Trace instead of Local Error Log.
What to do next
See the documentation for your operating system.
Related concepts:
Logs
If an error is reported by an IBM Integration Bus component, start your
investigations into its causes by looking at the product and systems logs to which
information is written during component operation.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Windows: Viewing the local error log on page 840
The Windows Event Viewer is where IBM Integration Bus writes records to the
local system. Use Windows system facilities to view this log.
z/OS: Viewing broker job logs on page 843
On z/OS, the broker writes messages to the appropriate z/OS system log and job
logs. These messages might include information, warning, error, and severe
messages to indicate various situations and events.
Related reference:
Local error logs
IBM Integration Bus components use the local error log (also known as the system
log) to record information about major activities within the system. When an error
occurs, check the local error log first.
842
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
843
v PROCSTEP: The procedure STEPNAME, which equals BROKER for the main
broker control address space. For integration server address spaces, this is either
EGNOENV, if there is not an integration server specific profile, or EGENV if
there is an integration server specific profile.
Related concepts:
Logs
If an error is reported by an IBM Integration Bus component, start your
investigations into its causes by looking at the product and systems logs to which
information is written during component operation.
Related tasks:
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Linux and UNIX systems: Configuring the syslog daemon on page 841
On Linux and UNIX systems, all IBM Integration Bus messages (other than
messages that are generated by the command-line utilities) are sent to the syslog
subsystem.
Windows: Viewing the local error log on page 840
The Windows Event Viewer is where IBM Integration Bus writes records to the
local system. Use Windows system facilities to view this log.
Related reference:
Local error logs
IBM Integration Bus components use the local error log (also known as the system
log) to record information about major activities within the system. When an error
occurs, check the local error log first.
IBM Integration Bus logs
IBM Integration Bus writes information to a number of product-specific logs to
report the results of actions that you take.
Procedure
1. Switch to the Plug-in Development perspective.
2. From the main menu, select Window > Show view > Other. Then select
General > Error Log.
The error log is displayed, showing the following information for each error:
v The status of the error (for example, error or warning)
v A brief description of the error
v From which plug-in the error derived
v The date and time that the error was produced
3. If an error has a plus sign (+) at the start of it, it is a complex problem, and
there are a number of errors contributing to it. Click the plus sign to view the
individual errors.
844
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Using trace
You can use different types of trace to help you with problem determination and
troubleshooting.
845
You can also use the IBM Support Assistant Data Collector on page 879 to help
with data collection.
Related concepts:
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
IBM Support Assistant Data Collector on page 879
You can collect diagnostic documents by using IBM Support Assistant Data
Collector, and submit a problem report to IBM. IBM Support Assistant Data
Collector is included with your IBM Integration Bus installation.
Related reference:
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
mqsiformatlog command
Use the mqsiformatlog command to process the XML log created by mqsireadlog.
The command retrieves and formats any messages that the XML log contains into
a form suitable for the locale of the user who runs the command.
mqsireadlog command
Use the mqsireadlog command to retrieve trace records for the specified
component.
846
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
mqsireporttrace command
Use the mqsireporttrace command to display the trace options currently in effect.
Trace can be run only against a broker, or any of its resources.
Database facilities
The database products used by IBM Integration Bus also record information that
might be useful if you have any problems with their access.
847
specifies
specifies
specifies
specifies
specifies
service trace
the level of trace (in this case, debug)
the way trace information is to be buffered (in this case, fast)
the size of the trace file in KB (in this case, 200000)
that the trace file is reset
848
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Starting user trace
Use user trace for debugging your applications; you can trace brokers, integration
servers, and deployed message flows. Start user trace facilities using the
mqsichangetrace command or the IBM Integration Explorer.
Checking service trace options
Use the mqsireporttrace command or the IBM Integration Explorer to check what
tracing options are currently active for your brokers.
Stopping service trace on page 852
Use the mqsichangetrace command or the IBM Integration Explorer to stop an
active service trace.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Related reference:
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
849
Procedure
1. In the Navigator view, expand the Integration Nodes folder and right-click the
integration server with which you want to work.
2. Click Service to view user trace settings for your integration server.
Results
If you have started tracing by following the example in Starting service trace on
page 847, the response to the mqsireporttrace command is:
BIP8098I: Trace level: debug, mode: safe, size: 1024 KB
BIP8071I: Successful command completion
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
850
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Navigator view, expand the Integration Nodes folder and right-click the
integration server with which you want to work.
2. Click Service > Normal.
851
Procedure
v Use the mqsichangetrace command with a trace level of none to stop an active
trace. This action stops the trace activity for the component that you specify on
the command. It does not affect active traces on other components. For example,
if you stop tracing on the integration server test, an active trace on another
integration server continues.
852
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v Click Service Trace > None on an integration server or message flow, in the IBM
Integration Explorer, to stop an active service trace on the selected object.
Results
If you redeploy a component from the IBM Integration Toolkit, trace for that
component is returned to its default setting of none.
Procedure
1. In the Navigator view, expand the Integration Nodes folder and right-click the
integration server with which you want to work.
2. Click Service TraceNone.
853
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Stopping user trace
Use user trace for debugging your applications; you can trace brokers, integration
servers, and deployed message flows. Stop user trace facilities by using the
mqsichangetrace command or the IBM Integration Explorer.
Starting service trace on page 847
Service trace is used to get detailed information about your environment for use by
your IBM Support Center.
Clearing old information from trace files on page 861
If the component that you are tracing has stopped, you can delete its trace files
from the log subdirectory of the IBM Integration Bus home directory.
Related reference:
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
Procedure
This command retrieves the trace details according to parameters that you specify
on the command, and writes the requested records to a file, or to the
command-line window, in XML format.
854
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Results
This command sends a log request to the broker to retrieve the service trace log,
and stores the responses in the specified file. You can view this file using a plain
text editor.
Results
This command sends a log request to the broker to retrieve the service trace log,
and stores the responses in the specified file. You can view this file using a plain
text editor.
Related concepts:
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4. Troubleshooting and support
855
Formatting trace
Use the mqsiformatlog command to format trace information.
Procedure
IBM Integration Bus provides the command mqsiformatlog to format the trace
information to a flat file, so that you can view it using a text editor.
Results
The mqsiformatlog command takes a file generated by the mqsireadlog command
as input, and flattens the XML log into structured records. It also retrieves the
inserts for the XML message in your current locale. You can direct the formatted
output to a file, or view it in the command line window.
Each trace entry contains a time stamp and an IBM Integration Bus message that
contains a number (for example, BIP2622) and a text string containing variable
inserts.
856
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
857
858
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
mqsiformatlog command
Use the mqsiformatlog command to process the XML log created by mqsireadlog.
The command retrieves and formats any messages that the XML log contains into
a form suitable for the locale of the user who runs the command.
Interpreting trace
Use the information in a formatted trace file to identify unexpected behavior.
Procedure
1. Verify that the trace file is complete.
If the size of the trace log is too small to contain all events, trace output
continues at the start of the trace log, overwriting existing entries. This is
known as wrapping.
An indication that a trace has wrapped is the relationship between the first and
last timestamp in it, and the time that trace was enabled. For example, assume
that you start tracing at 10:15, and collect the trace at 10:30. If the trace
timestamps run from 10:20 to 10:30, it is probable that trace wrapped. Of course
it could mean that nothing happened between 10:15 and 10:20.
Examine the trace and decide whether the beginning of it makes sense, and
whether it looks complete. For example, if you want to trace the passage of
three messages through a flow, and trace starts half way through the second
message, it could have wrapped, or trace might not have been enabled early
enough.
2. If trace has wrapped, increase the size of the trace file, and rerun trace. For
information on trace settings, see mqsichangetrace command.
3. If you see unexpected behavior in a message flow or integration server, use this
trace information to check the actions that have been taken and identify the
source of an error or other discrepancy.
Results
The messages contain identifiers for the resources that are being traced, for
example the integration servers and message flows. The identifier that is given is
typically the label (the name) that you gave to the resource when you defined it.
859
Here is an extract from a user trace file. In the example, each column has been
labeled:
Timestamp
Thread ID Trace type Message
2005-07-12 16:17:18.242605
5344 UserTrace BIP2537I: Node Reply.MapToRequestor:
Executing statement SET I = I + 1;
at (.MapToRequestor.CopyMessageHeaders,
6.4).
2005-07-12 16:17:18.242605 5344 UserTrace BIP2539I: Node Reply.MapToRequestor:
Evaluating expression I at
(.MapToRequestor.CopyMessageHeaders,
6.12). This resolved to I. The
result was 1.
2005-07-12 16:17:18.242605 5344 UserTrace BIP2539I: Node Reply.MapToRequestor:
Evaluating expression I + 1 at
(.MapToRequestor.CopyMessageHeaders,
6.14). This resolved to 1 + 1.
The result was 2.
2005-07-12 16:17:18.242605 5344 UserTrace BIP2566I: Node Reply.MapToRequestor:
Assigning value 2 to field / variable
I.
References such as 6.12 apply to the row and column number within a function
that specify the location of the command that is being executed; in this case, row 6,
column 12.
Related concepts:
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Retrieving user trace
Use the mqsireadlog command to access the trace information that is recorded by
the user trace facilities.
Retrieving service trace on page 854
Use the mqsireadlog command to access the trace information recorded by the
service trace facilities.
Formatting trace on page 856
Use the mqsiformatlog command to format trace information.
Resolving problems with user-defined extensions on page 829
Advice for dealing with some common problems that can arise when you work
with user-defined extensions
Related reference:
860
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
Example: clearing the user trace log for the default integration
server
About this task
To clear the user trace log for the default integration server, on distributed systems,
enter the command: mqsichangetrace WBRK_BROKER -u -e default -r where:
WBRK_BROKER specifies the name of the broker
-u specifies user trace
-e specifies the integration server (in this case the default integration server)
-r clears the trace log
On z/OS, enter the command F MQP1BRK,ct u=yes, e=default, r=yes
Related concepts:
z/OS
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
Chapter 4. Troubleshooting and support
861
troubleshooting.
Starting user trace
Use user trace for debugging your applications; you can trace brokers, integration
servers, and deployed message flows. Start user trace facilities using the
mqsichangetrace command or the IBM Integration Explorer.
Starting service trace on page 847
Service trace is used to get detailed information about your environment for use by
your IBM Support Center.
Related reference:
Local error logs
IBM Integration Bus components use the local error log (also known as the system
log) to record information about major activities within the system. When an error
occurs, check the local error log first.
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
Procedure
1.
2.
3.
4.
862
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
Click Window > Preferences.
In the left menu, expand IBM Integration.
Click Service Trace.
In the Integration API section, select the check box to enable tracing on the
CMP. The default file to which trace is written is C:/Documents and
Settings/userid/Application Data/IBM/MQ Explorer/.metadata/
AdminAPITrace.log where userid is your user ID.
5. Click OK to apply your changes and to close the Preferences window.
1.
2.
3.
4.
Procedure
1. Click Window > Preferences.
2. In the left menu, expand IBM Integration.
3. Click Service Trace.
4. Select the check box for the component that you want to trace, and select a
location for the log file for the trace. The default location for the trace files in is
the WebSphere MQ Explorer workspace directory.
5. Set a value for the log file size in the Maximum Trace File Size field. When the
size of the log file you set is exceeded, the original log file is copied to
filename.ext.bak. A new log file with the selected name is started.
6. Click OK to apply your changes and to close the Preferences window.
Related concepts:
Trace
If you cannot get enough information about a particular problem from the entries
that are available in the various logs, the next troubleshooting method to consider
is using trace. Trace provides more details about what is happening while code
runs. The information produced from trace is sent to a specified trace record, so
that you or IBM support personnel can analyze it to discover the cause of your
problem.
The IBM Integration API
The IBM Integration API is a programming interface that your applications can use
to control brokers and their resources through a remote interface.
Related tasks:
Using trace on page 845
You can use different types of trace to help you with problem determination and
Chapter 4. Troubleshooting and support
863
troubleshooting.
Starting user trace
Use user trace for debugging your applications; you can trace brokers, integration
servers, and deployed message flows. Start user trace facilities using the
mqsichangetrace command or the IBM Integration Explorer.
IBM Integration API (CMP) trace on page 867
Enable or disable service trace for the IBM Integration API (also known as the
CMP).
Related reference:
User trace
User trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Administration log. User trace is inactive by default; you
must activate it explicitly by using a command, or by selecting options in the IBM
Integration Toolkit.
Service trace
Service trace is one of two types of optional trace that are available in IBM
Integration Bus and provides more information than that provided by the entries
that are written to the Event Log or to user trace. Service trace is inactive by
default; you must activate it explicitly by using a command.
IBM Integration Toolkit
The IBM Integration Toolkit provides your application development environment
on Windows and Linux on x86.
ODBC trace
You can use various methods to trace for ODBC activity, depending on the
operating system that you are using.
2.
3.
4.
5.
To stop ODBC tracing, on the Tracing tab, click Stop Tracing Now, then OK.
Linux
UNIX
For Linux and UNIX operating systems using IBM Integration
ODBC Database Extender drivers:
v To initiate trace for ODBC activity, edit the [ODBC] stanza in the odbcinst.ini
file in the directory pointed to by your ODBCSYSINI environment variable as
follows:
864
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
|
|
|
3. Remove the comment from the COMPDIR variable declaration and the APPLTRC DD
from the steps EGNOENV and EGENV, in the IBM Integration Bus started task JCL.
4. Stop and restart the broker after you have made all the changes to the BIPDSNAO
file and the started task JCL.
By default, the trace output file is written to <component_HFS>/output/, into a
file called db2appltrace.. Each address space has a unique number, and the
eight character integration server label appended to the end of db2appltrace.
This unique number, appended to the ODBC file, is the SE number in the
integration server address space JOBLOG.
If the eight character integration server label is not unique across multiple
integration servers, look for the value of SE in the JOBLOG for which you want
to view the ODBC trace, and find the file that specifies this value.
Results
Example
DB2 on IBM Integration Bus for z/OS
The following sample ODBC trace files show the layout of a trace file, together
with some examples of successful and error returns. The general layout of each
group in an ODBC file is that:
v Each line is preceded by a process/thread ID and time stamp.
v The first line displays what the call does.
v The second line displays the return.
v The third line displays the result.
The first trace file shows a trace where a call fails because an object does not have
the correct authority to perform an action:
[000207A9 0000000000000021] [2008-09-24 15:49:20.544123] SQLAllocStmt( hDbc=2, phStmt=&1c7f9554 )
[000207A9 0000000000000021] [2008-09-24 15:49:20.544156] SQLAllocStmt( phStmt=1 )
[000207A9 0000000000000021] [2008-09-24 15:49:20.544163]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 15:49:20.544179] SQLFreeStmt( hStmt=1, fOption=SQL_CLOSE )
[000207A9 0000000000000021] [2008-09-24 15:49:20.544189] SQLFreeStmt( )
[000207A9 0000000000000021] [2008-09-24 15:49:20.544194]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 15:49:20.544205] SQLPrepare( hStmt=1 )
[000207A9 0000000000000021] [2008-09-24 15:49:20.544212] ( pszSqlStr="SELECT TESTTABLE.ID FROM
WMQI77.TESTTABLE TESTTABLE", cbSqlStr=-3 )
[000207A9 0000000000000021] [2008-09-24 15:49:20.587083] SQLPrepare( )
[000207A9 0000000000000021] [2008-09-24 15:49:20.587101]
---> SQL_ERROR
[000207A9 0000000000000021] [2008-09-24 15:49:20.587157] SQLError( hEnv=0, hDbc=0, hStmt=1,
pszSqlState=&3902af28, pfNativeError=&3902af24, pszErrorMsg=&1b88b0b0,
cbErrorMsgMax=1024, pcbErrorMsg=&3902aefc )
[000207A9 0000000000000021] [2008-09-24 15:49:20.587190] SQLError( pszSqlState="42501", pfNativeError=-551,
pszErrorMsg="{DB2 FOR OS/390}{ODBC DRIVER}{DSN09015}
DSNT408I SQLCODE = -551, ERROR: WMQI83 DOES NOT HAVE THE PRIVILEGE TO PERFORM
OPERATION SELECT ON OBJECT WMQI77.TESTTABLE
DSNT418I SQLSTATE
= 42501 SQLSTATE RETURN CODE
DSNT415I SQLERRP
= DSNXOSC SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD
= -100 0 0 -1 0 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD
= XFFFFFF9C X00000000 X00000000 XFFFFFFFF
X00000000 X00000000 SQL DIAGNOSTIC INFORMATION
ERRLOC=1:13:2", pcbErrorMsg=623 )
865
---> SQL_SUCCESS
The second trace file shows the same trace file with the operation working:
[000207A9 0000000000000021] [2008-09-24 16:00:25.287052] SQLAllocStmt( hDbc=1, phStmt=&1c7f8e54 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.287068] SQLAllocStmt( phStmt=1 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.287075]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.287088] SQLFreeStmt( hStmt=1, fOption=SQL_CLOSE )
[000207A9 0000000000000021] [2008-09-24 16:00:25.287098] SQLFreeStmt( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.287104]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.287114] SQLPrepare( hStmt=1 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.287121] ( pszSqlStr="SELECT TESTTABLE.ID FROM
WMQI77.TESTTABLE TESTTABLE", cbSqlStr=-3 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302484] SQLPrepare( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302510]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302539] SQLFreeStmt( hStmt=1,
fOption=SQL_CLOSE )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302555] SQLFreeStmt( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302560]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302573] SQLExecute( hStmt=1 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302622] SQLExecute( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302628]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302660] SQLNumResultCols( hStmt=1,
pcCol=&3902c7fa )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302672] SQLNumResultCols( pcCol=1 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302679]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302697] SQLDescribeCol( hStmt=1, iCol=1,
pszColName=&3902cb10, cbColNameMax=200, pcbColName=&3902c804,
pfSQLType=&3902c802, pcbColDef=&3902c858, pibScale=&3902c800,
pfNullable=&3902c7fe )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302733] SQLDescribeCol( pszColName="ID",
pcbColName=2, pfSQLType=SQL_CHAR, pcbColDef=10, pibScale=0,
pfNullable=SQL_NULLABLE )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302819]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302826] SQLColAttribute( hStmt=1, iCol=1,
fDescType=SQL_DESC_OCTET_LENGTH, rgbDesc=NULL, cbDescMax=0,
pcbDesc=NULL, pfDesc=&3902c864 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302850] SQLColAttribute( pfDesc=10 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302857]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302866] SQLBindCol( hStmt=1, iCol=1,
fCType=SQL_C_CHAR, rgbValue=&1b48829c, cbValueMax=12,
pcbValue=&1b488298 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302888] SQLBindCol( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302894]
---> SQL_SUCCESS
[000207A9 0000000000000021] [2008-09-24 16:00:25.302901] SQLSetStmtAttr( hStmt=1,
fAttribute=SQL_ATTR_ROW_BIND_TYPE, pvParam=&10, iStrLen=0 )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302917] SQLSetStmtAttr( )
[000207A9 0000000000000021] [2008-09-24 16:00:25.302922]
---> SQL_SUCCESS
[000207A9 0000000000000021]
fAttribute=Unknown value 9,
[000207A9 0000000000000021]
[000207A9 0000000000000021]
866
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Related reference:
Supported databases
You can optionally configure databases to contain data that is accessed by your
message flows. Databases from IBM and other suppliers are supported at specific
versions on supported operating systems.
Database facilities
The database products used by IBM Integration Bus also record information that
might be useful if you have any problems with their access.
867
868
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
If the Trace node setting for an integration server is off, all Trace nodes in its flows
are disabled. You can change the settings for Trace nodes in individual message
flows; the settings are applied when you turn on Trace nodes for the integration
server. If the Trace node setting for an integration server is on, the Trace node
switch setting of each message flow determines the effective settings. Use the
mqsireporttrace command to check the settings for message flows and integration
servers.
Procedure
Enter the following command:
mqsichangetrace IB9NODE -n off -e default -f myFlow
869
Procedure
1. To turn on Trace nodes for the message flow, enter the following command:
mqsichangetrace IB9NODE -n on -e default -f myFlow
Trace nodes for the myFlow message flow are turned on, but this setting is not
applied until you turn on trace nodes for the integration server.
2. To turn on Trace nodes for the integration server, enter the following command:
mqsichangetrace IB9NODE n on -e default
Trace nodes are turned on for the default integration server. Within that
integration server, Trace nodes are enabled in all message flows that have Trace
nodes turned on, including the myFlow message flow.
Procedure
Enter the following command:
F MQP1BRK,ct n=off, e=default, f=myFlow
Procedure
1. In the Navigator view, expand the Integration Nodes folder and right-click the
integration server with which you want to work.
2. Click Trace Nodes All Flows > Enable. An alert saying Trace nodes are
switched on is displayed in the Alert Viewer. The Trace node switch setting of
each message flow determines the effective settings.
870
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. In the Navigator view, expand the Integration Nodes folder and right-click the
message flow with which you want to work.
2. Click Trace Nodes > Enable An alert is displayed in the Alert Viewer.
Related concepts:
IBM Integration Explorer
The IBM Integration Explorer is a graphical user interface based on the Eclipse
platform for administering your integration nodes (brokers).
Related reference:
mqsichangetrace command
Use the mqsichangetrace command to set the tracing characteristics for a broker.
mqsireporttrace command
Use the mqsireporttrace command to display the trace options currently in effect.
Trace can be run only against a broker, or any of its resources.
Trace node
Use the Trace node to generate trace records that you can use to monitor the
behavior of a message flow.
Procedure
v Checking for dumps on page 872
v Using the DUMP command on z/OS on page 873
v Checking for abend files on page 875
871
What to do next
You can also use the IBM Support Assistant Data Collector on page 879 to help
with data collection.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
IBM Support Assistant Data Collector on page 879
You can collect diagnostic documents by using IBM Support Assistant Data
Collector, and submit a problem report to IBM. IBM Support Assistant Data
Collector is included with your IBM Integration Bus installation.
Related reference:
Abend files
When a process does not end normally an abend file is generated.
Dumps
Under exceptional circumstances, Windows MiniDumps, UNIX core dumps, or
z/OS SVC or core dumps might be produced.
Procedure
v On Windows
BIP2111 error message (message broker internal error). The error message
contains the path to the MiniDump file in your errors directory.
v On UNIX
BIP2060 error message (integration server terminated unexpectedly). Look in the
directory where the broker was started, or in the service user ID's home
directory, to find the core dump file.
v On z/OS
BIP2060 error message (integration server ended unexpectedly) from the main
Broker Address Space. This message should be accompanied by one of the
following messages and dump.
IEF450I message in the syslog, or component's joblog, showing an abend
code followed by a reason code, for example:
IEF450I MQ83BRK DEFAULT - ABEND=S2C1 U0000 REASON=000000C4
Look in the system's dump dataset hlq for the dump dataset, or search the
syslog for the appropriate IEA611I message to find out the dump dataset
name.
IEA993I message in the syslog for a SYSMDUMP. Look in the started task
user's directory for the coredump.pid file, as specified in the syslog:
IEA993I SYSMDUMP TAKEN TO coredump.00500319
872
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
An error message for an SVC dump; see Dumps on IBM Integration Bus for
z/OS for further information on SVC dumps.
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using dumps and abend files on page 871
A dump or an abend file might be produced when a problem occurs. Dumps and
abend files can be used by IBM to resolve the problem.
Checking for abend files on page 875
Abend files are produced when a process ends abnormally. The information
contained in an abend file helps the IBM Support Center to diagnose and fix the
problem.
Using the DUMP command on z/OS
Follow the steps in this task to use the DUMP command on z/OS.
Related reference:
Dumps
Under exceptional circumstances, Windows MiniDumps, UNIX core dumps, or
z/OS SVC or core dumps might be produced.
Abend files
When a process does not end normally an abend file is generated.
Procedure
1. Find the address space ID of the address space that you want to dump using
the display command on the z/OS syslog:
D OMVS,U=your started task user ID
This command displays the address spaces of all the processes that are running
from your started task user ID, for example:
D OMVS,U=MQ01BRK
BPXO040I 16.14.30 DISPLAY OMVS 237
OMVS
000D ACTIVE
OMVS=(14)
USER
JOBNAME ASID
PID
PPID STATE START
CT_SECS
MQ01BRK MQ01BRK
LATCHWAITPID=
009D
48.37
873
MQ01BRK MQ01BRK
LATCHWAITPID=
MQ01BRK MQ01BRK
LATCHWAITPID=
MQ01BRK MQ01BRK
LATCHWAITPID=
MQ01BRK MQ01BRK
LATCHWAITPID=
009D
009D
009F
009F
84083282
1 1WI--- 15.41.55
48.37
0 CMD=/argoinst/S000_L30307_P/usr/lpp/mqsi/bin
16974444 67306064 HRI--- 15.42.01
48.37
0 CMD=bipbroker MQ01BRK
16974445
1 1W---- 15.42.05 2914.22
0 CMD=/argoinst/S000_L30307_P/usr/lpp/mqsi/bin
33751662 16974445 HR---- 15.42.05 2914.22
0 CMD=DataFlowEngine MQ01BRK ca614eec-f300-000
The infrastructure main program bipimain is the first process in every address
space. For a control address space, bipimain starts the bipservice process, which
starts the bipbroker process, which might also start the biphttplistener process,
depending on the configuration. For a DataFlowEngine address space, bipimain
starts the DataFlowEngine process. For each integration server, an additional
DataFlowEngine address space is started. In this example, only one integration
server is deployed.
2. Use the z/OS DUMP command to dump the DataFlowEngine address space,
which is shown in the above example as 9F.
a. Enter the following command:
DUMP TITLE=(DFE)
The console returns:
*`15 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND
b. Enter:
R 15,ASID=9F,CONT
The console returns:
*16 IEE094D SPECIFY OPERAND(S) FOR DUMP COMMAND
c. Enter:
R 16,SDATA=(CSA,RGN,PSA,SQA,LSQA,LPA,TRT,GRSQ,SUM),END
The console returns:
IEE600I REPLY TO 16 IS;SDATA=(CSA,RGN,PSA,SQA,LSQA,LPA,TRT,GRSQ,SUM),END
IEA794I SVC DUMP HAS CAPTURED: 356
DUMPID=014 REQUESTED BY JOB (*MASTER*)
DUMP TITLE=DFE
IEF196I IGD101I SMS ALLOCATED TO DDNAME (SYS00018)
IEF196I
DSN (SYS3.DUMP.ARG5.#MASTER#.T142958.S00014
)
IEF196I
STORCLAS (SMS) MGMTCLAS (DUMP) DATACLAS (
)
IEF196I
VOL SER NOS= ARGSMR
874
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
R 15,JOBNAME=(OMVS,MQ01BRK),DSPNAME=(OMVS.*),SDATA=(PSA,SQA,LSQA,RGN,TRT,
LPA,CSA,GRSQ,SUM,NUC)
Results
You can also find information on the individual thread by issuing the DISPLAY
z/OS console command, as in the example:
D OMVS,PID=83886535
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Using dumps and abend files on page 871
A dump or an abend file might be produced when a problem occurs. Dumps and
abend files can be used by IBM to resolve the problem.
Checking for dumps on page 872
If a dump occurs on your system, an error message is produced.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Related reference:
Dumps
Under exceptional circumstances, Windows MiniDumps, UNIX core dumps, or
z/OS SVC or core dumps might be produced.
Abend files
When a process does not end normally an abend file is generated.
875
Procedure
v The broker runs out of memory.
v A user-defined extension causes an instruction in the broker process that is not
valid.
v An unrecoverable error occurs in the broker.
Results
Abend files are never produced during normal operation. If an abend file is
produced, contact the IBM Support Center for assistance.
Related tasks:
Contacting your IBM Support Center
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Checking for dumps on page 872
If a dump occurs on your system, an error message is produced.
Using dumps and abend files on page 871
A dump or an abend file might be produced when a problem occurs. Dumps and
abend files can be used by IBM to resolve the problem.
Using the DUMP command on z/OS on page 873
Follow the steps in this task to use the DUMP command on z/OS.
Related reference:
Dumps
Under exceptional circumstances, Windows MiniDumps, UNIX core dumps, or
z/OS SVC or core dumps might be produced.
Abend files
When a process does not end normally an abend file is generated.
876
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
v All current trace and error logs, including relevant Windows Event log
or LinuxUNIX operating system syslog entries, and any abend or dump
files from the install_dir\errors directory on Windows, or the
/var/mqsi/errors directory on LinuxUNIX. Obtain user trace log files at
debug level for all relevant message flows and preferably format them.
Also include any requested service trace files.
v
v
v
v
v
v
v
v
Windows
For Windows:
v The version.
v The Service Pack level.
Chapter 4. Troubleshooting and support
877
z/OS
For z/OS:
v The product version
v The list of PTFs that have been applied
v The environment settings
878
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
component.
mqsireporttrace command
Use the mqsireporttrace command to display the trace options currently in effect.
Trace can be run only against a broker, or any of its resources.
Procedure
v Collecting data in console mode with IBM Support Assistant Data Collector on
page 880
v Selecting a problem collector for IBM Support Assistant Data Collector on
page 881
What to do next
Note: The IBM Support Assistant Data Collector is not supported for z/OS.
Related concepts:
Selecting a problem collector for IBM Support Assistant Data Collector on page
881
You can use the problem collectors installed with IBM Support Assistant Data
Collector to gather diagnostic information.
Related tasks:
Collecting data in console mode with IBM Support Assistant Data Collector on
page 880
You can use the IBM Support Assistant Data Collector in console mode to collect
diagnostic documents for submission to IBM.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
879
880
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
When the IBM Support Assistant Data Collector completes, a .zip file is created
at the location specified during the collection. You can extract the compressed
files and examine the collected data by using a suitable tool.
What to do next
Note: The IBM Support Assistant Data Collector is not supported for z/OS.
Related concepts:
Selecting a problem collector for IBM Support Assistant Data Collector
You can use the problem collectors installed with IBM Support Assistant Data
Collector to gather diagnostic information.
Related tasks:
IBM Support Assistant Data Collector on page 879
You can collect diagnostic documents by using IBM Support Assistant Data
Collector, and submit a problem report to IBM. IBM Support Assistant Data
Collector is included with your IBM Integration Bus installation.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Contacting IBM Software Support on page 885
IBM Software Support provides assistance with product defects.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
881
Procedure
1. Search the information center
IBM provides extensive documentation in the form of online information
centers. An information center can be installed on your local machine or on a
local intranet. An information center can also be viewed on the IBM Web site.
You can use the powerful search function of the information center to query
conceptual and reference information as well as detailed instructions for
completing tasks.
2. Search the Internet
If you cannot find an answer to your question in the information center, search
the Internet for the latest, most complete information that might help you
resolve your problem, including:
v IBM technotes
v
v
v
v
v
IBM downloads
IBM Redbooks publications
IBM developerWorks
Forums and newsgroups
Internet search engines
Related concepts:
Troubleshooting overview on page 647
Troubleshooting is the process of finding and eliminating the cause of a problem.
Whenever you have a problem with your IBM software, the troubleshooting
process begins as soon as you ask yourself "what happened?"
Related tasks:
882
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. From the support site (IBM Integration Bus support web page), locate the
Notifications box in the center of the page.
883
2. If you are not signed in, click Sign in to create, manage or view your
subscriptions. If you have not registered, click register now on the sign-in page
and follow the on-screen instructions.
Click Manage my subscriptions.
Click the Subscribe tab. A list of products families is shown.
In the Software column, click WebSphere. A list of products is shown.
Select the product for which you want to receive notifications (for example,
WebSphere Message Broker), then click Continue.
7. Set options to determine what notifications you receive, how often you receive
them, and to which folder they are saved, then click Submit.
3.
4.
5.
6.
Related concepts:
Troubleshooting overview on page 647
Troubleshooting is the process of finding and eliminating the cause of a problem.
Whenever you have a problem with your IBM software, the troubleshooting
process begins as soon as you ask yourself "what happened?"
Related tasks:
Chapter 4, Troubleshooting and support, on page 647
If you are having problems with your message flow applications, use the
techniques described in this section to help you to diagnose and solve the
problems.
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Dealing with problems on page 666
Learn how to resolve some of the typical problems that can occur.
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Using dumps and abend files on page 871
A dump or an abend file might be produced when a problem occurs. Dumps and
abend files can be used by IBM to resolve the problem.
Getting product fixes on page 883
A product fix might be available to resolve your problem. You can determine what
fixes are available from the IBM support site.
Contacting IBM Software Support on page 885
IBM Software Support provides assistance with product defects.
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
Related reference:
Troubleshooting
Use the reference information in this section to help you diagnose errors in IBM
Integration Bus.
884
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Procedure
1. Determine the effect of the problem on your business
2. Describe your problem and gather background information on page 886
3. Submit your problem to IBM Software Support on page 886
885
Severity 2
Significant effect on business: The program is usable but is severely
limited.
Severity 3
Some effect on business: The program is usable with less significant
features (not critical to operations) unavailable.
Severity 4
Minimal effect on business: The problem has little effect on operations, or
a reasonable workaround to the problem has been implemented.
886
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
887
Procedure
v Recovering after the broker fails
v Recovering after an integration server fails on page 889
v Recovering after the broker queue manager fails on page 890
Related tasks:
Making initial checks on page 650
Before you start problem determination in detail, consider whether there is an
obvious cause of the problem, or an area of investigation that is likely to give
useful results. This approach to diagnosis can often save a lot of work by
highlighting a simple error, or by narrowing down the range of possibilities.
Using logs on page 839
There are a variety of logs that you can use to help with problem determination
and troubleshooting.
Using trace on page 845
You can use different types of trace to help you with problem determination and
troubleshooting.
Dealing with problems on page 666
Learn how to resolve some of the typical problems that can occur.
Contacting your IBM Support Center on page 876
If you cannot resolve problems that you find when you use IBM Integration Bus,
or if you are directed to do so by an error message generated by IBM Integration
Bus, you can request assistance from your IBM Support Center.
Procedure
1.
2.
3.
4.
5.
6.
888
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Deleting a broker on page 29
Delete a broker using the command line on the system where the Integration Bus
component is installed.
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
Procedure
1. Delete the integration server.
2. Create an integration server of the same name.
3. Redeploy the configuration.
889
What to do next
If more than one integration server fails, you might need to re-create the broker.
See Recovering after the broker fails on page 888 for information on how to do
this.
Related tasks:
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
Recovering after the broker fails on page 888
Check what recovery procedures are available, according to what has failed.
Procedure
1. Ensure that no IBM Integration Toolkit users are deploying to the broker. You
must wait until any such actions have completed.
2. Stop the broker by using the mqsistop command.
3. Delete the broker by using the mqsideletebroker command, with the -q
parameter to remove the queue manager.
4. Re-create the broker by using the mqsicreatebroker command. The
mqsicreatebroker command creates the queue manager and default queues
automatically.
5. Re-create any specific queues that are needed for your message flows.
6. Start your brokers by using the mqsistart command.
7. Redeploy all resources to the broker to ensure that its configuration is
consistent.
Related tasks:
Creating a broker
You can create brokers on every platform that is supported by IBM Integration
Bus. The broker runs as a 64-bit application on all platforms except Linux on x86
and Windows on x86.
Deleting a broker on page 29
Delete a broker using the command line on the system where the Integration Bus
component is installed.
Recovering after failure on page 887
Follow a set of procedures to recover after a serious problem.
890
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Related reference:
mqsicreatebroker command
Use the mqsicreatebroker command to create a broker and its associated resources.
mqsideletebroker command
Use the mqsideletebroker command to delete a named broker. The command also
deletes the queues on the associated queue manager (created when the broker was
created). You can also specify that the queue manager is to be deleted.
mqsistart command
Use the mqsistart command to start the specified broker if all initial verification
tests complete successfully.
mqsistop command
Use the mqsistop command to stop the specified component.
Diagnostic messages
Diagnostic messages are listed in this section in numeric order, grouped according
to the component to which they relate.
You can also view the full content of BIP messages for runtime components by
using the mqsiexplain command. For more information, see mqsiexplain
command.
v Runtime components (BIP)
v Toolkit (BIP)
v WebSphere Adapters (CWY)
PeopleSoft Enterprise (CWYES)
SAP Software (CWYAP)
Siebel Business Applications (CWYEB)
891
892
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
893
894
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user's responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not grant you
any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing 2-31 Roppongi 3-chome, Minato-ku
Tokyo 106-0032, Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS
PUBLICATION AS IS WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or
implied warranties in certain transactions, therefore, this statement may not apply
to you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the publication. IBM may make improvements
and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Copyright IBM Corp. 1999, 2014
895
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Corporation
Software Interoperability Coordinator, Department 49XA
3605 Highway 52 N
Rochester, MN 55901
U.S.A.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this information and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement, or any equivalent agreement
between us.
Any performance data contained herein was determined in a controlled
environment. Therefore, the results obtained in other operating environments may
vary significantly. Some measurements may have been made on development-level
systems and there is no guarantee that these measurements will be the same on
generally available systems. Furthermore, some measurements may have been
estimated through extrapolation. Actual results may vary. Users of this document
should verify the applicable data for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of
those products, their published announcements or other publicly available sources.
IBM has not tested those products and cannot confirm the accuracy of
performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the
suppliers of those products.
All statements regarding IBM's future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which
illustrate programming techniques on various operating platforms. You may copy,
modify, and distribute these sample programs in any form without payment to
IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating
platform for which the sample programs are written. These examples have not
been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or
imply reliability, serviceability, or function of these programs.
If you are viewing this information softcopy, the photographs and color
illustrations may not appear.
896
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of
International Business Machines Corporation in the United States, other countries,
or both. If these and other IBM trademarked terms are marked on their first
occurrence in this information with a trademark symbol ( or ), these symbols
indicate U.S. registered or common law trademarks owned by IBM at the time this
information was published. Such trademarks may also be registered or common
law trademarks in other countries. A current list of IBM trademarks is available on
the Web at Copyright and trademark information (www.ibm.com/legal/
copytrade.shtml).
Notices
897
898
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
899
900
IBM Integration Bus 9.0.0, Administering: IBM Integration Bus 9.0.0 Administering
Printed in USA