kuaza
Elite Observer

Datenbank: Spalte hinzufügen nicht mehr möglich

Jump to solution

Hallo zusammen,

wir haben bei einem Projekt (FS 5.0.318.57504) akut ein Problem, dass man bei allen Tabellen eines Schemas, die eine Fremdschlüssel-Beziehung haben, keine weiteren Spalten mehr hinzufügen kann.

Es erscheint immer folgende Fehlermeldung:

Fehler beim Datenbankzugriff:

ALTER TABLE P5003_2750.PRODUCT_GROUPS ADD TEST NVARCHAR(64)

Nested message: You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.

Hat das zufällig jemand schon mal gehabt?

Grüße,

Micha

0 Kudos
1 Solution

Accepted Solutions
kuaza
Elite Observer

Hatte ein Support Ticket erstellt.

Hier der Lösungsansatz für die Nachwelt Smiley Wink

Die Fehlermeldung:
Nested message: You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.
deutet darauf hin, dass es ein Problem mit dem Serialisierungslevel der Datenbank gibt.

Ab der Version 5 ist dieser Level standardmäßig auf SERIALIZABLE eingestellt.

Bitte schicken Sie mir die Konfiguration der entsprechenden Datenbank zu. Diese finden Sie hier:
- Öffnen Sie die Server- und Projektkonfiguration (User Admin)
- Öffnen Sie die Server/Eigenschaften
- Wechseln Sie zu Datenbanken
- Bearbeiten Sie die entsprechende Datenbankkonfiguration udn schicken Sie mir den Inhalt der Karteikarte JDBC Parameter zu.

Wahrscheinlich funktionierender Workaround/Lösung:
- Fügen Sie an der oben genannten Stelle den folgenden Parameter noch hinzu:
jdbc.isolation=READ_COMMITTED


Hinweis zu den verschiedenen Werten dieses Parameters:
Durch parallel laufende Transaktionen, die Änderungen an Daten der Datenbank vornehmen, können undefinierte Zustände entstehen. Um zu vermeiden, dass eine laufende Transaktion durch eine parallel ablaufende Transaktion (durch eine Änderung der verwendeten Daten) in einen undefinierten Zustand versetzt wird, sollte eine Transaktionsisolation konfiguriert werden. Mithilfe des Parameters können unterschiedliche Isolationslevel  konfiguriert werden. Generell unterstützt werden:

       READ_COMMITTED: Niedrigstes Isolationslevel.
       REPEATABLE_READ: Mittleres Isolationslevel.
       SERIALIZABLE: Höchstes Isolationslevel (Standardwert).

Hinweis: Nicht jedes Datenbankmanagementsystem unterstützt alle Isolationslevel. So unterstützt beispielsweise eine OracleDB 11 nur die beiden Isolationslevel READ_COMMITTED und SERIALIZABLE, nicht aber REPEATABLE_READ. Im Einzelfall sollte die Dokumentation der entsprechenden Datenbank zu Rate gezogen werden.

View solution in original post

0 Kudos
1 Reply
kuaza
Elite Observer

Hatte ein Support Ticket erstellt.

Hier der Lösungsansatz für die Nachwelt Smiley Wink

Die Fehlermeldung:
Nested message: You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.
deutet darauf hin, dass es ein Problem mit dem Serialisierungslevel der Datenbank gibt.

Ab der Version 5 ist dieser Level standardmäßig auf SERIALIZABLE eingestellt.

Bitte schicken Sie mir die Konfiguration der entsprechenden Datenbank zu. Diese finden Sie hier:
- Öffnen Sie die Server- und Projektkonfiguration (User Admin)
- Öffnen Sie die Server/Eigenschaften
- Wechseln Sie zu Datenbanken
- Bearbeiten Sie die entsprechende Datenbankkonfiguration udn schicken Sie mir den Inhalt der Karteikarte JDBC Parameter zu.

Wahrscheinlich funktionierender Workaround/Lösung:
- Fügen Sie an der oben genannten Stelle den folgenden Parameter noch hinzu:
jdbc.isolation=READ_COMMITTED


Hinweis zu den verschiedenen Werten dieses Parameters:
Durch parallel laufende Transaktionen, die Änderungen an Daten der Datenbank vornehmen, können undefinierte Zustände entstehen. Um zu vermeiden, dass eine laufende Transaktion durch eine parallel ablaufende Transaktion (durch eine Änderung der verwendeten Daten) in einen undefinierten Zustand versetzt wird, sollte eine Transaktionsisolation konfiguriert werden. Mithilfe des Parameters können unterschiedliche Isolationslevel  konfiguriert werden. Generell unterstützt werden:

       READ_COMMITTED: Niedrigstes Isolationslevel.
       REPEATABLE_READ: Mittleres Isolationslevel.
       SERIALIZABLE: Höchstes Isolationslevel (Standardwert).

Hinweis: Nicht jedes Datenbankmanagementsystem unterstützt alle Isolationslevel. So unterstützt beispielsweise eine OracleDB 11 nur die beiden Isolationslevel READ_COMMITTED und SERIALIZABLE, nicht aber REPEATABLE_READ. Im Einzelfall sollte die Dokumentation der entsprechenden Datenbank zu Rate gezogen werden.

0 Kudos