Probleme beim Datenzugriff - Datenquelle vom Typ Microsoft SQL Server
Dieser Artikel enthält Tipps zur Fehlerbehebung beim Zugriff auf Microsoft SQL Server-Datenquellen.
Welches Problem tritt beim Zugriff auf die Datenbank vom Typ Microsoft SQL Server auf?
- Microsoft SQL Server JDBC Driver V2.0 blockiert nach Verbindungsfehler
- ERROR CODE: 20001 and SQL STATE: HY000 accessing SQLServer database
- Anwendungsfehler vom Typ "Gespeicherte Prozedur nicht gefunden..." beim Zugriff auf eine Microsoft-SQL-Server-Datenbank
- ERROR CODE: SQL5042 when you run a Java application
Ausnahme JAVAX.TRANSACTION.XA.XAEXCEPTION mit dem Fehler XP_SQLJDBC_XA_INIT
Microsoft SQL Server JDBC Driver V2.0 blockiert nach Verbindungsfehler
Wenn Sie Microsoft SQL Server JDBC Driver Version 2.0 verwenden (bei anderen Versionen tritt dieses Problem nicht auf), kann es nach einem Verbindungsfehler zu einer Blockierung kommen. Der Testfix von Microsoft behebt dieses Problem (http://support.microsoft.com/kb/977924).
ERROR CODE: 20001 and SQL STATE: HY000 accessing SQLServer database
ERROR CODE: 20001
SQL STATE: HY000
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]
[SQLServer]xa_open (0) returns -3
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) ...
at com.microsoft.jdbcx.sqlserver.SQLServerDataSource.getXAConnection(Unknown Source) ...
- Klicken Sie unter Windows auf . Oder klicken Sie auf .
- Vergewissern Sie sich, dass der Dienst Distributed Transaction Coordinator oder DTC gestartet wurde.
- Ist dies nicht der Fall, starten Sie den Dienst Distributed Transaction Coordinator.
Anwendungsfehler vom Typ "Gespeicherte Prozedur nicht gefunden..." beim Zugriff auf eine Microsoft-SQL-Server-Datenbank
Dieser Fehler kann auftreten, wenn die gespeicherten Prozeduren für das JTA-Feature (Java™ Transaction API) nicht auf in Microsoft SQL Server installiert sind.
Gehen Sie zur Lösung des Problems wie folgt vor: Wiederholen Sie die Installation der gespeicherten Prozeduren für JTA gemäß den Anweisungen im Installationshandbuch für JDBC-Treiber.
ERROR CODE: SQL5042 when you run a Java application
- Sie verwenden einen (Anwendungs-) Treiber des Typs 2 im Gateway zum Betriebssystem OS 390.
- Ihre Anwendung ist eine XA-Anwendung.
- Vergewissern Sie sich, dass in der Konfiguration des Datenbankmananger (dbm cfg) SPM nicht im Gateway gestartet wird.
- Ordnen Sie einen Port zu, und setzen Sie die Variable db2comm auf TCPIP.
- Geben Sie mit dem Parameter SPM_NAME in der Konfiguration des Datenbankmanagers den Namen Ihrer Maschine an.
- Starten Sie SPM im Gateway.
![[Windows]](../images/windows.gif)
Ausnahme JAVAX.TRANSACTION.XA.XAEXCEPTION mit dem Fehler XP_SQLJDBC_XA_INIT
Wenn Sie eine Datenbank vom Typ Microsoft SQLSERVER unter Windows Server 2003 verwenden und einen Cluster von SQL-Servern von einem Knoten auf einen anderen verschieben, kann die Einstellung
in den Windows-Komponentendiensten auf inaktiviert zurückgesetzt werden. In diesem Fall kann eine Ausnahme des Typs JAVAX.TRANSACTION.XA.XAEXCEPTION mit dem Fehler XP_SQLJDBC_XA_INIT ausgegeben werden, weil der JDBC-Treiber nicht mehr für XA-Transaktionen aktiviert ist.- Klicken Sie auf dem Microsoft-Windows-Desktop auf .
- Erweitern Sie die Baumstrukturansicht, und suchen Sie den Computer, für den Sie Unterstützung für XA-Transaktionen aktivieren möchten, z. B. Arbeitsplatz.
- Zeigen Sie das Kontextmenü für den Computernamen an, und klicken Sie anschließend auf .
- Klicken Sie auf , und setzen Sie anschließend die Einstellung auf den Zeitwert, der für Ihre Umgebung angemessen ist. Empfohlen wird eine Mindesteinstellung von 180 Sekunden.
- Klicken Sie auf und anschließend auf .
- Wählen Sie unter die Option aus, um diese Unterstützung zu aktivieren.
- Klicken Sie auf , um Ihre Änderungen zu speichern.

- KB899756: nur Windows 2003. MSDTC erkennt keine Prozessbeendigung, und MSDTC kann keine Zeitlimitwerte für XA-Transaktionen in Windows Server 2003 setzen.
- KB318818: Die Leistung nimmt ab, wenn SIe XA-Transaktionen mit SQL Server verwenden.