Read the original article at The Crooked Stick
Following my previous blog entries on building an Open ESB BPEL
Monitor I decided to bring it all together in this blog and provide a
simple User Guide that describes the current features. This page will
also be available from within the downloaded war file (assuming you can
connect to the internet).
Overview
The OpenESB BPEL Monitoring tool is built upon the standard OpenESB
Management and Monitoring API and provides a simple interface to view
the running BPEL Processes and their instances. At present only
monitoring functionality is provided but the screens can be extended to
implement management functions. When the page is first displayed, or
refresh with the browser, the user will be presented with the Dashboard
Tab and a list of currently deployed BPEL Modules and process as a List
on the left of the screen. Selecting on of these processes will display
the selected process with the Process Monitor tab.
Dashboard
Provides the user with a summary of all Bpel Instances that have been deployed to the application server.
Process Monitor
The Process Monitor is the main Tab that will be used and contains a
number of sub-tabs that display process specific information. The
information displayed within this tab is that associated with the
select Business Process. When initially selected the Summary
information will be displayed along with a representation of the
business process. The summary information is that displayed for the
selected process on the Dashboard tab.
The user can then select the Instances tab and this will display a,
Filtered, list of all instances of the process and are colour coded
based on their status as follows:
- Green : Completed.
- Blue : Running.
- Red : Terminated / Faulted.
- Yellow : Selected.
Above the table of Instances are a number of Filter fields that can
be used to restrict and order the displayed instances.
When the user selects and instance the displayed Business Process
will be updated to indicate the status of the individual Activities
within the Business Process thus highlighting where the business
process is in its processes and any activities where it is either
waiting or broken.
In addition to this if the Business Process Invokes another,
Sub-Process, within the same deployment the user will be able to click
on the Invoke and drill down to the Sub-Process.
For any selected Instance the user can select the Activities Tab and
a table of all the activities within the Process will be displayed
along with their associated statistics.
The Statistics Tab will display simple processing Statistics for the
Select BPEL Process Instances displayed in the Instance Table and the
data is controlled by the same filter criteria.
For large Business Processes the user can select, from the
configuration tab, to Collapse the Composite Activities. This will
collapse the Sequences and Scopes within the Business Process to a
Single Icon, thus reducing overall screen real-estate, which will be
selectable allowing the user to expand the collapsed activity.
When the user has selected an Activity to expand the Composite
Activity will be displayed with a small Icon in the to right that will
allow the user to collapse the Activity again.
Configuration
The Configuration Tab allows the user to specify a number of
optional parameters that will affect the way that the monitor will be
displayed. The configuration parameters available in the present
release are as follows and have the functionality described below:
- Refresh Period : Defines the Refresh period for the data displayed within the Monitor. If this is set to "Manual Refresh" then the monitor data will only be refreshed when the user selects the Browsers Refresh button.
- Process Layout : Simply defines the display layout for the business process. This allows you to switch between standard OpenESB Vertical layout to a more browser friendly horizontal layout.
- Icon Set : Defines the Icon Set to be used within the display of the Business Process. At present you can select between the standard Open ESB Icons and an alternative set.
- Icon Size : Allow the user to select the size of the icons to be displayed. This can be useful for large business processes that do not fit easily on the page.
- Layout : Additional BPEL Process Layout functions:
- Show Sequence Names : Display the Sequence Name for all Sequences in the process.
- Show Scope Names : Display the Scope Name for all scopes within the process.
- Hide Assigns : Flag to indicate if the Assigns should be displayed within the Business Process. Useful for large business processes.
- Collapse Composite Activities : Flag to indicate if the Composite Activities (Sequence and Scope) should be collapsed. If this flag is set the user will be able to click the collapsed Activity to expand it and see the contained Activities.
Once the properties have been chosen the "Update" button will apply
the settings and redisplay the Process Monitor tab.
Adding New Icon Sets
With the latest release of the Monitor we are able to customise the
Monitor Web Application by adding additional Icon Sets. Once added
these Icons can be used instead of the standard shipped Icons. The
following step show you how to this can be done:
- Create an Icon Set of type .png and with the specific names used in the existing Icon Sets. To check you have this correct look in <glassfish domain>/applications/j2ee-modules/BPELMonitorWebApplication/resources/icons/openesb.
- Create a sub directory of <glassfish domain>/applications/j2ee-modules/BPELMonitorWebApplication/resources/icons to contain your icons (myicons) and copy the icons into it.
- Edit the <glassfish
domain>/applications/j2ee-modules/BPELMonitorWebApplication/iconsets.properties
file and add the following:
myicons=My Icons Display Name (This is what will appear in the drop down)
- Refresh the monitor page and choose your Icon Set.
Performance Tweaks
If you are seeing some performance degradation when their is a large
number of instances within the BPELSE monitoring database we can
improve query performance by adding the following indexes to the
database.
CREATE INDEX idx_BPELID ON MONITORBPELINSTANCE(BPELID);
CREATE INDEX idx_CRMPINVOKEID ON MONITORBPELACTIVITY(CRMPINVOKEID);
CREATE INDEX idx_CRMPRECEIVEID ON MONITORBPELACTIVITY(CRMPRECEIVEID);
This can be achieved by opening / creating a connection the the bpelseDB within NetBeans and executing the commands against the connection.


















