Mehrere Abfragen gleichzeitig - was passiert da?

Status
Nicht offen für weitere Antworten.

newbie1

Mitglied
Hallo zusammen,

bin absoluter Neuling was Java angeht und hab mit Müh und Not nen Agenten zum Laufen gebracht, der mir über JDBC Daten aus einer DB2 liefert, die ich dann in einer Notes-DB weiterverarbeite.
Funktioniert auch alles ganz gut, nur bin ich bis jetzt die einzige Testperson.

Meine Frage ist nun: Was passiert wenn mehrere Mitarbeiter gleichzeitig eine Abfrage über diesen JDBC-Agent starten? Ist das problemlos möglich oder muss ich das irgendwie sperren, einschränken was auch immer?

Wie gesagt, bin völlig planlos und auf euch Cracks hier angewiesen. Bitte klärt mich auf damit ich die Sache mit gutem Gewissen freigeben kann.
 

foobar

Top Contributor
Was ist denn ein Agent?????

Meine Frage ist nun: Was passiert wenn mehrere Mitarbeiter gleichzeitig eine Abfrage über diesen JDBC-Agent starten? Ist das problemlos möglich oder muss ich das irgendwie sperren, einschränken was auch immer?

Sind die Methoden synchronized?
Sperrst du die Datensätze beim lesen?
OptimisticLocking?
PessimisticLocking?
 

abollm

Top Contributor
newbie1 hat gesagt.:
[..]
bin absoluter Neuling was Java angeht und hab mit Müh und Not nen Agenten zum Laufen gebracht, der mir über JDBC Daten aus einer DB2 liefert, die ich dann in einer Notes-DB weiterverarbeite.
Funktioniert auch alles ganz gut, nur bin ich bis jetzt die einzige Testperson.

Meine Frage ist nun: Was passiert wenn mehrere Mitarbeiter gleichzeitig eine Abfrage über diesen JDBC-Agent starten? Ist das problemlos möglich oder muss ich das irgendwie sperren, einschränken was auch immer? [..]

Das ist eigentlich eine Grundsatzfrage zu einem DBMS (Datenbank-Managementsystem). Jedes bessere dieser DBMS - wozu ich auch DB2 zähle - verfügt über einen Sperr- oder Locking-Mechanismus. Mit anderen Worten: Der jeweils in Bearbeitung befindliche Datensatz wird im Moment der Bearbeitung gesperrt. Wenn nun ein Nutzer einen Datensatz in Bearbeitung hat, kann er _momentan_ nicht durch einen anderen bearbeitet werden. Erst wenn das DBMS den Datensatz wieder freigegeben hat, kann ein anderer seine Transaktion durchschreiben. Es ist klar, dass diese Einschränkungen für DML-Befehle gelten (INSERT, UPDATE, DELETE), während der SELECT-Befehl diesen Einschränkungen nicht unterliegt.

Wie das DBMS genau das Locking (Optimistic Locking etc.) durchführt hängt i.d.R. von ihm selbst ab. Das ist aber dann ein anderes Thema.
 

newbie1

Mitglied
Ok, du weißt nicht was ein Agent ist und ich weiß nicht was optimisticLocking und pessimisticLocking ist.

Mein Java-Code befindet sich in einem Agenten in meiner Notes-DB. Ein Agent läuft auf dem Server und wird vom User z.B. durch Klicken auf eine Schaltfläche gestartet.

Hier ist ein Teil des Codes, vielleicht kannst du ja damit was anfangen:

Code:
import lotus.domino.*;
import java.sql.*;
import java.io.*;
import java.util.*;

public class JavaAgent extends AgentBase {

