我们的代码在Websphere Application Server 7.0.0.37中运行,并且它连接到几个DB2数据库。偶尔我们会得到异常“com.ibm.db2.jcc.a.SqlException:”SCHEMA.TABLENAME“是一个未定义的名称”。当负载特别高时,这种情况每天都会发生。请告知是否必须对websphere中的连接设置执行任何操作。下面是stacktrace:
[4/6/16 21:54:08:083 PDT] 000000f7 SystemErr R. com.ibm.db2.jcc.a.SqlException:“SCHEMA.TABLENAME”是未定义的 名称。 [4/6/16 21:54:08:083 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.zc.e(zc.java:1606)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.zc.a(zc.java:1206) [4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.c.eb.h(eb.java:149)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.c.eb.a(eb.java:43)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.c.r.a(r.java:30)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.c.tb.g(tb.java:152)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.zc.n(zc.java:1186)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.ad.db(ad.java:1761) [4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.ad.d(ad.java:2203)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.ad.W(ad.java:1276) [4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.db2.jcc.a.ad.execute(ad.java:1260)[4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:942) [4/6/16 21:54:08:084 PDT] 000000f7 SystemErr R at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:618)
答案 0 :(得分:0)
WebSphere Application Server中的连接设置可能会影响所使用的模式(基于连接的用户名),但是,它将是一致的,并且不会因数据库是否处于负载而变化。如果您发现问题是在负载下发生的,而不是其他情况,则可能存在线程错误。
澄清问题, SCHEMA.TABLENAME是您希望使用的架构和表吗?如果不是,哪个部分是意外的 - 架构,表名或两者兼而有之?或者,如果需要SCHEMA.TABLENAME,那么在不加载时,对同一模式/表的查询是否有效?是在应用程序中显式指定了SCHEMA架构,还是从连接用户名或数据源设置隐式指定了?