Showing posts with label performance. Show all posts
Showing posts with label performance. Show all posts

Tuesday, August 2, 2016

BPMDeleteSnapshot and BPMSnapshotCleanup commands - Issues

Abstract

Because issues have been discovered with the BPMDeleteSnapshot and BPMSnapshotCleanup commands, these commands require the interim fixes that are listed in this document. 

Follow 
http://www-01.ibm.com/support/docview.wss?uid=swg21669992#7512

check if you have all below IFIx installed on top of 7512 before going ahead.

APAR7.5.1.2
JR48877 
Symptom
A participant group (called “team” in V8.5) is not visible in the Process Admin Console of Process Server under Role Bindings when a snapshot is installed after you use theBPMDeleteSnapshot command.
Prevention 
Interim fix JR48877
Repairs
Interim fix JR49635
Express: 7.5.1.2-WS-BPM-IFJR48877
Standard: 7.5.1.2-WS-BPM-IFJR48877
Advanced: 7.5.1.2-WS-BPM-IFJR48877
JR49374
Symptom
You receive the following error after you run theBPMSnapshotCleanup or BPMDeleteSnapshot command:
CWLLG1414E - An exception occurred while getting user attributes
Prevention 
Interim fix JR49374
Repairs
Interim fix JR49374 or modify each user attribute definition in your process application and save it
Express: 7.5.1.2-WS-BPM-IFJR49374
Standard: 7.5.1.2-WS-BPM-IFJR49374
Advanced: 7.5.1.2-WS-BPM-IFJR49374
JR49606
Symptom
A participant group (called “team” in V8.5) is not visible in the Process Admin Console of IBM Process Center under Role Bindings when a snapshot is installed after you use theBPMSnapshotCleanup command.
Prevention 
Interim fix JR49606
Repairs
Interim fix JR49928
Express: 7.5.1.2-WS-BPM-IFJR49606
Standard: 7.5.1.2-WS-BPM-IFJR49606
Advanced: 7.5.1.2-WS-BPM-IFJR49606
JR49635 
This repair-only interim fix applies to the issue that is addressed in JR48877. JR49635 looks for and repairs issues when importing a snapshot. Although JR48877 repairs most of the issues, you still need interim fix JR49635 if there are more than 1000 participant groups (called “teams” in V8.5). JR49635 repairs the damage done by the issue that is fixed by JR48877 in the event that you encounter the issue before you apply JR48877.
Express: 7.5.1.2-WS-BPM-IFJR49635
Standard: 7.5.1.2-WS-BPM-IFJR49635
Advanced: 7.5.1.2-WS-BPM-IFJR49635
JR49848
Symptom
After you run the BPMSnapshotCleanup command, you can no longer save artifacts that have advanced content in Process Designer in a process application or toolkit from IBM Integration Designer
Prevention 
Interim fix JR49848
Repairs
Interim fix JR49848 or edit the LSW_SCA_CONNECTOR table of the BPMDB database and put the outOfSync value into the LAST_SYNCHRONIZED column for the Advanced Integration Service that is affected
Express: Not applicable
Standard: Not applicable
Advanced: 7.5.1.2-WS-BPM-IFJR49848
JR49928
This repair-only interim fix applies to the issue that is addressed in JR49606. JR49928 looks for and repairs issues when the server starts. You do not require interim fix JR49928 if the interim fixes JR48877 and JR49606 are applied before snapshots are deleted.
Express: 7.5.1.2-WS-BPM-IFJR49928
Standard: 7.5.1.2-WS-BPM-IFJR49928
Advanced: 7.5.1.2-WS-BPM-IFJR49928
JR50444
When the server starts or when you use theBPMInstallOfflinePackage administrative command, you might see the DATAINTEGRITYVIOLATIONEXCEPTION. This fix checks whether there are exposed items before deleting the groups, preventing you from deleting those groups.
Express: 7.5.1.2-WS-BPM-IFJR50444
Standard: 7.5.1.2-WS-BPM-IFJR50444
Advanced: 7.5.1.2-WS-BPM-IFJR50444
JR50460
An exception occurs while history information for a process app or toolkit is being loaded when that history information contains references to deleted snapshots.
Express: 7.5.1.2-WS-BPM-IFJR50460
Standard: 7.5.1.2-WS-BPM-IFJR50460
Advanced: 7.5.1.2-WS-BPM-IFJR50460
JR50667
Deleting a snapshot destroys most smart folders. Smart folders are used for the entire project's track or branch. It is not expected that the smart folders will be deleted when snapshots are deleted.
Express: 7.5.1.2-WS-BPM-IFJR50667
Standard: 7.5.1.2-WS-BPM-IFJR50667
Advanced: 7.5.1.2-WS-BPM-IFJR50667
JR50671
When snapshots are deleted, the corresponding LSW installation table entries are not deleted.    
Express: 7.5.1.2-WS-BPM-IFJR50671
Standard: 7.5.1.2-WS-BPM-IFJR50671
Advanced: 7.5.1.2-WS-BPM-IFJR50671
JR50718
The BPMDeleteSnapshot command proceeds even though there are running instances of stand-alone human services.  
Express: 7.5.1.2-WS-BPM-IFJR50718
Standard: 7.5.1.2-WS-BPM-IFJR50718
Advanced: 7.5.1.2-WS-BPM-IFJR50718
JR50720
The BPMDeleteSnapshot command proceeds even though there business process definition (BPD) instances in another snapshot that point to tasks from the snapshot that is being deleted.
Express: 7.5.1.2-WS-BPM-IFJR50720
Standard: 7.5.1.2-WS-BPM-IFJR50720
Advanced: 7.5.1.2-WS-BPM-IFJR50720
JR50721
The BPMSnapshotCleanup command proceeds even though there are running      
instances of stand-alone human services.          
Express: 7.5.1.2-WS-BPM-IFJR50721
Standard: 7.5.1.2-WS-BPM-IFJR50721
Advanced: 7.5.1.2-WS-BPM-IFJR50721
JR50742
When the server starts or when you use theBPMInstallOfflinePackage administrative command, you might see a DATAINTEGRITYVIOLATION exception.   
Express: 7.5.1.2-WS-BPM-IFJR50742
Standard: 7.5.1.2-WS-BPM-IFJR50742
Advanced: 7.5.1.2-WS-BPM-IFJR50742
JR52327
When you run the BPMSnapshotCleanup command with -ignoreDependency = true, toolkits that have other toolkits and process apps depending on them can be deleted without warning, leading to other problems.
Express: 7.5.1.2-WS-BPM-IFJR52327
Standard: 7.5.1.2-WS-BPM-IFJR52327
Advanced: 7.5.1.2-WS-BPM-IFJR52327

