2016-04-27 7 views
2

Ich verwende DB2 6.1 AS/400 und System i Navigator. Ist es möglich, dass zwei verschiedene Schemata zwei unterschiedliche Isolationsstufen haben? Derzeit arbeite ich an zwei Schemas, eines für die Entwicklung, das zweite für die Testphase. Der erste war vor etwa 4 Monaten, der zweite vor ein paar Tagen.DB2-Transaktionsisolation pro Schema

Ich führe eine Java-basierte Webanwendung, die einige SQL-Anweisungen aus Java-Code ausführt, und ruft schließlich gespeicherte Prozedur auf. In der Regel sind dies ein Select für Update Statement sowie einige Insert Select Statements. Alle Vorgänge werden mit einer Verbindung mit deaktivierter automatischer Festschreibung ausgeführt. Was ist interessant, wenn ich Anwendung auf Entwicklungsschema laufen alles funktioniert gut. Wenn ich zum Testschema wechsele (die einzige Änderung ist in einer Konfiguration der Anwendung), bekomme ich Timeouts in der Prozedur wegen der Sperren auf einigen Tabellen. Ich habe keine Idee warum. Genau derselbe Code wird am Produktionsschema übergeben.

Ist es möglich? Kann ich das im System i Navigator irgendwie überprüfen?

Antwort

1

Nein, Isolationsstufe ist eine Eigenschaft auf Anweisungsebene.

Es gibt keine Möglichkeit, eine Isolationsstufe pro Schema anzugeben.

Auch die Verbindungsisolationsstufe ist einfach ein Standardwert, der verwendet wird, wenn die Anweisung dies nicht explizit festlegt.

Zeigen Sie genau, was Sie ändern, um Schemas zu ändern.

0

Ich ändere nur die Konfigurationsdatei: db.schema = test oder db.schema = dev. Das ist alles. Ich verkette jede Anweisung in Code mit dem Wert der Eigenschaft db.schema von config.