IBM Support

Build Forge SQL Error com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE:42703, SQLERRMC: BF_STRING.BF_MESSAGE

Troubleshooting


Problem

In IBM Rational Build Forge, filtering for System Admin and then sorting the results causes SQL Error com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE:42703, SQLERRMC: BF_STRING.BF_MESSAGE

Symptom

The catalina log shows:
...
WARNING: Filtered query row count, compiled query : SELECT * FROM (SELECT bf_sysconfig.bf_param, bf_sysconfig.bf_title, bf_sysconfig.bf_value, bf_sysconfig.bf_datatype, rownumber() OVER ( ORDER BY bf_sysconfig.bf_value) bf_db2_idx FROM bf_sysconfig WHERE (bf_sysconfig.bf_public = 'Y' AND bf_strings.bf_message LIKE '%lic%' ESCAPE '\') ORDER BY bf_sysconfig.bf_value) bf_db2_rows WHERE bf_db2_rows.bf_db2_idx BETWEEN 1 AND 1000 FOR READ ONLY
com.buildforge.services.common.db.DBException: Failed SQL query: [org.apache.commons.dbcp.DelegatingPreparedStatement@16a416a4] => [com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: BF_STRINGS.BF_MESSAGE]
at com.buildforge.services.server.db.DBConnection.errorQueryFailed(DBConnection.java:1262)
at com.buildforge.services.server.db.DBConnection.query(DBConnection.java:1104)
at com.buildforge.services.server.db.DBConnection.getFilterMatchCount(DBConnection.java:685)
at com.buildforge.services.server.db.DBConnection.getQueryContextForFilteredQuery(DBConnection.java:828)
at com.buildforge.services.server.db.DBConnection.doFilteredQuery(DBConnection.java:718)
at com.buildforge.services.server.manager.SysConfigManager.findFiltered(SysConfigManager.java:466)
at com.buildforge.services.server.api.commands.SysConfigCommands.findFiltered(SysConfigCommands.java:91)
at com.buildforge.services.server.api.commands.SysConfigCommands.invoke(SysConfigCommands.java:79)
at com.buildforge.services.server.api.APICommandProcessor.process(APICommandProcessor.java:261)
at com.buildforge.services.server.api.APIServerConnection.handleRequest(APIServerConnection.java:206)
at com.buildforge.services.server.api.APIServerConnection.process(APIServerConnection.java:153)
at com.buildforge.services.server.dispatch.handler.BufferedConnection.run(BufferedConnection.java:243)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:810)
Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: BF_STRINGS.BF_MESSAGE
at com.ibm.db2.jcc.a.lg.e(lg.java:1600)
at com.ibm.db2.jcc.a.lg.a(lg.java:1210)
at com.ibm.db2.jcc.b.gb.g(gb.java:140)
at com.ibm.db2.jcc.b.gb.a(gb.java:39)
at com.ibm.db2.jcc.b.w.a(w.java:34)
at com.ibm.db2.jcc.b.vb.f(vb.java:139)
at com.ibm.db2.jcc.a.lg.n(lg.java:1181)
at com.ibm.db2.jcc.a.mg.eb(mg.java:1877)
at com.ibm.db2.jcc.a.mg.d(mg.java:2313)
at com.ibm.db2.jcc.a.mg.V(mg.java:430)
at com.ibm.db2.jcc.a.mg.executeQuery(mg.java:413)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at com.buildforge.services.server.db.DBConnection.query(DBConnection.java:1102)
... 13 more
...
WARNING: !!!
com.buildforge.services.common.db.DBException: Failed SQL query: [org.apache.commons.dbcp.DelegatingPreparedStatement@16a416a4] => [com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: BF_STRINGS.BF_MESSAGE]
at com.buildforge.services.server.db.DBConnection.errorQueryFailed(DBConnection.java:1262)
at com.buildforge.services.server.db.DBConnection.query(DBConnection.java:1104)
at com.buildforge.services.server.db.DBConnection.getFilterMatchCount(DBConnection.java:685)
at com.buildforge.services.server.db.DBConnection.getQueryContextForFilteredQuery(DBConnection.java:828)
at com.buildforge.services.server.db.DBConnection.doFilteredQuery(DBConnection.java:718)
at com.buildforge.services.server.manager.SysConfigManager.findFiltered(SysConfigManager.java:466)
at com.buildforge.services.server.api.commands.SysConfigCommands.findFiltered(SysConfigCommands.java:91)
at com.buildforge.services.server.api.commands.SysConfigCommands.invoke(SysConfigCommands.java:79)
at com.buildforge.services.server.api.APICommandProcessor.process(APICommandProcessor.java:261)
at com.buildforge.services.server.api.APIServerConnection.handleRequest(APIServerConnection.java:206)
at com.buildforge.services.server.api.APIServerConnection.process(APIServerConnection.java:153)
at com.buildforge.services.server.dispatch.handler.BufferedConnection.run(BufferedConnection.java:243)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:810)
Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -206, SQLSTATE: 42703, SQLERRMC: BF_STRINGS.BF_MESSAGE
at com.ibm.db2.jcc.a.lg.e(lg.java:1600)
at com.ibm.db2.jcc.a.lg.a(lg.java:1210)
at com.ibm.db2.jcc.b.gb.g(gb.java:140)
at com.ibm.db2.jcc.b.gb.a(gb.java:39)
at com.ibm.db2.jcc.b.w.a(w.java:34)
at com.ibm.db2.jcc.b.vb.f(vb.java:139)
at com.ibm.db2.jcc.a.lg.n(lg.java:1181)
at com.ibm.db2.jcc.a.mg.eb(mg.java:1877)
at com.ibm.db2.jcc.a.mg.d(mg.java:2313)
at com.ibm.db2.jcc.a.mg.V(mg.java:430)
at com.ibm.db2.jcc.a.mg.executeQuery(mg.java:413)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
at com.buildforge.services.server.db.DBConnection.query(DBConnection.java:1102)
... 13 more

