Beruflich Dokumente
Kultur Dokumente
04 December 2013
Introduction
IBM Business Process Manager supports powerful, high-performance business process
management while providing a simple way to model business processes. It is based on Java
technology and a WebSphere Application Server infrastructure. This article outlines a set of tools
and techniques to help you with problem determination of IBM BPM production issues.
Trademarks
Page 1 of 28
developerWorks
ibm.com/developerWorks/
In the majority of the cases, "logging, tracing, monitoring, probing" involves capturing information
in a file for analysis by a subject matter expert (SME). Some of the collected data is sensitive and
you may not want to expose it outside of your organization. The following table lists the different
levels of sensitivity and how do you de-sensitize them:
How to de-sensitize
In the sections that follow, we call out the areas where you may need to take process or business
data sensitivity into consideration.
Page 2 of 28
ibm.com/developerWorks/
developerWorks
Monitoring/analysis tool
Garbage collection, JDBC threads, web threads, servlet threads, and so WebSphere Application Server Performance Monitoring Infrastructure
on
(PMI)
Page 3 of 28
developerWorks
ibm.com/developerWorks/
in the following sections, we'll describe some of these tools, as well as the data collection methods
for different types of system data, including:
Page 4 of 28
ibm.com/developerWorks/
developerWorks
Since the JConsole has already shipped with modern JVM, it is the most direct way to monitor the
memory usage of JVM, threads details, and classes information. By monitoring this information,
you can observe whether there is any memory leak over time or any thread in deadlock status that
no response.
The jconsole executable is in JDK_HOME/bin, where JDK_HOME is the directory where the JDK
is installed. If this directory is on your system path, you can start the tool by typing jconsole in a
command (shell) prompt. Otherwise, you have to type the full path to the executable file.
Page 5 of 28
developerWorks
ibm.com/developerWorks/
IBM Support Assistant is a cost-free client-side support and serviceability tool for all IBM
software users.
IBM Thread and Monitor Dump Analyzer for Java
IBM HeapAnalyzer helps you find a possible Java heap leak area through the use of a heuristic
search engine and analysis of the Java heap dump in Java applications. HeapAnalyzer analyzes
Java heap dumps by parsing the dump, creating directional graphs, transforming them into
directional trees, and executing the heuristic search engine.
For more information, refer to Using HeapAnalyzer to diagnose Java heap issues.
Page 6 of 28
ibm.com/developerWorks/
developerWorks
The GC and Memory Visualizer are part of a new tooling suite from IBM that analyzes verbose GC
logs to help provide just this sort of insight into memory management issues.
Cross-Component Trace
The Cross-Component Trace (XCT), available only in IBM BPM Advanced, maps SystemOut.log
and trace.log records back to the SCA programming model using WebSphere Integration
Developer.
Troubleshooting IBM Business Process Manager
Page 7 of 28
developerWorks
ibm.com/developerWorks/
Page 8 of 28
ibm.com/developerWorks/
developerWorks
Page 9 of 28
developerWorks
ibm.com/developerWorks/
Process Monitor
To access the Process Monitor, log into the Process Admin Console (http://
<server_ip>:<server_port>/ProcessAdmin) and select Monitoring => Process Monitor. Figure 7
shows the Summary page of the Process Monitor:
Page 10 of 28
ibm.com/developerWorks/
developerWorks
Instrumentation Monitor
This section tells you how to enables the display and collect instrumentation data. The
Instrumentation Monitor is useful for identifying BPMN process instance performance bottlenecks,
as well as capturing instrumentation data.
Log into the Process Admin Console and select Monitoring => Instrumentation Monitor. The
current instrumentation data is displayed as shown in Figure 9.
Page 11 of 28
developerWorks
ibm.com/developerWorks/
If you want to reset the instrumentation data to display the latest data, click Refresh. If you want to
automatically reset the instrumentation at set intervals, select a time unit from the Automatically
refresh every list.
To start logging instrumentation data, click Start Logging. The instrumentation data is saved in
a DAT format and the file is placed in the \logs folder. The exact path to the instrumentation log
directory is shown on the Instrumentation Monitor page when you start logging. For example:
<BPM_HOME>\AppServer\profiles\StandAloneProfile\.\logs\inst001.dat.
By checking the Instrumentation Monitor, you are able to see if system functions like EJB API,
caches, and database queries are taking longer than usual.
Instrumentation log files show every command that is issued on the Process Server and how long
each command takes to run. You should perform this analysis in conjunction with thread dumps
and log files.
For more information, see Reading and decoding instrumentation files for Teamworks, WebSphere
Lombardi Edition (WLE), and IBM Business Process Manager (BPM) products.
Troubleshooting IBM Business Process Manager
Page 12 of 28
ibm.com/developerWorks/
developerWorks
BPM provides the integrated Process Inspector as part of Process Designer. With the integrated
Process Inspector, you can debug a process in Process Designer. When you select the Inspector
tab on the Process Designer view, it switches to the Process Inspector. Click Start to start a
process and simulate it in Process Designer and to monitor the state of the process. If you get an
error on the process, you can easily identify the error and the location of it. Figure 12 shows an
integrated Process Inspector:
Page 13 of 28
developerWorks
ibm.com/developerWorks/
Note: Collected data might contain business data. Refer to Data sensitivity for information on desensitizing the sensitive business data.
Page 14 of 28
ibm.com/developerWorks/
developerWorks
Note: When you enable the Event Manager to collect or monitor event data, the collected data
may contain process data. Refer to Data sensitivity for information on de-sensitizing the sensitive
business data.
Page 15 of 28
developerWorks
ibm.com/developerWorks/
Business Flow Manager (BFM) infrastructure failures (hold queue messages are represented
as failed events)
Notes:
1. Trace can be enabled on demand for resubmission to further analyze related problems.
2. Failed events may contain process data. Refer to Data sensitivity for information on desensitizing the sensitive business data.
Page 16 of 28
ibm.com/developerWorks/
developerWorks
network is down; even whether the browser is encountering performance issues when executing
large Javascript programs.
This section describes some of the tools and practices you may need to employ to diagnose a
performance issue.
Page 17 of 28
developerWorks
ibm.com/developerWorks/
Database traces
Database product-specific traces, such as the AWR report for Oracle database, enable you
to identify the most often executed queries, as well as determine the time spent for the most
expensive queries.
You can turn on database trace in the IBM Business Process Manager repository by following
the instructions in Collect troubleshooting data for database problems for IBM Business Process
Manager (BPM).
Note: The collected data may contain process data. Refer to Data sensitivity for information on desensitizing the sensitive business data.
Security trace
In general, the IBM Business Process Manager products use the security features in WebSphere
Application Server. For more information, see:
MustGather: Read first for WebSphere Application Server
Search WebSphere Application Server MustGather documents
These features work for most of the security-related issues on the BPM server, especially BPM
Advanced components. You can also use the IBM Business Process Manager security trace:
WLE.wle_security=*.
Troubleshooting IBM Business Process Manager
Page 18 of 28
ibm.com/developerWorks/
developerWorks
Browser trace
Tools like Firefox Firebug and the Internet Explorer Developer Tool, as well as browserindependent tools like HTTPWatch and Fiddler enable you to examine the browser HTTP
requests and corresponding response times. They also assist with troubleshooting HTTP request/
response issues, such as portal and Coach-based issues, especially if they is related to expected
performance, missing web resources, or custom JavaScript issues with Coach views.
Network trace
Network latency is one of the major reasons for slow response time between Process Designer
and Process Center. There are lots of tools and the details for network issues, which are outside
the scope of this article. Following are some tools you can use to diagnosis the network issues in
some situations:
Use Fiddler for network latency issues to simulate network delay and observe the behavior.
Use Wireshark to help analyze network traffic.
Use tracert (for Windows) or Traceroute (for UNIX-based operating systems) to understand
the packet network pathways and network hops between two machines.
Use ping to ensure optimal network connectivity and measure latency in milliseconds.
Use telnet to ensure access to specific ports on a remote machine.
Note: The collected data may contain business data. Refer to Data sensitivity for information on
de-sensitizing the sensitive business data.
Troubleshooting IBM Business Process Manager
Page 19 of 28
developerWorks
ibm.com/developerWorks/
Note: The collected data may contain business data. Refer to Data sensitivity for information on
de-sensitizing the sensitive business data.
Out-of-memory issues
Out-of-memory issues are always sudden and often post-mortem analysis does not provide all the
scenario information that is required for problem determination. There are many possible causes
for out-of-memory issues, including:
Working with and uploading large documents
Creating a large number of instances and tasks in a very short time
Retrieving external data to populate a very large business object, such as one that has:
More than 100 member fields
Infinite recursive complex child members.
Following are procedures that you can perform to help narrow down the issue if you suspect the
out-of-memory issue is due to execution of a particular process instance.
Troubleshooting IBM Business Process Manager
Page 20 of 28
ibm.com/developerWorks/
developerWorks
1. Capture the java core and the associated heap dump resulting from the out-of-memory issue,
which indicate the state of the JVM at the time of the failure, as well as possible objects that
might have contributed to the issue. For example, they might show the product components
that caused or contributed to this failure, or even the individual process application component
that caused this failure.
2. After restarting the server, go into the Web Process Inspector, examine all of the instances,
and identify the last few instances that were updated prior to the out-of-memory issue. Those
instances are the most likely candidates that caused the out-of-memory issue.
3. After you narrow things down to the list of candidates, you need to examine the process
design to determine the most likely steps that are causing the out-of-memory issue.
Figure 21 shows an example heap dump showing that there is a BPM business object(org/jdom/
Element) that is occupying 1.4 GB.
Application logging
It is a good idea to include application logging in the Process App or SCA applications.
Troubleshooting IBM Business Process Manager
Page 21 of 28
developerWorks
ibm.com/developerWorks/
For an SCA-based application (developed in the IBM Integration Designer in IBM BPM Advanced),
you can turn on Cross-Component Trace and use IBM Integration Designer to analyze the
execution path of SCA modules. The log will record:
The message process sequence from module to module.
The entering time and exiting time of an SCA invocation.
When performance issues occur, this trace provides a lot of useful information on how much time
is consumed on your modules to help you determine the most time-consuming module.
For a BPMN-based application (developed in the Process Designer), you can turn on process
instrumentation so that you can see which services and processes take the longest time to
complete.
Note: Collected data may contain business data. Refer to Data sensitivity for information on desensitizing the sensitive business data.
Preventive measures
Preventing issues is always better than fixing them. In this section, we will talk about some
recommended measures to follow in order to prevent the potential issues from occurring in the first
place.
Procedures
2.
3.
4. Look for failed instances and identify the root cause of the
failure.
On a weekly basis
ibm.com/developerWorks/
developerWorks
Test updates
Testing is mandatory for any system change. It's best to prepare a testing environment and test
changes thoroughly before going to production:
Test any configuration changes, process changes, and process migration in your preproduction environment
Set up a production-like or identical environment to reproduce issues or to perform test
regression.
Page 23 of 28
developerWorks
ibm.com/developerWorks/
Plan a long-term task that is specific to your environment and applications. Things may
change over time: your database space may become full, the concurrent requests may grow,
or your JVM heap size may not be enough for your application. Set up a plan to monitor the
system performance frequently and immediately tune it to achieve high performance.
Conclusion
This article described the available tools and recommended approaches for different aspects of
BPM problem determination, as well as preventive measures and best practices you can follow to
help prevent problems from occurring in the first place.
Troubleshooting IBM Business Process Manager
Page 24 of 28
ibm.com/developerWorks/
developerWorks
Acknowledgements
The authors would like to thank the following people for their contribution of the content and their
experience to this article: Dawn Ahukanna, Susan Herrmann, Meng Wang, Richard Metzger,
Sandhya Kapoor, Ming Gao, Todd Deen, Matt Luczkowiak, Ray Tseng, Bill Wentworth, Lawrence
Louie, Dave Booz and Don Bourne.
Page 25 of 28
developerWorks
ibm.com/developerWorks/
Resources
Learn
Page 26 of 28
ibm.com/developerWorks/
developerWorks
Timothy Brantner
Tim Brantner is a Technical Support Manager of BPM, BPM Cloud, WebSphere
Process Server and Blueworks Live. In his current role, Tim leads and coordinates a
worldwide team to deliver the best possible support for BPM customers. Prior to his
current role, he specialized in delivering customer programs (skills transfer education,
beta programs, early design programs, and customer acceleration programs) and
customer support. Originally from Austin, Texas, Tim left development in the dot-com,
start-up world to join IBM in 2001 in Raleigh, North Carolina; where he still resides.
Jing You
Jing You has more than 10 years experience in software development and industry
solutions. He is currently an Advisory Software Engineer on the WebSphere BPM
Runtime Development team, where he works on the development and support for
SCA and web service bindings. He is also involved BPM-related customer support.
Prior to his current role, he was an architect with the Banking Industry Solution Lab in
IBM and led the design and delivery of the first Virtual Teller Machine (VTM) project in
China.
Sun Guang Da
Da Guang Sun is a Staff Software Engineer on the BPM Level 3 Support team,
currently providing L3 support for WebSphere Process Server and BPM productrelated issues related to SCA, business objects, bindings and web services.
Page 27 of 28
developerWorks
ibm.com/developerWorks/
Dave Spriet
Dave Spriet is a Senior Software Architect for IBM business process management
and works with customers and business partners in his BPM SWAT role, which
involves BPM architecture reviews, migration, upgrade and customer enablement.
Dave has been with IBM since 1998 and has focused primarily on BPM, SOA and
connectivity throughout his career. He has a Bachelor's degree (with Honors) in
Computer Science and Statistics from McMaster University, Canada.
Copyright IBM Corporation 2013
(www.ibm.com/legal/copytrade.shtml)
Trademarks
(www.ibm.com/developerworks/ibm/trademarks/)
Page 28 of 28