Support Article
Spinning square on the UI for a “save as” action on Devportal
SA-6201
Summary
User have reported that, their developers are facing slow UI performance in ML7 developer studio.
Observation showed desktop CPU spike working in IE9 but switching to chrome did not deliver sufficient responsiveness.
One specific use case is developers encountering the endless spinning square icon on the UI for a Rule “save as” action performed from the Devportal (Designer Studio)
Error Messages
[2/4/15 17:38:45:591 EST] 0000001b SystemOut O 2015-02-04 17:38:45,590 [.PRPCWorkManager : 2] [ STANDARD] [ ] [ AEXP_Risk:02.01.10] (l.assembly.ApplicationAssembly) ERROR karthik - Error while selecting baseRules
com.ibm.db2.jcc.am.SqlException: [jcc][t4][10434][12579][4.14.137] Invalid operation: ResultSet holdability HOLD_CURSORS_OVER_COMMIT is not allowed on an XA connection. ERRORCODE=-4476, SQLSTATE=null
at com.ibm.db2.jcc.am.ed.a(ed.java:661)
at com.ibm.db2.jcc.am.ed.a(ed.java:60)
at com.ibm.db2.jcc.am.ed.a(ed.java:120)
at com.ibm.db2.jcc.am.Connection.checkResultSetHoldability(Connection.java:1943)
at com.ibm.db2.jcc.am.Connection.prepareStatementX(Connection.java:2355)
at com.ibm.db2.jcc.am.Connection.prepareStatementX(Connection.java:2324)
at com.ibm.db2.jcc.am.Connection.prepareStatement(Connection.java:2259)
at com.ibm.db2.jcc.am.ef.prepareStatement(ef.java:525)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.pmiPrepareStatement(WSJdbcConnection.java:4919)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:4349)
at com.pega.pegarules.data.internal.access.DatabaseConnectionImpl.prepareStatement(DatabaseConnectionImpl.java:682)
at com.pega.pegarules.generation.internal.assembly.ApplicationAssembly.getResultSetForQuery(ApplicationAssembly.java:142)
at com.pega.pegarules.generation.internal.assembly.ApplicationAssembly.setAssemblyCount(ApplicationAssembly.java:106)
at com.pega.pegarules.generation.internal.assembly.ApplicationAssembly.startAssembly(ApplicationAssembly.java:80)
at com.pega.pegarules.generation.internal.PRGenProviderImpl.startAppAssember(PRGenProviderImpl.java:918)
at com.pega.pegarules.session.internal.mgmt.Executable.startApplicationAssembler(Executable.java:8890)
at com.pegarules.generated.activity.ra_action_pzstartassembly_c190c32e7ef16e8d1e8ff5a9b6810604.step1_circum0(ra_action_pzstartassembly_c190c32e7ef16e8d1e8ff5a9b6810604.java:167)
at com.pegarules.generated.activity.ra_action_pzstartassembly_c190c32e7ef16e8d1e8ff5a9b6810604.perform(ra_action_pzstartassembly_c190c32e7ef16e8d1e8ff5a9b6810604.java:69)
Root Cause
The root cause of this problem is in a third-party product integrated with PRPC. By default, the application server configures the resultSetHoldability custom property with a value of 2 (CLOSE_CURSORS_AT_COMMIT). This property causes DB2 to close its resultSet/cursor at transaction boundaries. Despite the DB2 default resultSetHoldability value of 1 (HOLD_CURSORS_OVER_COMMIT), the application server retains the default value of2 to avoid breaking compatibilities with previous releases of the application server.
If this data source is an XA data source, define a new custom property on the data source where property_name = downgradeHoldCursorsUnderXa and boolean value = true.
Resolution
This issue is resolved by making the following change to the PRPC operating environment.
- Set custom property downgradeHoldCursorsUnderXa with value true under the XA datasource
- Recycle JVM and run the static assembly from the UI
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.