The query is missing a join. Specifically this:
SELECT * FROM (SELECT bf_sysconfig.bf_param, bf_sysconfig.bf_title, bf_sysconfig.bf_value, bf_sysconfig.bf_datatype, rownumber() OVER ( ORDER BY bf_sysconfig.bf_value) bf_db2_idx FROM bf_sysconfig WHERE (bf_sysconfig.bf_public = 'Y' AND bf_strings.bf_message LIKE '%lic%' ESCAPE '\') ORDER BY bf_sysconfig.bf_value) bf_db2_rows WHERE bf_db2_rows.bf_db2_idx BETWEEN 1 AND 1000 FOR READ ONLY

should be this:
SELECT * FROM (SELECT bf_sysconfig.bf_param, bf_sysconfig.bf_title, bf_sysconfig.bf_value, bf_sysconfig.bf_datatype, rownumber() OVER ( ORDER BY bf_strings.bf_message) bf_db2_idx FROM bf_sysconfig LEFT JOIN bf_strings ON (bf_sysconfig.bf_title = bf_strings.bf_key AND bf_strings.bf_lang = 'en_US') WHERE (bf_sysconfig.bf_public = 'Y' AND (bf_strings.bf_message LIKE '%SMTP%' ESCAPE '\' OR bf_sysconfig.bf_value LIKE '%SMTP%' ESCAPE '\')) ORDER BY bf_strings.bf_message) bf_db2_rows WHERE bf_db2_rows.bf_db2_idx BETWEEN 1 AND 1000 FOR READ ONLY

NOTE: This happens with all DBs. It only happens if you sort by the Value column - sorting by the Name column does not cause this issue.

Once you browse away from Admin > System you will be unable to bring the Admin > System page back.

[{"Product":{"code":"SSB2MV","label":"Rational Build Forge"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Component":"User Interface: Page Functionality","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.1;7.1.1;7.1.1.1;7.1.1.2;7.1.1.3","Edition":"Enterprise;Standard","Line of Business":{"code":"LOB77","label":"Automation Platform"}}]

Log InLog in to view more of this document

This document has the abstract of a technical article that is available to authorized users once you have logged on. Please use Log in button above to access the full document. After log in, if you do not have the right authorization for this document, there will be instructions on what to do next.

Document Information

More support for:
Rational Build Forge

Software version:
7.1, 7.1.1, 7.1.1.1, 7.1.1.2, 7.1.1.3

Operating system(s):
AIX, Linux, Solaris, Windows

Document number:
404159

Modified date:
16 June 2018

UID

swg21426826

Manage My Notification Subscriptions