Problem mit Datenbankzugriff

ceene

Erfahrenes Mitglied
Hallo alle zusammen

Ich mach in meiner Anwendung auf Server-Seite eine lookup auf eine Datenbank
PHP:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(zugang.getDatenbank());
conn = ds.getConnection();

Danach sperre ich über diese Connection einen Datensatz in der Datenbank
PHP:
String sql = "select * from .........  for update nowait";
Statement stm = conn.createStatement();
stm.execute(sql);
conn.close();

Dann ist der Satz gesperrt. Nun selektiere ich in anderen Methoden noch einige Daten mit dem gleichen Prinzip......lookup dann die connection öffnen und den select absetzten, das ergebniss verarbeiten und die Connection wieder schließen.

Um nun den gesperrten Datensatz wieder freizugeben reicht ja eigentlich ein commit auf der Datenbank.
PHP:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(zugang.getDatenbank());
conn = ds.getConnection();
            
String sql = "commit";

Statement stm = conn.createStatement();
stm.execute(sql);
conn.close();

Nun mein Problem. Wenn ich die selekts zwischen dem sperren und dem commit nicht mache, dann funktioniert es einwandfrei, nur wenn ich die selekts mache führt er den commit aus aber der Datensatz bleibt gesperrt.

Kann mir jemand sagen wo das Problem liegt oder wie ich den Datensatz anders sperren kann?
Freue mich über jede Hilfe da es dringend ist.
 
Zuletzt bearbeitet:
Zurück