MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt?

DStrohma

Bekanntes Mitglied
Hi,

ich habe ein Programm mit dem ich auf eine MS SQL Server 2005 Datenbank zugreife. Wenn ich da aber gerade einen Datensatz editiere, dann kann kein Zweiter User auf den Datensatz zugreifen. Der zweite User muss so lange warten bis ich fertig bin und dann kann er ebenfalls auf die Daten zugreifen. Bedeutet, das Programm des Anderen hängt so lange, bis ich mit dem Editieren fertig bin.

Es liegt nicht an dieser Einstellung hier:
Code:
setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

Da hab ich bereits alles durchprobiert, ändert nicht viel.
Könnte es vielleicht etwas damit zutun haben dass die Änderungen (wenn ich welche vornehme) direkt in die Datenbank gespeichert werden, aber wenn ich dann in der GUI auf "CANCEL" geh, ein Rollback gemacht wird??

Sieht in etwa so aus:
Code:
            conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
            conn.setAutoCommit(false);
           Savepoint start = conn.setSavepoint();

Fällt jemandem was dazu ein??
 
G

Gelöschtes Mitglied 5909

Gast
das liegt daran, dass du falsch vorgehst.

du machst:
daten landen -> edit gui öffnen -> transaktion öffnen -> user macht 5 minuten lang irgendwas -> ok = commit / cancel = rollback

