TIBCO Developers Library - What is BusinessWorks Performance Tuning?

Aug 28, 2009

TIBCO BusinessWorks Performance Tuning

The performance of software or applications installed in every system may vary according to some aspects involved like the efficiency of the program and the specifications of the system.

The program may function very well but if the resource of the computer where it is installed does not meet its minimum requirements then it will affect the functionality of the program and other applications that may be running on the system. It may also slow down the computer.

There are also instances when the computer's resources are more than enough to be able to run applications. But the issue here is that the resources of the computer is not fully utilized. You may still be able to tune up your computer for better performance.

Upon installation and the use of the TIBCO BusinessWorks and its components, you may find your applications functioning very well, but what you do not know is that you can still be able to improve its performance. You may also have some negative issues depending on the computer that you are using, but don't worry because there are ways to be able to modify some settings of the TIBCO BusinessWorks so that it may be able serve your needs.

1. What TIBCO component is used for optimizing TIBCO BusinessWorks performance?

TIBCO Administrator is used for optimizing TIBCO BusinessWorks components. TIBCO Administrator functions as a central server for administering different TIBCO components. This tool can also be used for creation, deployment and management of applications.

To be able to access TIBCO Administrator's Interface, you need to use a web browser but before that, you should first make sure that the TIBCO Administrator service and the TIBCO Runtime Agent service for the domain that you will be using are both running.

Just for added information, TIBCO Runtime Agent (TRA) is needed so that you will be able to create projects using the TIBCO Designer and deploy and manage them using the TIBCO Administrator.

2. What is TIBCO ActiveMatrix BusinessWorks Engine?

TIBCO ActiveMatrix BusinessWorks Engine controls the execution of processes. These processes have activites to be executed and a set of resources. The BusinessWorks Engine also has other tasks such as management of connections, validation of data, managing and monitoring of different services, and configuring logs.

3. What changes in the settings can be done to optimize TIBCO BusinessWorks Performance?

We can modify parameters such as max jobs, flow limit, step count, activation limit, thread count, minProcessors, maxProcessors and accept count if we don't want all of our process instances to be held in memory because generally, process instances created reside in the memory of the computer.

Specifying a value in the max jobs means that the number of process instances in the memory will not exceed this value. If the value set for the max jobs is already reached, then the process instances created will be held on the disk of the computer, but they will be moved back to the memory if the memory space is already sufficient.

If a value is set for the flow limit, then the number of process instances created will not exceed this value. If this value is reached then the creation of process instances is suspended but the process instances already in memory still continue to run. Creation of new process instances will resume if the number of currently running process instances is more or less half the value set for the flow limit.

The value for step count is the number of tasks that are executed successively by a thread before it is released. However, this may not be true all the time because of some exceptions when the job is blocked or the job is in a transaction. If the job is in a transaction and the step count has already been exceeded, then the thread will still not be released until the transaction is completed. On the other hand, if the process instance is in a blocked condition or is waiting for an event then that process instance will be paged out to disk, and the memory space it was consuming will be used to run other process instances.

Checking the option for activation limit means that if the process instance is in a blocked condition, it will still stay in the memory and will not be paged out to disk until it is completed. Having this option checked will greatly affect the performance of the engine because the process instances in the memory may be waiting for an event indefinitely.

The thread count determines the number of process instances that can be executed at the same time. The default value of this parameter is eight. Setting a different value for this parameter may be done in a trial and error manner because different values have different pros and cons. If the throughput is satisfactory but the system's resources are not fully used, then you can set this parameter to a higher value; however, take note that if you specify a value that is too high it may cause CPU thrashing behavior. On the other hand, if you set a value that is too low, it will increase the use of memory but the throughput will be lowered and some of the system's resources may not be utilized.

For processes that use HTTP connection, we can modify the minProcessors, maxProcessors, and acceptCount parameters. The minProcessors which has a default value of ten determines the number of threads that are initially created when the HTTP server starts. Setting a high value for minProcessors may block some CPU resources because a large number of threads that may not be necessary are created.

The maxProcessors which has a default value of 75 determines the maximum number of threads that can be created by the HTTP server. Setting a high value for this parameter can increase concurrency of executing process instances but the throughput for the process executions may decrease. On the other hand, if the value for maxProcessors is low, then there is an increased throughput but the number of processes executed concurrently will also be limited.

The acceptCount parameter which defaults to 100 determines the maximum number of connection requests that are accepted when all the processors of HTTP are already running. When the value set for this parameter is reached then all incoming requests are discarded. If you set a low value for maxProcessors, then you can set a higher value in acceptCount so that connection requests will not be rejected.

4. What modifications in the Java Virtual Machine can we do to optimize the BW engine's performance?

Java Virtual Machine (JVM) is a set of applications that use a virtual machine to execute other computer programs. For an overview, a virtual machine is an application that has the functionality of running other applications just like a real computer. In TIBCO, the BusinessWorks engine is running in a JVM.

You can configure the heap size for the engine by setting a minimum and maximum value. These values determine the amount of memory to be used by the engine. You can also enable garbage collection so that resources in the system that are no longer in use can be deleted.

5. What are the characteristics of activities in BusinessWorks and how will it affect the engine's performance?

There are two types of activities in BusinessWorks. They can either be blocking or non-blocking activities. This is determined based on how the activity functions with the thread.

Blocking activities are activities that are executed using the engine thread. This type of activity may affect the engine's performance because if this activity is waiting for an event then the engine thread will also be waiting for the activity to resume from its waiting state.

Non-blocking activities are activities that are executed using a private thread. This kind of activity does not affect the engine's performance because when the activity is processing, it switches to its own private thread. When it is done with its process, it will be fetched by the engine thread that is currently running.

6. What are other factors that may affect the BW engine's performance? The other factors that may affect the BW engine's performance are the following:

o If you are using enterprise messaging, then the number of incoming messages and the rate of its creation in the messaging server may affect the engine's performance.

o If your application is connected to other third party applications, then the other applications efficiency in processing may also affect the engine's performance.

o If your computer has other applications currently running or it is performing some update on your system, it will also affect the BW engine's performance.

Using TIBCO makes developers very productive because it is easy to use and the development of applications and business processes takes a less amount of time. Furthermore, it adds other useful features and it can still be tuned up for better performance.

As a TIBCO developer, Rique Q. practices his expertise together with other TIBCO programmers of Xmarter, Inc., a TIBCO consulting firm assisting companies in integrating and optimizing business processes. Reach them at info@xmarter.com or know more about the benefits you can get from them at http://www.xmarter.com

  © Free Blogger Templates Columnus by Ourblogtemplates.com 2008