2016-04-07 5 views
0

Наш код работает в Websphere Application Server 7.0.0.37 и подключается к нескольким базам данных DB2. Иногда мы получаем исключение »com.ibm.db2.jcc.a.SqlException:« SCHEMA.TABLENAME »- это неопределенное имя». Это происходит каждый день, когда загрузка особенно высока. Пожалуйста, сообщите, если это нужно сделать с настройками подключения в websphere. Ниже StackTrace:com.ibm.db2.jcc.a.SqlException: tableName является неопределенным именем

[4/6/16 21: 54: 08: 083 ФДТ] 000000f7 SystemErr R com.ibm.db2.jcc.a.SqlException: "SCHEMA.TABLENAME" является неопределенным имя. [4/6/16 21: 54: 08: 083 PDT] 000000f7 SystemErr R в 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 в com.ibm.db2.jcc.cra (r.java:30) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R в com.ibm.db2.jcc.c.tb.g (tb.java:152) [4/6/16 21:54:08 : 084 PDT] 000000f7 SystemErr R при com.ibm.db2.jcc.a.zc.n (zc.java:1186) [4/6/16 21: 54: 08: 084 PDT] 000000f7 Syste mErr R at com.ibm.db2.jcc.a.ad.db (ad.java:1761) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R при 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 при com.ibm.db2.jcc.a.ad.execute (ad.java:1260) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R в com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute (WSJdbcPreparedStatement.java:942) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R в com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute (WSJdbcPreparedStatement.java:618)

+0

Да, есть таблица с таким именем. Приложение просто выполняет выбор и вставляет в эту таблицу. Это выполняется как часть обработки сообщения из MDB –

+0

Hi mustaccio. Можете ли вы изменить свой комментарий выше, чтобы удалить имя таблицы. Я не уверен, что это связано с безопасностью в моей организации. Спасибо за понимание –

+0

Ну, вы говорите, что есть такая таблица, но DB2 говорит, что нет. Кому мы доверяем? – mustaccio

ответ

0

Параметры подключения в WebSphere Application Server могут влиять на используемую схему (на основе имени пользователя для подключения), однако она будет последовательной и не зависит от того, находится ли база данных под нагрузкой. Если вы заметили, что проблема возникает при загрузке, но не в противном случае, возможно, может возникнуть проблема с потоковой загрузкой.

Чтобы уточнить проблему, Является ли SCHEMA.TABLENAME схемой и таблицей, которую вы ожидаете использовать? Если нет, какая часть неожиданна - схема, имя таблицы или и то, и другое? В качестве альтернативы, если ожидается SCHEMA.TABLENAME, выполняются ли запросы к этой же схеме/таблице, если они не загружаются? Является ли схема SCHEMA явно указана в приложении или неявно из настроек имени пользователя или источника данных?

+0

Имя схемы и таблицы являются правильными. Имя схемы указано явно в коде приложения, а не в настройках источника данных. Можете ли вы отредактировать свой ответ, чтобы изменить имя схемы и таблицы на «SCHEMA.TABLENAME», поскольку я не уверен в ограничениях безопасности в своей организации. –

+0

Конечно, я обновил его соответствующим образом.Учитывая то, что вы сказали о жестком кодировании приложения имя схемы/таблицы, единственным способом объяснить это может быть то, что вы каким-то образом завершили соединение с неправильным пользователем, который не имеет доступа к этой схеме/таблице. Вы можете исследовать это путем захвата ошибки при ее возникновении, а затем попробовать следующее: connection.getMetaData(). GetUserName() – njr