richtig:
daten laden -> edit gui öffnen -> daten sammeln
-> ok = transaktion öffnen + statements absetzen + commit (alles in einem)
-> cancel = nix machen (bzw. ggf daten neu laden [von db oder cache/ursprünglichen objekten]

Das Verhalten der DB ist korrekt und hat nix mit der Connection zu tun
 

DStrohma

Bekanntes Mitglied
Naja, eigentlich ist es Absicht dass ich automatisch alles commite und eben nur wenn der user CANCEL drückt alles wieder rückgängig gemacht wird. Da dürfte aber - wenn ich dich richtig verstanden habe - das Problem liegen oder? Oder ist das Problem einfach dass AUTOCOMMIT auf false ist? Kann es gerade nicht ausprobieren, bin nicht in der Arbeit.
 
G

Gelöschtes Mitglied 5909

Gast
Naja, eigentlich ist es Absicht dass ich automatisch alles commite und eben nur wenn der user CANCEL drückt alles wieder rückgängig gemacht

gut dann hast du das problem halt weiterhin

Oder ist das Problem einfach dass AUTOCOMMIT auf false ist?

Das wird das Problem nicht lösen.

Da du es anscheinend nicht verstanden hast, nochmal:

du machst:
daten landen -> edit gui öffnen -> transaktion öffnen -> user macht 5 minuten lang irgendwas hier blockiert die DB für den zweiten Benutzer -> ok = commit / cancel = rollback

Und nochmal zur verdeutlichung:
Wenn User 1 den Satz Editiert und sich dann einen Kaffee holt, oder in die Mittagspause geht oder was auch immer macht, dann ist der Datensatz immernoch gesperrt. Lösung siehe oben

Nochmal technisch: der Datensatz wird von begin transaction bis commit/rollback blockiert. Da du das an die GUI gekoppelt hast, können das x minuten / stunden / tage / jahre sein. Und ist schichtweg falsch.
 
Zuletzt bearbeitet von einem Moderator:

DStrohma

Bekanntes Mitglied
Ok, dann nehme ich an dass es daran liegt und versuch das umzubauen... Wird aber schwierig da wir das eigentlich mit Absicht so gelöst haben ;(

Da hab ich dann aber noch eine Verständnisfrage: Was wenn die Erstellung eines Datensatzes von der vorherigen Erstellung eines anderen Datensatzes abhängt? Dann müsste ich ja den ersten Datensatz erstellen, OK klicken, wieder in die Eingabemaske gehen und dann weiter machen und den darauf aufbauenden Datensatz einfügen... Wie regle ich das dann wenn ich die Verbindung auf die herkömmliche Art und Weise löse?

Gruß,
DS
 
G

Gelöschtes Mitglied 5909

Gast
Wird aber schwierig da wir das eigentlich mit Absicht so gelöst haben

Dann habt ihr euch anscheinend nicht ausreichend Gedanken darüber gemacht.

Was wenn die Erstellung eines Datensatzes von der vorherigen Erstellung eines anderen Datensatzes abhängt?

was soll denn passieren wenn einer nach dem 1. Satz abbrechen clickt? ist das überhaupt möglich?
Was heißt in deinem Fall abhängig? Logisch? Technisch?

Wenn die Daten voneinander abhängig sind würde ich es so deuten, dass entweder beide oder keins eingefügt werden soll.
Auch da funktioniert das so wie ich es oben beschrieben habe ohne Probleme. Daten Sammeln und auf einen Rutsch einfügen.
Geht was schief sind beide Änderungen gerollbacked.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
J MS sql Server 2005 Treiber Datenbankprogrammierung 9
K INSERT INTO bei Windows 2005 SQL Server Standard Edition . Datenbankprogrammierung 2
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D Oracle Gateway oder Relay-Server Datenbankprogrammierung 5
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Verbindung zum SQL-Server Datenbankprogrammierung 27
J Datenbank VPS Server Datenbankprogrammierung 3
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
V HSQLDB detached entity passed to persist: server.Employee Datenbankprogrammierung 4
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
B Derby/JavaDB Client-Server-Architektur mit Datenbank Datenbankprogrammierung 6
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
M MySQL Verbindung zum Server aufbauen ohne DB ansprechen Datenbankprogrammierung 2
C Derby auf Server Datenbankprogrammierung 6
ruutaiokwu sql server t-sql: try/catch bei ALTER TABLE ? Datenbankprogrammierung 4
ruutaiokwu sql server 2008 stored procedures automatisiert vergleichen Datenbankprogrammierung 2
ruutaiokwu sql server constraints priorität? Datenbankprogrammierung 3
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
W MySQL -Server Einstellung -- Zugriff übers lokale Netzwerk Datenbankprogrammierung 1
cover1012 Derby/JavaDB Verbindung mit FTP-Server Datenbankprogrammierung 13
N MySQL Datenbank-Server in *.jar packen? Datenbankprogrammierung 6
L Mit Java Desktop Anwendung auf Mysql Server auf Webspace verbinden Datenbankprogrammierung 11
F h2 als server Datenbankprogrammierung 3
V MySQL MsSql ohne Server nutzen? Datenbankprogrammierung 2
S MySQL Server Informationen abfragen Datenbankprogrammierung 6
F MSSQL-Server Verbindung Datenbankprogrammierung 5
D MySQL Client - Server: Client verabschiedet sich sobald ich Variablen im SQL Statement verwende Datenbankprogrammierung 9
A MS Sql Server 2008 - Verbindungsproblem Datenbankprogrammierung 3
E Nach Server wechsel Datenbank fehler ?!? Datenbankprogrammierung 3
J Oracle oder SQL-Server Datenbankprogrammierung 18
J Server Datenbankprogrammierung 3
C SQL Server Treiber [DBNETLIB] Datenbankprogrammierung 14
A Client-Server anwendung sofort aktualisieren Datenbankprogrammierung 7
T Hsqldb: java.lang.NoClassDefFoundError: org/hsqldb/Server Datenbankprogrammierung 2
E MSSQL-Server connection aufbau sehr langsam Datenbankprogrammierung 2
0x7F800000 MS-SQL Server 2008 Wie benutzt man da NATURAL JOIN / INNER JOIN USING? Datenbankprogrammierung 3
D Bean: server internal error Datenbankprogrammierung 5
Landei MsSql Express Server 2008 Datenbankprogrammierung 8
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
M [gelöst] Problem mit SQL Server. Statements... Datenbankprogrammierung 4
A Java JDBC Programm bringt auf Unix Server Fehlermeldung Datenbankprogrammierung 4
K JDBC MS SQL SERVER Datenbankprogrammierung 6
G jdbc grundlegende verbindung zu sql server geht nicht Datenbankprogrammierung 9
thE_29 Byte auslesen mit MS SQL Server Datenbankprogrammierung 4
sparrow Hibernate in non-EE Server/Client-App (Topic geändert) Datenbankprogrammierung 10
G Suchen von Zahlen in einem Textfeld / SQL Server Datenbankprogrammierung 1
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T JDBC und Client/Server Datenbankprogrammierung 12
G SQL Server Connection Datenbankprogrammierung 12
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4
R Unknown initial character set index . received from server Datenbankprogrammierung 5
M HSQLDB Server Problem Datenbankprogrammierung 2
F Zwischen Datenbanken wählen auf SQL-Server Datenbankprogrammierung 4
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
G Datenbank ohne Server Datenbankprogrammierung 28
G DB-Server schmiert ab Datenbankprogrammierung 6
D Datenbankzugriff auf MS SQL Server 2000 funktioniert nicht Datenbankprogrammierung 3
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
J Hibernate + Spring + SQL Server => Performanceprobleme :( Datenbankprogrammierung 4
G JDBC Verbindung zu MySQL-Server auf lokalem Rechner Datenbankprogrammierung 5
O Datenbankzugriff "ohne" Server ? Datenbankprogrammierung 9
D Datenbank zugriff über Client/Server Datenbankprogrammierung 4
G Problem mit Suchen Statement Java und MS-SQL-Server Datenbankprogrammierung 9
thE_29 Microsoft SQL Server 2000 Datenbankprogrammierung 2
A DTS Export/Import MS-SQL Server 2000 Datenbankprogrammierung 3
A help me !(entitybean + sql server) Datenbankprogrammierung 2
R Invalid parameter bindings bei MS SQL Server Datenbankprogrammierung 2
G Fehlermeldung beim Zugriff auf SQL-Server-DB Datenbankprogrammierung 3
R JAVA-Prog auf Datenbank-Server zugreifen Datenbankprogrammierung 3
GianaSisters Per JDBC auf Microsoft SQL 2005 Datenbankprogrammierung 24
S MS SQL 2005 Express Edition - 4GB DB-Limit Datenbankprogrammierung 6
T JDBC Verbindung zum MS-SQL 2005 Datenbankprogrammierung 2
P [JBuilder 2005] MySQL Connector/J (5.0) installieren? Datenbankprogrammierung 2
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18

Ähnliche Java Themen

Neue Themen


Oben