Excellent work !
Thanks for everyone who are using this useful tool. I have some more hint if you have some time and will to enhance it that would be great to have also some dashboard/graph with bpel instances which are having TOP numbers of iterations of some activities. Like this can be easily recognized some issue if there are some activities with too many iterations. It can also happen when process has a bad design, or when exception handling gets too recursive.
Best Regards,
Ivan
Posted by Ivan on November 06, 2009 at 05:53 PM GMT #
I can't seem to find the way to install and run the bpel monitor with OpenESB. Any help ? Thanks.
Posted by v on November 09, 2009 at 03:05 PM GMT #
If you download the war file you can install this directly into your GlassFish instance, from the Admin Console, and then in the properties for the BPELSE set the monitoring options and redeploy your Composite Application. By default the Monitor should be available on http://localhost:8080/BPELMonitorWebApplication
Posted by 82.20.139.218 on November 09, 2009 at 03:57 PM GMT #
Thank you, it runs perfectly now !
Where can I get the latest source ? Is it in the war file ? Is the version of your older post up to date ?
Thanks for your work. I'll use it as a start for a slightly different monitoring app.
Posted by v on November 12, 2009 at 08:59 AM GMT #
Correction : the url of the monitor is :
http://localhost:8080/AjaxBPELMonitorWebApplication/
Posted by v on November 12, 2009 at 10:48 AM GMT #
Strictly speaking the name after the http://localhost:8080 depends on what you specify in the "Context Root" during the deployment of the war. By default this is the war name (minus the .war) and not what I have specified during the build (BpelMonitor). Hence because I changed the name on the download site you have a different URL. If you use the Redeploy option to redeploy the same war file you will find that your url changes to http://localhost:8080/BPELMonitor ie what I specified at build time. Seems to be an interesting feature of Glassfish deployment.
Posted by 82.20.139.218 on November 12, 2009 at 11:26 AM GMT #
I will be loading the latest version of the source to the URL location on the previous blog entry. This is only the source for the actual web application because the SvgGenerator.jar is now part of the upcoming official GlassFishESB Monitor functionality. Although I will continue to develop this core code and release updates of the Monitor that use it the proprietary source will not be made available.
The key difference between what is in the project zip at the moment and the new release is a few additional Ajax Servlets for displaying summary graphs and the Getting Started page.
Posted by Andrew on November 12, 2009 at 11:49 AM GMT #
Thanks for your sources update.
Posted by v on November 16, 2009 at 12:06 PM GMT #
I downloaded and installed the WAR. It is showing the process information and stats etc. but it is not generating the SVG with the BPEL layout. All I get is a message "BPEL Process Id Must Be Provided", what's wrong?
THX!
Posted by lukener on November 24, 2009 at 01:38 PM GMT #
This is an indication that a BPEL Process must be selected from the list on the left of the screen.
If you do not see this list or are still having problems it could be due to turning monitoring on whilst the BPEL process are already deployed.
Posted by Andrew on November 24, 2009 at 05:18 PM GMT #