What you need to do about classloader-cache-size and how it impacts BPM performance
BinHu 0600024J6S Comment (1) Visits (12976)
When you meet some performance issues in Business Process Manager (BPM), like system Out Of Memory, especially in JVM PermSize area or BPM process processing is very slow, the Heap object tree would be like this:
Looking at the above screen capture, you may have a question. Why there are so many com.
1) a new Process Instance is created for a active snapshot
2) the MACL object for that snapshot is NOT in the cache
For item 1, it can be easily verified by the current workload of process applications.
But for item 2, how can we say if the MACL object is in the cache or not?
A large number of MACL objects usually implies that BPM is creating too many MACL objects for new launched BPD instances instead of reusing the existing MACL in the cache. Those MACL objects are unbounded ones and never get re-used when the current BPD instance is finished. We should try to avoid unbounded MACL objects being generated.
Introduction of clas
This parameter controls how many bounded MACLs are loaded in JVM cache stack. The parameter clas
Introduction of Mana
Besides the Java traditional class loader inside the JVM, a specific kind of class loader inside BPM is called Mana
Determine if you need to tune up the clas
The small number of this parameter will be most adaptable for Production environments because Production environments will NOT have as many active snapshots. Here we believe that only the Test-Ready Process Applications will be deployed to Production environments. But it will usually not be adaptable for DEV, TEST or Performance Testing environments because there are many snapshots created (named and unnamed ones) during the development stages.
You need to check the 2 things below to determine if you need to tune up this parameter:
a) To check the active snapshots number, you can run below SQL query:
Select count(*) from <schema name>.LSW_SNAPSHOT where is_active = 'T'
This will give you an idea about how many active snapshots are in your current environment. Basically for each active snapshot, we need one dedicated MACL for it.
b) To check the current setting of clas
For a Process Center Profile, go to
For a Process Server Profile, go to
If the current value of clas
Default value changed starting from BPM v8.5.6
Prior to BPM v8.5.6, the default value for clas
Starting from BPM v8.5.6, the default value for clas
The value of clas
See APAR JR51325: DOC - CONFIGURE MANAGED ASSET CACHE TO PREVENT SLOW PERFORMANCE WHEN USING IBM BPM MANAGED ASSETS