Skip to main content


         This documentation site is for previous versions. Visit our new documentation site for current releases.      
 

This content has been archived and is no longer being updated.

Links may not function; however, this content may be relevant to outdated versions of the product.

Troubleshooting: InvalidParameterException, database column aliases not found after JDBC driver update (DB2 LUW driver v4.12.55)

Updated on September 25, 2019

Summary

The Pega log reports "InvalidParameterException: Column named <column name> was not found in SQL columns or embedded object" on PRPC 6.3 SP1 with DB2/LINUXX8664 using DB2 driver version 4.12.55. This error will occur anywhere PRPC tries to read a result set with database column aliases.

Apart from PRPC, the following query runs successfully against the DB2 database:

SELECT DISTINCT e.pzImplementationKey, e.pzPrimaryPageClassName, e.pzAppHash, c.pxHeight as pxClassHeight, e.pzAspect, a.pzAppHeight as pxappheight, e.pzExpirationTime, e.pzContextPathHash, e.pzInsKey FROM pr_sys_appcache_entry e, pr_sys_class_ancestors c, pr_sys_app_hierarchy_flat a WHERE e.pzrulename = {ACAAQueryPage.ruleName} AND e.pzruletype = {ACAAQueryPage.ruleType} AND e.pzcacheconfigid = {ACAAQueryPage.cacheConfigId} AND e.pzprimarypageclassname = c.pxclassname AND c.pxleafclassname = {ACAAQueryPage.appliesToClassName} AND e.pzapphash = a.pzapphash AND a.pztopapphash = {ACAAQueryPage.appHash} ORDER BY c.pxheight, a.pzappheight

The errors reported in the Pega log are caused by the fact that the DB2 JDBC 4.x drivers conform to the JDBC 4.0 standard, which changes how the results of a query are retrieved when aliases are part of the query.

Read the Reference cited and follow the Suggested Approach.

Error (example)

2013-02-21 16:35:16,720 [ http-0.0.0.0-8180-4] [ Developer] [ PegaRULES:06.03] (che.appcentric.AppShortcutImpl) ERROR dd976c2n12|144.14.22.132 [email protected] -

Failed to infer a shortcut from an AppCentric entry.

com.pega.pegarules.pub.clipboard.InvalidParameterException: Column named pxClassHeight was not found in SQL columns or embedded object

at com.pega.pegarules.data.internal.access.DatabaseRowSet.populate(DatabaseRowSet.java:480)

at com.pega.pegarules.data.internal.access.DatabaseRowSet.populate(DatabaseRowSet.java:319)

at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.getRowSet
(DatabasePreparedStatementImpl.java:1375)

at com.pega.pegarules.data.internal.access.RDBPageResultPackager.handleRowSet
(RDBPageResultPackager.java:789)

at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageResults
​(RDBPageResultPackager.java:298)

at com.pega.pegarules.data.internal.access.DatabaseImpl.list(DatabaseImpl.java:6019)

at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6461)

at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6422)

at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6403)

at com.pega.pegarules.generation.internal.cache.appcentric.
AppShortcutImpl.getInferredACCacheShortcut(AppShortcutImpl.java:504)

at com.pega.pegarules.generation.internal.cache.appcentric.RACacheAppCentricImpl.
inferGeneratedJavaFromExistingEntry(RACacheAppCentricImpl.java:2071)

at com.pega.pegarules.generation.internal.cache.appcentric.RACacheAppCentricImpl.find
(RACacheAppCentricImpl.java:876)

at com.pega.pegarules.generation.internal.cache.AssemblyCacheWrapper.find
(AssemblyCacheWrapper.java:781)

at com.pega.pegarules.generation.internal.assembly.FUAManagerImpl.getInternal
​(FUAManagerImpl.java:1315)

at com.pega.pegarules.generation.internal.assembly.FUAManagerImpl.get(FUAManagerImpl.java:1245)

at com.pega.pegarules.generation.internal.PRGenProviderImpl.get(PRGenProviderImpl.java)

Suggested Approach

The DB2 JDBC driver version 4.0 has been changed to support the JDBC 4.0 standard. One of the changes involves aliases.

  1. Read the Reference cited to understand how the IBM® Data Server Driver for JDBC and SQLJ Version 4.0 and later versions changes to conform to the JDBC 4.0 standard, compared to the IBM Data Server Driver for JDBC and SQLJ Version 3.50 and earlier JDBC drivers.
    The values returned for ResultSetMetaData.getColumnName and ResultSetMetaData.getColumnLabel are different.
  2. If you plan to use DB2 JDBC driver version 4.0 or later version, set the connection property as follows:

    <connection-property name="useJDBC4ColumnNameAndLabelSemantics">2</connection-property>

  3. Alternative to Step 2: Return to using the DB2 JDBC driver version 3.5.

Reference

ResultSetMetaData returns different values for the IBM Data Server Driver for JDBC and SQL Version 4.0

  • Previous topic Troubleshooting: High number of busy waits when using Oracle SecureFiles
  • Next topic Troubleshooting: Microsoft SQL Server rounds datetime to nearest 1/3 of a hundredth of a second

Have a question? Get answers now.

Visit the Support Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us