Wednesday, December 2, 2015

Limiting Inbox search result for IBM BPM

sometimes if we have lots of instances assigned to a user or usergroup then refreshing inbox for user become very slow as IBM BPM tries to get details about all cases and it might take upto 10 minutes.

This performance issues is due to large number of cases so there are only two solutions,
1.) close the cases and keep only required cases open and available, which does not work in all scenarios
2.) limit the number of instances fetched by a saved search/inbox in IBM BPM Portal. which can be done by below steps.

-> In newer version this value is by default set to 500 which is good and you might need to make it higher if you want to see more instances in result.

Optimize the number of loaded search result entries

You can optimize the number of retrieved results entries of your saved searches.
The saved searches are optimized to process 500 result entries. The displayed pages of the result contains up to 500 entries, which are retrieved from the server. In addition, the total number of entries is displayed.
If you expect more than 500 records for a call, for example, if you are using the TWSearch function or the saved search in an API format, you can increase this number.
To retrieve a different number of entries, complete the following steps:
  1. Insert the following section into the 100custom.xml file:
    <properties>
        <server merge="mergeChildren">
      <process-search-engine-count-optimization merge="replace">500</process-search-engine-count-optimization>
           </server>
    </properties>
  2. Adjust the 500 value to meet your needs. The larger the value, the more memory and time is needed to retrieve the entries.
  3. After saving changes to the 100custom.xml file, restart the server.


You can find more details about his in blow tech-note by IBM

Monday, November 2, 2015

IBM BPM - Deactivating Dynamic Group(type 4) Update - Performance improvement specially while login

What are Dynamic Groups?
Dynamic groups are created whenever a team or a task assignment is created using an expression. These expressions select users based on user attributes, group membership, and various other criteria. As a result, a dynamic group is created in the database. They are also known as Type 4 groups or in LSW_USR_GRP_XREF they will be having value of group_type = 4

Why Dynamic Groups get updated?
As mentioned earlier Dynamic Groups are set of other type of groups which includes external groups. so whenever any external or security gets updated, dynamic group also needs to get updated in order to be in sync with other groups.

When are dynamic groups updated?

