| By Praveen K. Chhangani | Article Rating: |
|
| November 6, 2004 12:00 AM EST | Reads: |
15,990 |
"Workflow" is a term that is typically used within the boundaries of operations and people involved within a given system. Most importantly, today it revolves around the aspects of business integration methodologies by promoting process automation and business level monitoring in real-time while supporting the fluctuations in business growth.
The IBM WebSphere MQ Workflow product provides an innovative integration approach that not only provides solutions enabling increased efficiency via automation involving disparate systems and people, but also leverages the benefits of IBM's industry-leading messaging product, IBM WebSphere MQ. WebSphere MQ provides benefits such as assured delivery of messages, dynamic delivery of workload, and an assurance of comprehensive security choices such as SSL (the Internet standard for secure communication).
When working in a Workflow environment we often see that performance is a critical issue that developers face. The questions below will give you a good diagnosis of areas that you may need to further investigate in order to improve performance.
25 Questions to Ask When Performance Is an Issue
1. HAVE YOU SET UP THE BEST ARCHITECTURE?To enable your applications to perform and scale to a growing number of users, it is always better, if possible, to use a distributed, three-tier model. Separate the writing of your database logs/files to a different area from where Workflow is installed, either a separate disk on a different file system (if on UNIX), or on a different node - and if the option is available, also install WebSphere on a different node. Depending on how the database is being thrashed and the number of times logs are being updated, these logs tend to grow to enormous sizes. This can cause two problems in particular:
- IO time suffers due to constant thrashing of the database.
- File systems fill up and Workflow goes down because of a lack of disk space.
If you have a large number of clients connecting to the default queue manager (usually called FMCQM), it is best to go with a WebSphere MQ setup quite popular in the Workflow world known as the "client concentrator." This separate queue manager serves as a host to the clients and then furnishes the requests to the Workflow queue manager.
3. DID YOU MEASURE THE BASIC WORKFLOW UNIT?
The Basic Workflow Unit (BWU) is a performance capacity planning measurement. A SupportPac is available from IBM that enables you to understand how expensive your source is and perhaps thereafter potentially seek more inexpensive ways to accomplish the same business measures. Here is a link to the SupportPac: www-1.ibm.com/support/docview.wss?rs=203&uid=swg24006573 .
4. HAVE YOU EVALUATED THE COST OF YOUR FLOW DEFINITION LANGUAGE (FDL)?
Using BWU calculations you can appraise your FDL costs. You then need to determine if that BWU metric is suitably in line with your hardware.
5. ARE YOU USING BLOCKS OR SUBPROCESSES?
Blocks are less expensive to the Workflow engine and, hence, are recommended over the use of subprocesses. If you need to use subprocesses (pieces of executable designed to be called from other processes), then it may be worth modeling once and using elsewhere as well. Again, keep in mind that the cost for a subprocess is a lot more than that of a block. Use blocks for looping activities and for error handling to a certain extent.
6. DO YOU HAVE MQSERIES TRACING TURNED ON?
Tracing can be used to produce diagnostic messages if you suspect there might be a problem with the code, causing performance to degrade.
7. ARE YOU USING DB2?
Have you worked with your DB2 DBA to optimize and maintain the Workflow databases? As a cleanup process, it is important to run DB2runstats and DB2rebinds on a regular basis (e.g., nightly) to update stats on tables and perform a rebind on execs respectively. The following provides a script to perform DB2 runstat and rebind.
db2 select tabname, stats_time from syscat.tables where tabschema="FMC"
db2 select pkgname, LAST_ BIND_ TIME from
syscat.packages where pkgschema=" FMC"
db2 reorgchk update statistics on table all
db2 rebind <pkgname> (for all packages)
8. ARE YOU USING ORACLE?
Are you performing the DBMS schema analysis on a regular basis? Be sure to educate the DBA on Workflow applications including how audit trails work in Workflow, situations where table spaces on the Oracle side might need to be increased, etc. Also, as ongoing maintenance Oracle should set up where performance is going down day by day. This may be achieved by running the commands shown below on a regular basis on your Oracle runtime database(s).
- execute dbms_utility.analyze_schema('FMC','COMPUTE');: Where FMC is the database user ID for the Workflow configuration. Note: If it takes too long to update the statistics based on all the data for the tables, enter the command below.
- execute dbms_utility.analyze_schema('FMC','ESTIMATE',20,");: Where 20 is the percentage of data used for estimating the statistics.
9. WHAT IS THE NUMBER OF WORKFLOW EXECUTION SERVER INSTANCES THAT YOU ARE RUNNING ON YOUR SERVER?
Make sure that number is in compliance with the number of physical CPUs on that box.
10. ARE YOU USING NOTIFICATIONS?
If so, are a lot of notifications being generated?
11. ARE YOU HAVING THE WORKFLOW SCHEDULING SERVER AND RELATED NOTIFICATION CHECK THAT INTERVALS RUN BEYOND THE RECOMMENDED RANGE?
They should not run less than 5 minutes.
12. IF YOU ARE USING MQ WORKFLOW VERSION 3.4, ARE YOU MAKING USE OF THE FMCINTERNALLOOP NOOP (NO OPERATION ACTIVITY) IN YOUR MODELS?
13. DO YOU HAVE STAFF RESOLUTION PERFORMED AT EVERY STEP...PERHAPS EVEN WHEN IT MAY NOT BE NEEDED?
14. WHAT TYPE OF WEBSPHERE MQ LOGGING IS ACTIVE?
- Circular? Circular logging rotates the logs every so often and overwrites the existing logs. This is suitable for smaller systems, but linear logging should be taken into consideration for large production systems.
- Linear? Linear logging will not rotate; it keeps writing to the log files. Be sure to work out your disk space and size for such logs well in advance with your UNIX team in order to allow for enough space. The log sizes can go up very quickly. However, this type of logging provides MQ administrators with more ability to backup/restore queues, which is not much of an option with circular logging.
- WebSphere MQ Monitoring: The more important queues (such as the EXEXMLINPUTQ) and channels should be monitored for being full, or for channels being down or in a state other than desired. Also, there should be monitoring on processes such as the MQ processes running on the system, the listeners, queue managers, channels etc. This level of granularity would provide a very robust architecture for monitoring and error handling/disaster recovery.
- Database monitoring: It is extremely important to have monitoring capability on the database logs as such logs tend to fill up file systems up pretty quickly. Other things that need to be monitored are the database processes, important database instances, etc.
- WebSphere Application Server Monitoring: It is important to also maintain a monitoring level on WebSphere Application Server. WebSphere processes, application servers, and related executables must be monitored to allow for quick error notification/recovery.
- Are there specific reasons why auditing is turned on? Is it definitely needed?
- If FULL auditing is turned on, are you writing to a specified WebSphere MQ queue (in XML format) or the audit trail database? Although it may seem counter-intuitive, research has shown that auditing to MQ is more expensive than auditing to the database. Auditing to a WebSphere MQ queue is, in my opinion, a little more robust in terms of the overall architecture of the Workflow system, as you can keep track of every single XML message more easily. Scan your FDL for such audits prior to importing and import only if needed.
By default this is turned off. If volume is extensive, have you turned this feature on in Workflow to take advantage of the recycling of the Workflow execution servers?
18. HAVE YOUR FILE SYSTEM(S) BEEN FLOODED?
19. WHAT ARE THE IO WAIT TIMES ON THE SERVER?
(iostat if on UNIX)
20. WHAT ARE THE CPU TIMES ON THE SERVER?
(vmstat if on UNIX)
21. IF YOU ARE IN A UNIX ENVIRONMENT, ARE YOUR DISKS STRIPPED?
22. WHAT ARE THE ASSIGNED CPU PRIORITIES FOR THE WORKFLOW PROCESSES ON THE SERVER?
(UNIX 'NICE' value)
- Fmcamain
- Fmcemains, etc.
Are all of those configurations having the same performance issues?
24. ARE YOU PASSING LARGE IMAGES THROUGH THE INPUT AND OUTPUT CONTAINERS?
25. ARE YOU USING SUSPEND?
Suspend is a programmatic interface (via APIs) to suspend a process instance. You must have the proper authority to do this. When a process instance is suspended, all work items within the process are also suspended. There is a "processinstance.suspend()" method and a "processinstance.suspenduntil()" method which suspends until a specified DateTime.
Typically, if you can get around the suspend process, it is recommended as it incurs a lot of overhead. An alternate, less expensive option is to use an expiration. When you set expiration on an activity and that expiration duration is hit, then the activity ends (finishes) and the state of the activity becomes "EXPIRED." The process flow then takes the next logical path to another activity (or ends depending on your model). Therefore, you can trick a workflow to use the expiration to create a "wait" activity. For example, if you have a process A ? B ? C ? D ? E, and after completing A you would like to wait 30 minutes before starting C, set an expiration of 30 minutes on activity B, and assign B to a "dummy user" who logs on to the Workflow system. The Workflow engine will interpret this as an activity that needs to be performed by the user and will wait for exactly 30 minutes. The "dummy user" will never log in and the flow will then automatically move on to step C after the 30 minutes. Another advantage of expiration is that it can be set within Workflow itself, within buildtime or the modeler products, and set on an activity level; suspend only works on the process level.
Hopefully these 25 tips will guide you on your way to a fully optimized WebSphere MQ Workflow environment. With the power of a streamlined environment, you can align and integrate your organization's resources and capabilities with your business strategies, accelerating the traditionally long-running process flows - thereby cutting overall costs and eliminating errors.
Published November 6, 2004 Reads 15,990
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Praveen K. Chhangani
As a certified IBM WebSphere MQ Workflow Specialist, Praveen K. Chhangani is part of Prolifics' specialized team of WebSphere consultants whom IBM calls upon to service its most challenging customer requirements by providing training, custom-ization, administration and configuring, architecture design, development, and deployment of distributed architectures.
Mr. Chhangani has several years of experience and is well rounded as a developer, analyst, adminis-trator and solutions architect. His extensive experience with IBM WebSphere MQ Workflow, WBI Modeler, Monitor and Process Choreography has proven invaluable in a full lifecycle of projects from requirement analysis, pro-cess design and automation, solution design, development to testing and mentoring for clients such as MCI and Principal Financial Group. Praveen K. Chhangani is also an IBM Certified SOA Associate as well as an IBM Certified Business Process Analyst - Webpshere Bisiness Modeler Advanced v6.0.2
![]() |
Staci Gulbrownson 11/10/04 11:33:35 PM EST | |||
Excellent article on mqworkflow. I was most benefited from the database related info as a common problem factor it seems in workflow. |
||||
![]() |
Scott Wilkinson 10/31/04 12:48:39 AM EDT | |||
I work for a large corporation and we were having several problems with our workflow system in conjunction with the IBM DB2 database system on AIX. This article helped us tremendously by looking at a number of things to narrow down the our resource usage on,and avoid following through with several unecessary PMRs. 2 thumbs up! |
||||
![]() |
Joe Dixon 10/30/04 09:39:10 PM EDT | |||
I just wanted to say that this is an excellent article. One of the things I like about it is that Praveen it appears has taken steps to make it simpe and easy to read and understand for business IT people like myself. I have a team of workflow guys and gals who are always having to sort through a whole bunch of documents and spending hours trying to figure out performance issues. I like that with this article we have an off the shelf solution if you will which is simple and easy to understand. Not too much jargon for business IT people like myself and still very candid and meaningful to our workflow staff. thanks |
||||
- IBM Rips Out Its Siebel Seats
- Big Data and the Cloud at Cloud Expo New York
- CleverTouch achieves compound growth of over 120% p.a., opens in Europe, and appoints new MDs and advisory board
- IBM Puts All Its Experience in a Box
- The Converged Application Container
- Hot Tech Firms at the 2012 DoDIIS Conference
- IBM Buying Varicent Software
- IBM and Red Hat Join OpenStack
- Cloud Office and Collaboration Productivity Applications Market Shares, Strategies, and Forecasts, Worldwide, 2012 to 2018
- IBM Sells POS Unit in Lenovo-Like Deal
- IBM’s Buying Vivisimo for Its Big Data Push
- Beyond the Walls of the Enterprise
- IBM Rips Out Its Siebel Seats
- Big Data and the Cloud at Cloud Expo New York
- CleverTouch achieves compound growth of over 120% p.a., opens in Europe, and appoints new MDs and advisory board
- IBM Puts All Its Experience in a Box
- The Converged Application Container
- Hot Tech Firms at the 2012 DoDIIS Conference
- IBM Buying Varicent Software
- IBM Acquires Worklight
- IBM and Red Hat Join OpenStack
- Cloud Office and Collaboration Productivity Applications Market Shares, Strategies, and Forecasts, Worldwide, 2012 to 2018
- IBM Sells POS Unit in Lenovo-Like Deal
- IBM’s Buying Vivisimo for Its Big Data Push
- Java vs C++ "Shootout" Revisited
- Where Are RIA Technologies Headed in 2008?
- WebSphere Application Server Java Dumps
- Breaking News: New Internal IBM Report Says "Another Flawed Study"
- How To Deploy Scalable WebSphere Applications Using "Maven" Build Tool
- Last Exclusive JDJ Interview With "IBM's" John A. Swainson, Now CA's Newly Appointed CEO
- Profiles for WebSphere Application Server 6.0
- Unveiling the java.lang.Out OfMemoryError
- Automated Deployment of Enterprise Application Updates
- Developing Java and Web Services Applications on Rational Application Developer V6
- Your Guide to Portal Clustering in WebSphere Portal Server 5.1
- The Top 250 Players in the Cloud Computing Ecosystem


















