![]() |
![]() |
The tuning of IBM Business Process Manager (BPM) servers is described in the following IBM Redbooks publication: IBM Business Process Manager V8.0 Performance Tuning and Best Practices.
The properties file is described in detail within the following topic in the WebSphere Application Server Information Center: Using properties files to manage system configuration.
Because the IBM Business Process Manager products are based on WebSphere Application Server, many configurations that apply to WebSphere Application Server also apply to IBM Business Process Manager as well. For example:
-
Tuning thread pools
-
Tuning Java™ virtual machine (JVM) heap size
-
Tuning Virtual Member Manager (VMM) / LDAP tuning
-
Tuning log and trace rotation
-
Tuning virtual hosts
-
Tuning applications
-
Tuning data replication domains
-
Tuning Java Database Connectivity (JDBC) providers
-
Tuning Uniform Resource Locator (URL) providers
-
Tuning mail providers
-
Tuning resource environment providers
-
Tuning Java 2 Connector (J2C) resource adapters
The amount of work will depend of the size of your cell in terms of Java virtual machines or servers. When you have to configure each component manually, it is a very repetitive activity and it is error prone. To avoid errors and give you the agility doing the tuning process, the goal of this article is to show how to automate this process using scripts.
WebSphere Application Server provides two script languages called Jython (Java + Python) and Jacl (Java + TCL). These languages can speed up the automation process of installing, configuring, and tuning Java EE applications and products based on WebSphere Application Server.
In this article, I will show you how to tune WebSphere Application Server-based products, such as the IBM Business Process Manager products, using script languages and a properties file.
What is a properties file?
You can use properties files to manage your environment and configuration objects. You can extract the configuration objects in a simple properties file format, modify the extracted properties file, and apply the modified properties file to update the system configuration.
In addition to updating system properties, you can do the following tasks:
-
Extract the properties that are required to run an administrative command.
-
Run an administrative command using an extracted properties file.
-
Extract or modify the properties for any WebSphere Common Configuration Model (WCCM) object type.
-
Extract or modify all of the properties of an object type.
-
Delete or remove a property and modify a property using a single properties file.
-
Delete a configuration object in the same properties file that is used to create or modify properties.
A properties file that is extracted from a configuration contains the following information about the configuration:
-
The required properties for creating a new object of any type.
-
The default values for a property.
-
The range of values for a property.
Properties files are portable. You can extract a properties file from one cell, modify some environment-specific variables at the bottom of the extracted properties file, and then apply the modified properties file to another cell.
How do you tune JVM parameters using a properties file?
To tune a JVM using a properties file, you can use one of the following methods :
-
Extract the properties file of the current configuration using an AdminTask command or create the properties file from scratch.
-
Edit the properties file that was extracted or the sample file that is provided by the product. A sample file exists in the following locations:
-
Microsoft Windows operating systems: C:\IBM\WebSphere\AppServer\scriptLibraries\perfTuning\V70
-
UNIX-base and Linux operating systems: /opt/IBM/WebSphere/AppServer/scriptLibraries/perfTuning/V70
-
-
Apply the properties file configuration to the server using a wsadmin script.
-
Obtain a properties file for the JVM that you want to change.
You can extract a properties file for a Java virtual machine object using the extractConfigProperties command. For example:
AdminTask.extractConfigProperties('[-propertiesFileName ConfigProperties_server1.props -configData Server=server1]')
-
Open the properties file in an editor and change the properties as needed.
Ensure that the environment variables, such as the cell name, node name, and the server name in the properties file, match your system.
An example Java virtual machine properties file (jvm.properties) follows:
#Beginning of the properties file sample # # Header # ResourceType=JavaVirtualMachine ImplementingResourceType=Server ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:JavaProcessDef=:JavaVirtualMachine= AttributeInfo=jvmEntries # #Properties # internalClassAccessMode=ALLOW #ENUM(ALLOW|RESTRICT),default(ALLOW) JavaHome="C:\cf50922.30\test/java" #readonly debugArgs="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777" classpath={} initialHeapSize=0 #integer,default(0) runHProf=false #boolean,default(false) genericJvmArguments= hprofArguments= osName=null bootClasspath={} verboseModeJNI=false #boolean,default(false) maximumHeapSize=0 #integer,default(0) disableJIT=false #boolean,default(false) verboseModeGarbageCollection=false #boolean,default(false) executableJarFileName=null verboseModeClass=false #boolean,default(false) debugMode=false #boolean,default(false) # # Header JVM System properties # ResourceType=JavaVirtualMachine ImplementingResourceType=Server ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:JavaProcessDef=:JavaVirtualMachine= AttributeInfo=systemProperties(name,value) # #Properties # com.ibm.security.krb5.Krb5Debug=off com.ibm.security.jgss.debug=off # EnvironmentVariablesSection # #Environment Variables cellName=myCell04 nodeName=myNode serverName=myServer
## End Properties File
- Apply the modified properties to your configuration.
Use the applyConfigProperties command to apply the properties file to the configuration, as the following Jython example demonstrates:
AdminTask.applyConfigProperties('[-propertiesFileName jvm.properties]')
Important: Suppose that you want to apply the same JVM configuration for all servers in your cell. You just have to comment out the nodeName and serverName parameters to update all of the servers in a cell.
The properties file is very useful because it keeps track of the history of your default parameters and the values you have changed in a log file.
What about you? What approach do you use for tuning your IBM Business Process Manager environment? Share your approach in the comments section that follows this article.