Fixes are available
APAR status
Closed as program error.
Error description
The TWSearch() API takes 10s of minutes to complete when there are a large number of tasks in the system. Overall, system performance could be reduced and hung thread errors are recorded in the server log files. Your database administrator might see the following query, which uses most of the CPU time: SELECT DISTINCT v.ALIAS AS ALIAS, v.VARIABLE_TYPE AS VARIABLE_TYPE, i.SNAPSHOT_ID AS SNAPSHOT_ID FROM LSW_BPD_INSTANCE_VARIABLES v JOIN LSW_BPD_INSTANCE i ON v.BPD_INSTANCE_ID = i.BPD_INSTANCE_ID ORDER BY ALIAS, VARIABLE_TYPE You see the following stack trace in the server log file: [12/11/13 1:40:57:674 NZDT] 0000006c BPMInspectorR E Error communicating with server . com.ibm.processinspector.rest.ProcessAdminRestException: Error communicating with server at com.ibm.processinspector.rest.ProcessAdminRestClient.doPostQuery (ProcessAdminRestClient.java:201) at com.ibm.processinspector.rest.ProcessAdminRestClient.doQuery(Pro cessAdminRestClient.java:303) ...... Caused by: java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:412) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:2 71) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:258) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:376) at java.net.Socket.connect(Socket.java:537) ...... .----------------------------------------------------- Here is an example of the WSVR0605W message that might be logged when the problem occurs. [10/9/14 8:41:18:169 PDT] 000000a4 ThreadMonitor W WSVR0605W: Thread "WebContainer : 9" (0000018b) has been active for 631295 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung. ... at com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean$24.exe cute(SearchAPIFacadeBean.java:358) at com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean$24.exe cute(SearchAPIFacadeBean.java:356) at com.lombardisoftware.server.ejb.EjbServerUtils.handleEjbCall(Ejb ServerUtils.java:86) at com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean.handle EjbCall(SearchAPIFacadeBean.java:50) at com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean.findSe archable BusinessDataAliases(SearchAPIFacadeBean.java:356) at com.lombardisoftware.server.ejb.psapi.EJSRemoteStatelessSearchAP IFacade_ 9724b32b.findSearchableBusinessDataAliases(Unknown Source) at com.lombardisoftware.server.ejb.psapi._SearchAPIFacadeInterface_ Stub.fin dSearchableBusinessDataAliases(_SearchAPIFacadeInterface_Stub.ja va:1446) at com.lombardisoftware.client.delegate.SearchAPIFacadeDelegateDefa ult$24.run(SearchAPIFacadeDelegateDefault.java:708) at java.security.AccessController.doPrivileged(AccessController.jav a:327) at com.lombardisoftware.client.delegate.common.WebsphereDelegateHel per.doAs CurrentSubjectContextSensitive(WebsphereDelegateHelper.java:197) at com.lombardisoftware.client.delegate.SearchAPIFacadeDelegateDefa ult.find SearchableBusinessDataAliases(SearchAPIFacadeDelegateDefault.jav a:705) at com.lombardisoftware.core.script.js.helpers.TypeConverter.getBus inessDataAliases(TypeConverter.java:1152) at com.lombardisoftware.core.script.js.helpers.TypeConverter.fromIn ternalQueryResult(TypeConverter.java:592) at com.lombardisoftware.core.script.js.TWSearchScriptable.executeSe archInternal(TWSearchScriptable.java:362) at com.lombardisoftware.core.script.js.TWSearchScriptable.jsFunctio n_execut e(TWSearchScriptable.java:172)
Local fix
No IFix. temporary workaround-> disable the new behavior: ---------------------------------------------------------------- <use-business-aliases-for-process-instances>false</use-business- aliases-for-process-instances>. ---------------------------------------------------------------- -
Problem summary
**************************************************************** * USERS AFFECTED: IBM BPM Advanced, Standard, and Express * **************************************************************** * PROBLEM DESCRIPTION: Searchable business data aliases are * * the columns that you can use in saved * * searches, the TWSearch API, and the * * REST Search API. Before the * * <use-business-aliases-for-process- * * instances> property was introduced, * * business data aliases that were * * defined in any snapshot were * * available and reloaded after each * * snapshot deployment, which slowed * * down performance, especially as the * * number of snapshots increased, such * * as in a Process Center environment * * with many developers. * * When the * * <use-business-aliases-for-process- * * instances> property is set to 'true', * * the list of searchable business data * * aliases are returned only when they * * are used in actual process instances. * * Because business data aliases are * * loaded as needed, performance might * * slow down as the number of instances * * increases (such as in a high-volume * * Process Server environment), but the * * number will not climb unnecessarily. * * Business data aliases might not be * * available immediately after instances * * are created. * **************************************************************** * RECOMMENDATION: * **************************************************************** You experience poor performance and high database CPU usage when a large number of tasks are present.
Problem conclusion
A fix is available for IBM BPM V8.0.1.2 and V8.5.0.1 that ensures the Business Data Alias cache is built by default when the server starts, improving loading performance. The <use-business-aliases-for-process-instances> property is set to "false" so that the list of searchable business aliases are returned based on snapshot definitions. On Fix Central (http://www.ibm.com/support/fixcentral), and search for JR49354 for V8.0.1.2, or JR48886 for V8.5.0.1: 1. Select the product group, product, installed version, and platform, and click Continue. 2. Select APAR or SPR, enter JR49354 or JR48886, and click Continue. When downloading fix packages, ensure that you also download the readme file for each fix. Review each readme file for additional installation instructions and information about the fix.
Temporary fix
Yes. In the 100Custom.xml file, change the <use-business-aliases-for-process-instances> property value to "false": In stand-alone profiles, go to Profile_home\config\cells\<~cellname~>\nodes\<~nodename~>\server s\<~servername~>\<~process-center/server~>\config\100Custom.xml In cluster profiles, go to DMGR_home\config\cells\<~cellname~>\nodes\<~nodename~>\servers\< ~servername~>\<~process-center/server~>\config\100Custom.xml In the file, insert the following XML code under the <properties> tag: <server> <portal merge="mergeChildren"> <use-business-aliases-for-process-instances merge="replace">false</use-business-aliases-for-process-instance s> </portal> </server>
Comments
APAR Information
APAR number
JR48886
Reported component name
BPM STANDARD
Reported component ID
5725C9500
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2013-12-19
Closed date
2014-02-13
Last modified date
2016-01-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
BPM STANDARD
Fixed component ID
5725C9500
Applicable component levels
R800 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.5","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
12 October 2021