Probleme beim Datenzugriff - Sybase-Datenquelle
Dieser Artikel enthält Tipps zur Fehlerbehebung beim Zugriff auf Sybase-Datenquellen.
Welches Problem tritt beim Zugriff auf die Sybase-Datenbank auf?
- Fehler "Sybase Error 7713: Stored Procedure can only be executed in unchained transaction mode"
- Fehler "JZ0XS: The server does not support XA-style transactions. Please verify that the transaction feature is enabled and licensed on this server."
- Eine CMP-Enterprise-Bean (Container Managed Persistence) löst Ausnahmen aus.
- Datenbank-Deadlocks und XA_PROTO-Fehler bei der Verwendung von Sybase
- Sybase löst keine Ausnahme aus, wenn ein ungültiger Datenbankname angegeben wird
Fehler "Sybase Error 7713: Stored Procedure can only be executed in unchained transaction mode"
- JDBC versucht, den Verbindungsmodus auf autocommit(true) umzustellen.
- Eine gespeicherte Prozedur (Stored Procedure) wird in einem nicht kompatiblen Modus erstellt.
Zur Behebung des Problems mit dem Modus von autocommit(true), lassen Sie die Anwendung den Verbindungsmodus in Connection.setAutoCommit(false) ändern, oder verwenden Sie den Sprachenbefehl set chained on.
Verwenden Sie den Befehl sp_procxmode Prozedurname "anymode", um den Fehler bei der gespeicherten Prozedur zu beheben.
"JZ0XS: The server does not support XA-style transactions. Please verify that the transaction feature is enabled and licensed on this server"
Dieser Fehler tritt auf, wenn versucht wird, XA-Transaktionen auf einem Server auszuführen, auf dem DTM (Distributed Transaction Management) nicht installiert ist.
- Installieren Sie die Option DTM.
- Überprüfen Sie die Datei license.dat, um festzustellen, dass die Option DTM installiert wurde.
- Starten Sie den Lizenzmanager erneut.
- Aktivieren Sie DTM in ISQL.
- Starten Sie den ASE-Service erneut.
CMP-Enterprise-Bean (Container Managed Persistence) löst Ausnahmen aus
Dieser Fehler tritt auf, wenn reservierte Wörter falsch verwendet werden. Reservierte Wörter können nicht als Spaltennamen verwendet werden.
Benennen Sie die Variable um, und entfernen Sie das reservierte Wort. Eine Liste der reservierten Wörter finden Sie in der Veröffentlichung Quick Reference Guide for Sybase Adaptive Server Enterprise 15.5. Dieses Handbuch ist online unter der folgenden Adresse verfügbar: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc70202.1550/html/quickref/CACIGGEB.htm.
Datenbank-Deadlocks und XA_PROTO-Fehler bei der Verwendung von Sybase
- Ändern Sie die Isolationsstufe in der Verbindung in TRANSACTION_READ_COMMITTED. Setzen Sie die Isolationsstufe für nicht gemeinsam benutzbare (Unshareable) Verbindungen in der Verbindung. Für gemeinsam benutzbare (Shareable) Verbindungen definieren Sie die Isolationsstufen mit einem Assembliertool in den Ressourcenreferenzen für Ihre Datenquelle.
- Ändern Sie Sybase auf eine der folgenden Arten:
- Wenn Sie die vorhandenen Tabellen verwenden möchten, müssen Sie das Sperrschema für Tabellen mit dem Befehl alter table Tabellenname lock datarows ändern, um die Sperrstufe auf Zeilenebene festzulegen.
- Wenn Sie das Sperrschema systemweit auf "datarows" (Datenzeilen) setzen möchten, übernehmen alle nachfolgend
erstellten Tabellen diesen Wert und haben dann ebenfalls das Sperrschema "datarows". Anmerkung: Sie müssen die ursprünglichen Datenbanken und Tabellen löschen.
Sybase löst keine Ausnahme aus, wenn ein ungültiger Datenbankname angegeben wird
Vergewissern Sie sich, dass der Datenbankname in den Eigenschaften der Datenquelle korrekt angegeben ist.
Wenn die angegebene Datenbank nicht vorhanden ist, lösen die meisten Datenbanken (DB2, Oracle, Informix, MS SQL Server und Apache Derby) eine Ausnahmebedingung aus. Sybase löst jedoch keine Ausnahme aus, wenn ein ungültiger Datenbankname angegeben wird. Stattdessen generiert Sybase eine SQL-Warnung und stellt dann die Verbindung zur Standarddatenbank her. Falls Sie den angeforderten Datenbanknamen falsch eingeben, stellt Sybase eine Verbindung zur Master-Datenbank oder zur Standarddatenbank her, in der die von Ihnen angeforderte Tabelle nicht enthalten ist.
Wenn Sie den Fehler mit keinem dieser Schritte beheben können, prüfen Sie, ob der Fehler bekannt ist und dokumentiert wurde. Lesen Sie dazu die entsprechenden Informationen in der verfügbaren Onlineunterstützung (Hinweise und Tipps, technische Anmerkungen und Fixes). Falls Ihr Problem hier nicht aufgeführt ist, wenden Sie sich an den IBM Support.