-
Hallo Robert,
danke für Deine Tips. Ich habe mir jetzt folgendermaßen beholfen. Ich weiß jetzt zwar nicht wie "elegant" das ist, aber es funktioniert zumindest. Vor dem Zugriff auf den SQL-Server führe ich folgendes aus:
Code:
if (validateConnection(sq_conn) == false) {
// Verbindung zur SQL-Datenbank aufbauen
String sq_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sq_url = "jdbc:microsoft:sqlserver://" + sq_server + ":1433;databaseName=" + sq_database;
Class.forName(sq_driver);
sq_conn = DriverManager.getConnection(sq_url, sq_user, sq_pwd);
// Statement-Objekte erzeugen
sq_stmt_table = sq_conn.createStatement();
sq_stmt_in = sq_conn.createStatement();
sq_stmt_out = sq_conn.createStatement();
sq_stmt = sq_conn.createStatement();
}
//
// Prüfen, ob die Verbindung zum SQL-Server besteht
//
public static boolean validateConnection(Connection sq_conn) {
try{
sq_conn.getMetaData();
}
catch(Exception e) {
return false;
}
return true;
}
Die Sache mit den Connection Pools müsste ich mir auch mal genauer anschauen. Hab auch gelesen, dass es damit funktionieren müsste. Hab aber auf die Schnelle kein Beispiel gefunden wie ich das bei mir einbauen müsste.
Gruß,
KM
-
Hallo,
hier findest du einen Connection Pool:
Overview - Commons DBCP
Beispiele zur Einbindung sind entweder bei Apache, oder über google sicher zu finden und wenn man das ohne JNDI, DataSource und jedes Gedöns macht, dann hat man das recht schnell erledigt. Solltest du auf Probleme stoßen, ich habe da sicher auch irgendwo ein Beispiel und wenn ich mal Lust zum kramen habe...
mfg
Dieter Bender
 Zitat von KM
Hallo Robert,
danke für Deine Tips. Ich habe mir jetzt folgendermaßen beholfen. Ich weiß jetzt zwar nicht wie "elegant" das ist, aber es funktioniert zumindest. Vor dem Zugriff auf den SQL-Server führe ich folgendes aus:
Code:
if (validateConnection(sq_conn) == false) {
// Verbindung zur SQL-Datenbank aufbauen
String sq_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sq_url = "jdbc:microsoft:sqlserver://" + sq_server + ":1433;databaseName=" + sq_database;
Class.forName(sq_driver);
sq_conn = DriverManager.getConnection(sq_url, sq_user, sq_pwd);
// Statement-Objekte erzeugen
sq_stmt_table = sq_conn.createStatement();
sq_stmt_in = sq_conn.createStatement();
sq_stmt_out = sq_conn.createStatement();
sq_stmt = sq_conn.createStatement();
}
//
// Prüfen, ob die Verbindung zum SQL-Server besteht
//
public static boolean validateConnection(Connection sq_conn) {
try{
sq_conn.getMetaData();
}
catch(Exception e) {
return false;
}
return true;
}
Die Sache mit den Connection Pools müsste ich mir auch mal genauer anschauen. Hab auch gelesen, dass es damit funktionieren müsste. Hab aber auf die Schnelle kein Beispiel gefunden wie ich das bei mir einbauen müsste.
Gruß,
KM
-
Danke, das werde ich mir bei Gelegenheit mal anschauen.
Ich habe auch gesehen, dass es z.B. bei MySQL den Parameter "autoReconnect" gibt. Beim MSSQLServer gibt's den aber nicht.
Außerdem brauche ich in meiner jetzigen Applikation nicht mehrere Verbindungen, sondern ich brauche nur dann eine neue Verbindung, wenn der SQL-Server neu gestartet wird. Dafür reicht mir erstmal meine jetzige Lösung.
Gruß,
KM
-
Hallo,
ein ConnectionPool kann auch die Größe 1 haben und macht mehr als nur Connections aus einem Pool rausgeben (je nach Implementierung). Auf diesem Weg wird das gesamte Connection Handling zentralisiert und Standard Anforderungen (wie validate, timeout etc.) werden durch eine Standard Komponente abgefackelt (die meist besser und komfortabler ist als eigene Handarbeit).
Das ist ja der immense Unterschied zwischen RPG und Java, dass es bei Java Unmengen von verwendbaren Komponenten höchster Qualität gibt, da sollte man seine Arbeitsweise drauf einstellen und sich ein wenig abgewöhnen alles selber machen zu wollen.
Dieter Bender
 Zitat von KM
Danke, das werde ich mir bei Gelegenheit mal anschauen.
Ich habe auch gesehen, dass es z.B. bei MySQL den Parameter "autoReconnect" gibt. Beim MSSQLServer gibt's den aber nicht.
Außerdem brauche ich in meiner jetzigen Applikation nicht mehrere Verbindungen, sondern ich brauche nur dann eine neue Verbindung, wenn der SQL-Server neu gestartet wird. Dafür reicht mir erstmal meine jetzige Lösung.
Gruß,
KM
Similar Threads
-
By mott in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 23-11-06, 18:43
-
By CaddyMajor in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 10-01-05, 14:03
-
By KM in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 26-11-04, 13:39
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks