Socket write error

Status
Nicht offen für weitere Antworten.

Alex_winf01

Top Contributor
Hallo liebe Forengemeinde,

ich habe ein kleines Programm geschrieben. Mit folgender Methode lasse ich den Anwender sich an der Datenbank anmelden:

Java:
public static void anmelden(String angemeldeter_User, String pwd)
	{
		try
               {
        	lesen();
        	Class.forName("org.h2.Driver"); // Treiber laden
    		String connection_string = "jdbc:h2:tcp://" + ergebnis[0] + "/test"; /** In connection_string wird der String für die Connection gespeichert**/
    		connection = DriverManager.getConnection(connection_string, angemeldeter_User, pwd);
    		boolean angemeldet = true; /** in angemeldet wird gespeichert, ob angemeldet wurde (true) oder nicht (false)**/
	    	Update.updateAnwender(angemeldet, angemeldeter_User); // Anwender in Tabelle "Anwender" anmelden
	    	DatenLaden(); // entsprechende Daten laden
			
			if(angemeldeter_User.equals("sa"))
			{
				JOptionPane.showMessageDialog(null, copyright, "Copyright", JOptionPane.INFORMATION_MESSAGE);
			    StartFrame frm = new StartFrame("Artikel-Bestellung); /**frm stellt das Objekt StartFrame (das Fenster) dar**/
				frm.setVisible(true);
				frm.setResizable(false); // verhindern, dass der Anwender die Größe des Fensters verändert
				frm.setExtendedState(JFrame.MAXIMIZED_BOTH); // auf Vollbildschirm schalten
				frm.pack();
				DatenLaden(); // Daten laden
				stammdatenbearbeiten_deaktivieren();
			}
			else
			{
				JOptionPane.showMessageDialog(null, copyright, "Copyright", JOptionPane.INFORMATION_MESSAGE);
				Fragebogen frm = new Fragebogen("Artikel");
				frm.setVisible(true);
				frm.setResizable(false); // verhindern, dass der Anwender die Größe des Fensters verändert
				frm.setExtendedState(JFrame.MAXIMIZED_BOTH); // auf Vollbildschirm schalten
				frm.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // verhindern, dass die Basisdokumentation über Abbruch (X) geschlossen wird
				frm.pack();
				Fragebogen.doku_deaktivieren();
			}
			
		}
		
		catch(Exception e)
		{
		   JOptionPane.showMessageDialog(null, "Sie haben ein falsches Passwort eingegeben " + e,
			"DB-Meldung", JOptionPane.ERROR_MESSAGE);
			
			Login log = new Login("DB-Anmeldung");
			log.setVisible(true);
			log.setSize(50,50);
			log.setLocation(300, 300);
			log.pack(); 
		}
	}

Für die Anwendung muss ich noch ein paar Daten aus der Datenbank laden, die der Anwender angezeigt bekommt:

Java:
private static void DatenLaden()
	{
		try
		{
			lese = "Select * from artikel ORDER BY artikel_nummer DESC";
			stmt = connection.createStatement();
			result = stmt.executeQuery(lese.toString());
			
			lese_dokumentation = "Select * from bestellung ORDER BY bestell_nummer DESC";
			stmt1 = connection.createStatement();
			result_dokumentation = stmt1.executeQuery(lese_dokumentation.toString());
			
		}
		catch(SQLException a)
		{
			JOptionPane.showMessageDialog(null, "Es ist folgender Fehler aufgetreten: " + a,
				"DB-Meldung", JOptionPane.ERROR_MESSAGE);
		}
	}

Die Anwendung lief jetzt 1 Jahr beim Kunden ohne Probleme. Im Hintergrund läuft eine H2-Datenbank, die auf einem W2000 SP4-Server installiert ist. Der H2-Server ist so eingestellt, dass es erlaubt ist, dass sich mehrere Leute gleichzeitig an der Datenbank anmelden können. Die H2-Datenbank ist auf einem Windows 2000 Server mit SP4 installiert. Der Fehler tritt dann auf, wenn 5 Computer sich gleichzeitig anmelden. Beim 6. Computer tritt dieser Fehler auf - ohne dass was an der Anwendung weiter gemacht wird.

Woran könnte das liegen?
 

angelchr

Mitglied
hi,

welcher Fehler tritt auf? bzw welche Exception wird geworfen?
Ich gehe mal stark davon aus, daß die Anzahl der max. Verbindungen der DB auf 5 beschränkt ist.
 

Alex_winf01

Top Contributor
@ angelchr

Es tritt ein java.net.SocketException:

Java:
Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0
at java.net.SocketOutputStream.socketWrite
at java.net.SocketOutputStream.write
at java.io.BufferedOutputStream.flushBuffer
at java.io.BufferedOutputStream.flush
at java.io.DataOutputStream.flush
at org.h2.value.Transfer.flush
at org.h2.server.TcpServerThread.sendError
at org.h2.server.TcpServerThread.run

Vorher haben sich auch mehr wie 6 Leute ohne Probleme anmelden können. Ich habe das Problem einschränken könnnen: Dieser Fehler tritt in Verbindung mit einem Fehler des JavaHeapSpace auf. D. h. der HeapSpace läuft über.

Zur Erläuterung: Sobald der Anwender sich anmeldet, werden in einer JList Daten geladen mit einer Fall-Nummer und Anzahl. Jeder Eintrag in der Liste stellt ein Objekt dar. Nun sind in der Zwischenzeit über 2.000 Datensätze in der Datenbank. Da kann ich mir sehr gut vorstellen, dass genau das das Problem ist. 2.000 Objekte mal 5 Anwender - da knallt es relativ schnell.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F ORA 17410 Keine weiteren Daten aus Socket zu lesen Datenbankprogrammierung 2
@ HSQLDB: socket creation error Datenbankprogrammierung 6
S Write Befehl Datenbankprogrammierung 10
B can't write into db Datenbankprogrammierung 5
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
Kirby.exe Error bei Trigger Datenbankprogrammierung 5
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
thet1983 MySQL Error Code 1111: Invalid use of group function Datenbankprogrammierung 2
M MySQL Error in SQL syntax Datenbankprogrammierung 10
F Java SQLite Error Datenbankprogrammierung 19
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
G SQLLite error code 0x13: constraint failed Datenbankprogrammierung 7
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
F Java SQL Syntax Error erst nach mehrmaligen Aufrufen Datenbankprogrammierung 3
H SQLite SQLExeption Domain error Datenbankprogrammierung 2
B Error: ORA-00933: SQL command not properly ended Datenbankprogrammierung 5
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
Cypha JPA Syntax error - falscher Aufbau? Datenbankprogrammierung 3
D SQL Skript "ignore this error" Datenbankprogrammierung 8
B My-SQL Abfrage - Out Of Memory Error Datenbankprogrammierung 13
GianaSisters MySQL Datenbank Select error Datenbankprogrammierung 5
P [Hibernate] SQL Syntax-Error Datenbankprogrammierung 2
D mysql - out of memory error Datenbankprogrammierung 4
X von myISAM auf MEMORY! ERROR 1114: Table full Datenbankprogrammierung 13
N SQL Query Browser Error Datenbankprogrammierung 6
E try Error Datenbankprogrammierung 2
L You have an error in your sql syntax Datenbankprogrammierung 4
D Bean: server internal error Datenbankprogrammierung 5
C Error in my_thread_global_end() - FehlerMeldung MySql? Datenbankprogrammierung 2
foobar ISAM error: too many files open Datenbankprogrammierung 5
E ERROR: argument of JOIN/ON must be type boolean? Datenbankprogrammierung 2
K Connection error Datenbankprogrammierung 18
R Function Sequence Error - Warum? Datenbankprogrammierung 2

Ähnliche Java Themen


Oben