There are several triggers that can cause dynamic group updates:
  • When IBM Business Process Manager internal groups or a member of an internal group are updated in the Process Admin Console.
  • When a user logs in to a IBM Business Process Manager web interface, the external group membership is replicated based on the external security provider settings. If changes are detected, dynamic groups are recalculated.
  • When a user updates user attributes in the Process Admin Console or while using a REST API.
  • During task creation using dynamic group expression.

Configuring IBM Business Process Manager to deactivate dynamic group updates

Modify the 100Custom.xml configuration file to deactivate updates for the specified triggers, as shown in the following example:

<properties>
<server merge="mergeChildren">
<update-dynamic-groups-on-login>false</update-dynamic-groups-on-login>
<update-dynamic-groups-on-task-creation>false</update-dynamic-groups-on-task-creation>
<update-dynamic-groups-on-uadchange>false</update-dynamic-groups-on-uadchange>
</server>
</properties>

Saturday, September 5, 2015

IBM BPM Application Server Tuning - Cache settings

IBM BPM applications are heavily dependent on Database and caching is the most important thing while it comes to tuning, as good caching values solved lots of performance issues.

Below are few of the cache settings I have tried earlier and they gave really good result. Please note you have to keep changing cache values and try again and again to identify the best values for these cache settings.

Branch Cache
One entry in the branch cache is used for each project-branch combination that is loaded into the memory cache. For example, if a process application depends on two toolkits, three branch cache entries are required: one for the process application and one for each toolkit. Each entry in the branch cache contains a snapshot cache. Therefore, the number of entries in the branch cache is tunable, independently from the snapshot cache.

You can determine approximate value for branch cache by following equation

(# of unique Process Application snapshots + # of unique toolkit snapshots) x size_constant       
Where value can size_constant be taken as 5 (MB) and tuned to get best result.

Configuration
We can add tag 'branch-context-max-cache-size' in 100Custom.xml file to configure Branch Cache.
We can add below tag in 100Custom.xml to configure BranchCache.
<server merge="mergeChildren">
  <repository merge="mergeChildren">
    <branch-context-max-cache-size merge="replace">64</branch-context-max-cache-size>
  </repository>

</server>

Snasphot Cache
the snapshot cache is tuned independently from the branch cache. Each branch cache entry contains a snapshot cache. In a Process Server environment, each deployed snapshot is deployed to a unique branch. Therefore, in Process Server, the snapshot cache (which is part of each branch cache entry) contains only one entry.

Configuration
We can add tag 'snapshot-cache-size-per-branch' in 100Custom.xml file to configure Branch Cache.
We can add below tag in 100Custom.xml to configure BranchCache.
<server merge="mergeChildren">
  <repository merge="mergeChildren">
    <snapshot-cache-size-per-branch merge="replace">64</snapshot-cache-size-per-branch>
  </repository>

</server>

indexes

The versioning system in IBM BPM depends on a correctly tuned database. In addition to properly tuning the branch cache, it is important to optimize the indexes on the LSW_PO_VERSIONS table. The following indexes improve performance on IBM BPM V7.5 and later:

CREATE INDEX IDXA_PO_VERSIONS ON lsw_po_versions (PO_TYPE,BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM,PO_VERSION_ID) COMPUTE STATISTICS;
CREATE INDEX IDXB_PO_VERSIONS ON lsw_po_versions (BRANCH_ID,END_SEQ_NUM) COMPUTE STATISTICS;
CREATE INDEX IDXC_PO_VERSIONS ON lsw_po_versions (BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM) COMPUTE STATISTICS;
CREATE INDEX IDXD_PO_VERSIONS ON lsw_po_versions (PO_VERSION_ID,PO_TYPE,BRANCH_ID,START_SEQ_NUM,END_SEQ_NUM)

Source - http://www.ibm.com/developerworks/bpm/library/techarticles/1404_booz/1404_booz.html






Tuesday, December 16, 2014

IBM BPM Instrumentation Page - A very good way to Monitor IBM BPM


Instrumentation Explained for IBM BPM.

What is Instrumentation?
How to use Instrumentation?
What all we can monitory using Instrumentation?

If you have above or similar kind of question, you should visit the post written by  Sergei Malynovskyi in BP3 Portal. It is really well written post.

Best thing to take from the post is how to see extended data in instumentation monitor page. 

If you dont know it already, it will open whole new world of monitoring you can do for IBM BPM. You can also visit below Tech Note for more details.