Probleme beim Datenzugriff - Apache-Derby-Datenbank

Dieser Artikel enthält Tipps zur Fehlerbehebung beim Zugriff auf Apache-Derby-Datenbanken.

Beim Zugriff auf eine Apache-Derby-Datenbank ist eine unerwartete IOException in einer SQLException aufgetreten

Dieses Problem kann auftreten, da Apache-Derby-Datenbanken viele Dateien verwenden. Einige Betriebssysteme, wie z. B. die Betriebsumgebung Solaris, begrenzen die Anzahl der Dateien, die von einer Anwendung gleichzeitig geöffnet werden können. Wird mit dem Standardwert eine niedrige Zahl angegeben, wie z. B. 64, empfangen Sie möglicherweise diese Ausnahme.

Wenn Sie die Anzahl der Dateideskriptoren in Ihrem Betriebssystem konfigurieren können, können Sie den Fehler beheben, indem Sie als Wert eine hohe Zahl, z. B. 1024, angeben.

Beim Zugriff auf Apache Derby löst die Operation "select for update" eine Tabellensperre und einen Deadlock aus

Wenn eine für eine Zeile ausgeführte Operation "select for update" die gesamte Tabelle sperrt, was zu einem Deadlock führt, sind unter Umständen keine Indizes für diese Tabelle definiert. Falls keine Indizes für die Spalten definiert sind, die Sie in der Klausel where verwenden, kann Apache Derby anstelle einer Zellensperre eine Tabellensperre setzen.

Erstellen Sie zur Behebung dieses Fehlers einen Index für die betroffene Tabelle.

Fehler "The version of the IBM Universal JDBC driver in use is not licensed for connectivity to Apache Derby databases"

Zur Laufzeit des Clients wird eine Fehlernachricht wie die folgende ausgegeben:
The version of the IBM Universal JDBC driver in use is not
licensed for connectivity to Apache Derby databases.  To connect 
to this DB2 server, please obtain a licensed copy of the IBM DB2 
Universal Driver for JDBC and SQLJ.  An appropriate license file 
db2jcc_license_*.jar for this target platform must be installed to 
the application classpath.  Connectivity to Apache Derby databases is 
enabled by any of the following license files: 
{ db2jcc_license_c.jar, b2jcc_license_cu.jar, db2jcc_license_cisuz.jar }
Der Fehler tritt auf, wenn im Klassenpfad des JDBC-Providers der Name einer falschen JAR-Datei für den JDBC-Treiber angegeben ist. Der Name der JAR-Datei könnte ein zusätzliches Unterstreichungszeichen ('_') enthalten. Beispiel:
${UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license__cu.jar
Gehen Sie wie folgt vor, um den Fehler zu beheben:
  1. Korrigieren Sie den Namen der UNIVERSAL_JDBC_DRIVER_PATH-JAR-Datei im JACL-Script.
  2. Starten Sie den Cluster erneut.
  3. Führen Sie den Client erneut aus.

Die Ausführung einer Anwendung löst eine Laufzeitausnahme aus, die eine nicht lesbare Nachricht produziert

Zur Laufzeit des Clients kann eine Nachricht wie die folgende ausgegeben werden: Caused by: com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: ANNUITYHOLDER20^T42X05

Dieser Fehler tritt auf, wenn die für WebSphere Application Server erforderliche Eigenschaft retrieveMessagesfromServerOnGetMessage nicht gesetzt ist.

Führen Sie zur Fehlerbehebung in der Administrationskonsole die folgenden Schritte aus:
  1. Klicken Sie auf Ressourcen > JDBC-Provider.
  2. Klicken Sie auf einen Apache-Derby-Provider.
  3. Blättern Sie nach unten, und klicken Sie auf Datenquellen.
  4. Wählen Sie Ihre Datenquelle aus, oder fügen Sie eine neue hinzu.
  5. Wählen Sie Angepasste Eigenschaften aus.
  6. Falls die Eigenschaft retrieveMessagesFromServerOnGetMessage vorhanden ist, setzen Sie den zugehörigen Wert auf true. Sollte die Eigenschaft nicht vorhanden sein, wählen Sie Neu aus, und fügen Sie die Eigenschaft retrieveMessagesFromServerOnGetMessage mit dem Wert true hinzu.
  7. Führen Sie den Client erneut aus.
Die Datei "SystemOut.log" generiert jetzt lesbare Nachrichten, damit Sie das zugrundeliegende Problem beheben können.
Anmerkung: Dieser Artikel referenziert eine oder mehrere Protokolldateien des Anwendungsservers. Alternativ dazu wird empfohlen, den Server so zu konfigurieren, dass er die HPEL-Protokoll- und -Traceinfrastruktur (High Performance Extensible Logging) verwendet und nicht die Dateien SystemOut.log , SystemErr.log, trace.log und activity.log auf verteilten oder IBM® i-Systemen. Sie können HPEL auch in Verbindung mit Ihren nativen z/OS-Protokolleinrichtungen verwenden. Wenn Sie HPEL verwenden, können Sie mit dem Befehlszeilentool LogViewer im Verzeichnis "bin" des Serverprofils auf alle Ihre Protokoll- und Tracedaten zugreifen. Weitere Informationen zur Verwendung von HPEL finden Sie in der Dokumentation zum Einsatz von HPEL für die Fehlerbehebung in Anwendungen.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_dsaccess5
Dateiname:rtrb_dsaccess5.html