2016-04-07 2 views
0

Unser Code läuft in WebSphere Application Server 7.0.0.37 und verbindet sich mit einigen DB2-Datenbanken. Gelegentlich erhalten wir die Ausnahme "com.ibm.db2.jcc.a.SqlException:" SCHEMA.TABLENAME "ist ein undefinierter Name." Dies passiert jeden Tag, wenn die Last besonders hoch ist. Bitte geben Sie an, ob dies mit den Verbindungseinstellungen in der Websphere zu tun hat.com.ibm.db2.jcc.a.SqlException: tabellenname ist ein nicht definierter Name

[4/6/16 21: 54: 08: 083 PDT] 000000f7 SystemErr R com.ibm.db2.jcc.a.SqlException: Unter dem Stacktrace ist "schema.tabellenname" ist ein undefinierter Name. [4/6/16 21: 54: 08: 083 PDT] 000000f7 SystemErr R um com.ibm.db2.jcc.a.zc.e (zc.java:1606) [4/6/16 21:54: 08: 084 PDT] 000000f7 SystemErr R bei com.ibm.db2.jcc.a.c.a (zc.java:1206) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R bei com.ibm.db2.jcc.c.eb.h (eb.java:149) [06.04.16 21: 54: 08: 084 PDT] 000000f7 SystemErr bei com.ibm.db2.jcc.c .eb.a (eb.java:43) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R bei com.ibm.db2.jcc.cra (r.java30) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr bei com.ibm.db2.jcc.c.tb.g (tb.java:152) [4/6/16 21:54:08 : 084 PDT] 000000f7 SystemErr R bei com.ibm.db2.jcc.a.zc.n (zc.java:1186) [4/6/16 21: 54: 08: 084 PDT] 000000f7 Syste mErr R bei com.ibm.db2.jcc.a.ad.db (ad.java:1761) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R bei com.ibm.db2. jcc.a.ad.d (ad.java:2203) [16.04.16 21: 54: 08: 084 PDT] 000000f7 SystemErr R bei com.ibm.db2.jcc.a.ad.W (ad. Java: 1276) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R um com.ibm.db2.jcc.a.ad.execute (ad.java:1260) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R um com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute (WSJdbcPreparedStatement.java:942) [4/6/16 21: 54: 08: 084 PDT] 000000f7 SystemErr R um com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute (WSJdbcPreparedStatement.java:618)

+0

Ja, es gibt eine Tabelle mit diesem Namen. Die Anwendung führt nur aus und fügt in diese Tabelle ein. Dies wird als Teil der Verarbeitung einer Nachricht von MDB –

+0

Hallo mustaccio, können Sie bitte Ihre Kommentar oben bearbeiten, um den Tabellennamen zu entfernen. Ich bin mir nicht sicher, ob dies eine sicherheitsrelevante Sache in meiner Organisation ist. Vielen Dank für Ihr Verständnis. –

+0

Nun, Sie sagen, es gibt eine solche Tabelle, aber DB2 sagt, dass es keine gibt. Wem vertrauen wir? – mustaccio

Antwort

0

Die Verbindungseinstellungen in WebSphere Application Server können sich auf das verwendete Schema auswirken (basierend auf dem Benutzernamen der Verbindung), sind jedoch konsistent und hängen nicht davon ab, ob eine Datenbank geladen ist oder nicht. Wenn Sie festgestellt haben, dass das Problem unter Last auftritt, aber nicht anders, ist möglicherweise ein Threading-Fehler vorhanden.

Um das Problem zu klären, ist SCHEMA.TABLENAME das Schema und die Tabelle, die Sie voraussichtlich verwendet werden? Wenn nicht, welcher Teil ist unerwartet - das Schema, der Tabellenname oder beides? Wenn SCHEMA.TABLENAME erwartet wird, funktionieren Abfragen für dieses Schema/diese Tabelle auch, wenn sie nicht geladen sind? Wird das SCHEMA-Schema explizit in der Anwendung oder implizit aus dem Verbindungsbenutzernamen oder den Datenquelleneinstellungen angegeben?

+0

Das Schema und der Tabellenname sind die richtigen. Der Schemaname wird explizit im Anwendungscode und nicht in den Datenquelleneinstellungen angegeben. Können Sie bitte Ihre Antwort bearbeiten, um den Schema- und Tabellennamen in "SCHEMA.TABLENAME" zu ändern, da ich mich der Sicherheitseinschränkungen in meiner Organisation nicht sicher bin. –

+0

Sicher, ich habe es entsprechend aktualisiert.Angesichts dessen, was Sie über die Anwendung gesagt haben, die den Schema/Tabellennamen hart kodiert, könnte ich das nur dadurch erklären, dass Sie irgendwie mit der Verbindung mit dem falschen Benutzer, der keinen Zugriff auf dieses Schema/diese Tabelle hat, in Verbindung kommen. Sie könnten dies untersuchen, indem Sie den Fehler abfangen, wenn er auftritt, und dann Folgendes versuchen: connection.getMetaData(). GetUserName() – njr

Verwandte Themen