	public void NotesMain() {

		try {
			Session session = getSession();
			AgentContext agentContext = session.getAgentContext();
			Database db = agentContext.getCurrentDatabase();
			Document doc = agentContext.getDocumentContext();
			Document profildok = db.getProfileDocument("Profildok", "");
			
						
			PrintWriter pw = getAgentOutput();
			Connection con=null;
			Statement stmt=null;
			ResultSet rs=null;
			
			String JDBCDriverName="Name des Treibers";
			String system="Pfad zur Datei auf DB2";

			String user = "NameUser"; 
			String pwd = "Passwort"; 

			DriverManager.registerDriver((Driver) Class.forName(JDBCDriverName).newInstance());
			con = DriverManager.getConnection(system,user,pwd);
			stmt = con.createStatement();
			
						
			// Abfrage
			String sql = "SELECT feldnamen FROM datei WHERE ...";
			rs = stmt.executeQuery(sql);
			
				
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
}
 

newbie1

Mitglied
@abollm

Versteh ich dich richtig, dass es auf die Administration der DB2 ankommt, wie das gehandelt wird? Dann sollte ich mich wohl mit dem DB2-Admin unterhalten.

Also vielen Dank auf jeden Fall.
 

Bleiglanz

Gesperrter Benutzer
weil bei jedem Aufruf eine Connection geöffnet wird und es keine Member-Variablen gibt, sollte es eigentlich (vom Code her gesehen) keine Probleme geben.

Dass verschiedene User bei gleichzeitigem Zugriff evtl. nicht die gleichen Daten sehen (weil sich auf der DB was ändert) ist eine ganz andere Geschichte...
 

abollm

Top Contributor
newbie1 hat gesagt.:
@abollm

Versteh ich dich richtig, dass es auf die Administration der DB2 ankommt, wie das gehandelt wird? Dann sollte ich mich wohl mit dem DB2-Admin unterhalten.

Also vielen Dank auf jeden Fall.

Kann sein, da ich es nicht genau weiß. Günstig ist es auf jeden Fall, den Admin zu fragen. Irgendwo habe ich einmal gelesen, dass DB2 standardmäßig Optimistic Locking verwendet. Von Oracle weiß ich, dass dort die Wahlmöglichkeit zwischen Optimistic und Pessimistic Locking besteht..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
G Mehrere Tabellen abfragen Datenbankprogrammierung 7
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
OnDemand Daten auf mehrere Tabellen aufteilen oder Spalten nutzen Datenbankprogrammierung 2
J Mehrere WHERE Werte benutzen Datenbankprogrammierung 2
G ID zuweisung eines TerminKalenders (mehrere Kalender) Datenbankprogrammierung 8
K Mehrere Benutzer Datenbankprogrammierung 6
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
O HSQLDB Eine Entität, mehrere Tabellen Datenbankprogrammierung 8
S Abfrage von Gruppentickets(Mehrere Resorts an einem Tag) Datenbankprogrammierung 1
E Mehrere Tabellenspalten mit INNER JOIN verknüpfen Datenbankprogrammierung 1
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S MySQL Abfrage über mehrere Tabellen + Einträge werden überschrieben Datenbankprogrammierung 1
S HSQLDB Mehrere PreparedStatements ausführen Datenbankprogrammierung 3
I MySQL Vergleich über mehrere Tabellen! Join? Datenbankprogrammierung 6
J Mehrere Inserts bei Fehlschlag abbrechen Datenbankprogrammierung 2
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
D Frage zu INSERTS über mehrere Datenbanktabellen Datenbankprogrammierung 3
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
G JOIN Abfrage über mehrere Tabellen Datenbankprogrammierung 15
G SQL Abfrage über mehrere Tabellen Datenbankprogrammierung 28
O eine Tabelle hat mehrere PrimKey mit dem selben Wert Datenbankprogrammierung 9
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
multiholle SQL Querry über mehrere Spalten Datenbankprogrammierung 12
O Mittelwert über mehrere Zeilen Datenbankprogrammierung 11
D mehrere Datensätze in ein Listenfeld Datenbankprogrammierung 2
T JAVA JDBC mehrere Anfragen direkt hintereinander ausführen Datenbankprogrammierung 2
S Select über mehrere Datenbanksysteme Datenbankprogrammierung 14
M Mehrere Tabellen zusammenführen Datenbankprogrammierung 4
W Prepared Statement mehrere Zeichenketten Datenbankprogrammierung 4
F Mehrere unterschiedliche ResultSets Datenbankprogrammierung 7
P [Hibernate] Mehrere Keys in einem <set> Datenbankprogrammierung 11
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
N mehrere tables hintereinander Datenbankprogrammierung 4
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
M Mehrere ResultSets gleichzeitig verwenden Datenbankprogrammierung 3
L Mehrere SQL-Statements gleichzeitig!? Datenbankprogrammierung 5
F mehrere Datenbankupdates nacheinander Datenbankprogrammierung 3
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
J Datenbank abfragen Datenbankprogrammierung 6
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
M Sql Abfragen Datenbankprogrammierung 1
D 2 Abfragen zusammenfassen Datenbankprogrammierung 7
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
W Daten in Java intern abfragen Datenbankprogrammierung 1
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
D geänderte SELECT Abfragen Datenbankprogrammierung 15
D foreignkey abfragen und speichern Datenbankprogrammierung 74
K Viele verschiedenen SQL Abfragen Datenbankprogrammierung 2
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
R JPA dynamisch auf NULL abfragen Datenbankprogrammierung 2
A MySQL Tabelle ID abfragen und Spalte ausgeben Datenbankprogrammierung 4
K HSQLDB Einzelne Tabellen abfragen? Datenbankprogrammierung 4
F myBatis und komplexe Abfragen Datenbankprogrammierung 3
M MySQL Spaltennamen abfragen Datenbankprogrammierung 2
B Abfragen fehlgeschlagen Datenbankprogrammierung 6
D MySQL Applet MYSQL Abfragen Sicherheit Datenbankprogrammierung 2
E Datenbank Abfragen in eine GUI schreiben Datenbankprogrammierung 8
I Tabelle mit "|" getrennten Werten -> einzelnen Wert davon abfragen Datenbankprogrammierung 15
N Daten aus Datenbank abfragen und anzeigen in der Praxis?? Datenbankprogrammierung 2
S MySQL Server Informationen abfragen Datenbankprogrammierung 6
turmaline [Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen Datenbankprogrammierung 11
Burny91 SQLite ResultSetMetaData abfragen Datenbankprogrammierung 6
T Kleine Tabellen für schnellere abfragen? Datenbankprogrammierung 3
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
trash SQL, ganze Tabelle abfragen Datenbankprogrammierung 3
E MySQL 2 Fragen zur Syntax von SQL-Abfragen Datenbankprogrammierung 8
brainray Bei MySQL alle Datenbanken eines Servers abfragen Datenbankprogrammierung 3
MQue größte id in einer Tabelle abfragen Datenbankprogrammierung 4
A Leere Zelle von einer DB abfragen Datenbankprogrammierung 3
S Abfragen auf Vorhanden Datenbankprogrammierung 23
G SQL Abfragen hardcoded im Quelltext? Datenbankprogrammierung 15
G Prolog abfragen mit Java Datenbankprogrammierung 3
M H2 DAtenbank in .sql datei schreiben/abfragen ? Datenbankprogrammierung 3
A Abfragen, wer zur Zeit angemeldet ist Datenbankprogrammierung 3
S Datentypen einer Tabelle Abfragen? Datenbankprogrammierung 2
G Rechte abfragen Datenbankprogrammierung 8
L MySQL : Funktionsweise von '%' in Abfragen Datenbankprogrammierung 2
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
B Eingefügter Datensatz erneut abfragen. Datenbankprogrammierung 10
E Datentyp numeric abfragen? Datenbankprogrammierung 2
P Daten aus 2 Tabellen mit java abfragen Datenbankprogrammierung 9
F die DN eines LDAP verzeichnisses abfragen Datenbankprogrammierung 2
M Abfragen auf ResultSets Datenbankprogrammierung 3
E Einzelne SQL Abfragen, oder alles zusammen? (veraendert!!!) Datenbankprogrammierung 11
A Viele Abfragen auf einmal: Performance Datenbankprogrammierung 2
Z Zeilen-Anzahl abfragen bei Datenbank Datenbankprogrammierung 4
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
S MySQL Abfragen blockiern den Arbeitsspeicher Datenbankprogrammierung 6
G Anzahl der Datensaetze abfragen Datenbankprogrammierung 11
V Anzahl der Datensätze abfragen Datenbankprogrammierung 9
S Bereiche einer Datenbank abfragen Datenbankprogrammierung 3
D Reihenfolge der Abfragen Datenbankprogrammierung 7
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben