JDBC3PoolingDataSource - Bestehende Verbindung verwenden

Status
Nicht offen für weitere Antworten.

miketech

Bekanntes Mitglied
Hi,

ich sitze gerade an einer kleinen Webanwendung mit JSP + Servlets und wollte nun eine Verbindung zu meiner PostgreSQL Datenbank mit JDBC herstellen. Nun ist es ja so, dass ich im Normalfall jedes mal, wenn eine Seite aufgebaut wird eine neue Verbindung herstellen müsste. Application Server verwalten ja die Verbindungen für mich und halte bereits verwendete Verbindungen im Speicher, damit diese bei Bedarf wiederverwendet werden können.

Nun habe ich ja keinen Application Server. Da bin ich nun auf Jdbc3PoolingDataSource aufmerksam geworden. Ist das im Grunde dasselbe?


Mein Problem ist nun folgendes:
Code:
		Jdbc3PoolingDataSource source = new Jdbc3PoolingDataSource();
		source.setDataSourceName("Testverbindung");
		source.setServerName("myhost");
		source.setDatabaseName("mydb");
		source.setUser("myuser");
		source.setPassword("mypw");
		source.setMaxConnections(10);


....
                Connection con = source.getConnection() ;

Damit erhalte ich eine Verbindung. Das funktioniert beim ersten mal auf problemlos. Beim zweiten Seitenaufruf wird bemängelt, dass schon eine Verbindung mit obigem Namen existiert. Das ist ja auch gut so. Nur wie verwende ich die nun?

Um genau zu sein lautet die Fehlermeldung:
java.lang.IllegalArgumentException: DataSource with name 'Testverbindung' already exists!


Einfach setDataSourceName ausführen, schauen ob es eine Exception wirft und diese abfangen? Und dann einfach das Object "source" wie oben verwenden? Oder muss ich noch irgendwas machen?

Woher weiß Jdbc3PoolingDataSource denn dann, welche Verbindung ich möchte? Denn eigentlich ist der DataSourceName ja der eindeutige Bezeichner, oder? Dann müsste ich doch mit diesem irgendwie schauen können, ob schon eine Verbindung existiert.

Hat jemand einen Tipp?

Gruß

Mike
 

miketech

Bekanntes Mitglied
Hi nochmal,

ich habe noch ein paar Code Zeilen im Internet gefunden, die Jdbc3PoolingDataSource verwenden. Allerdings speichern diese die Connection einfach als lokale Variable. Ist das denn der Sinn des Ganzen? Ich dachte ich möchte die Connection vom Pool erhalten und nicht lokal speichern.

Oder versteh ich irgendwas falsch?

Gruß

Mike
 

bronks

Top Contributor
Da ich mitbekommen habe, daß Du Tomcat verwendest, würde ich vorschlagen, daß Du den Tomcat-DBCP dafür hernimmst.
 

robertpic71

Bekanntes Mitglied
miketech hat gesagt.:
Hi nochmal,

ich habe noch ein paar Code Zeilen im Internet gefunden, die Jdbc3PoolingDataSource verwenden. Allerdings speichern diese die Connection einfach als lokale Variable. Ist das denn der Sinn des Ganzen? Ich dachte ich möchte die Connection vom Pool erhalten und nicht lokal speichern.

Oder versteh ich irgendwas falsch?

Nachdem dir Bronks schon das richtige Stichwort gegeben hat, hier noch etwas Erklärung zu den Pools:

Der Ablauf ist wiefolgt:

- Connectionpool einrichten (1x)

bei jeder Benutzung:
- Connection holen (in deinem Fall von source - Jdbc3PoolingDataSource)
- Connection verwenden (in einer lokale Connection)
- Connection closen (!)

Das Close ist in diesem Fall eher ein zurückgeben der Connection an den Pool. In der Regel bleibt die Connection offen (je nach Min- und Maxwerten).

Um bei deinem Beispiel zu bleiben: Da müsstest du dafür sorgen, dass der Pool (source) nur einmal gestartet wird und von überall zugänglich (static, singleton..) machen - damit man davon eine Connection holen kann. Es geht aber auch eleganter...

Man kann den Connectionpool via JNDI registrieren. Siehe Beispiel 31-6 der

>> PostgreSQL Doku <<. Es geht aber noch eleganter....

Wenn das Connectionpooling vom Web/Application-Server übernommen wird, kann man den Connectionpool auch dort konfigurieren. Die Anwendungen können dann auf den fertig gestarten Connectionpool via JNDI zugreifen (Verwendung wie in Postgres-Beispiel). Wenn du für Tomcat das Administratormodul nachinstallierst, kannst du das Registrieren dort menügesteuert erledigen.

Robert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
OnDemand SSL Verbindung zu externer DB Datenbankprogrammierung 5
C MySQL Remote Verbindung zu MariaDB Datenbankprogrammierung 11
M SQL , CSV Verbindung : Zu Umfangreicher Code durch Unwissenheit Datenbankprogrammierung 21
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
Z Beim schließen des Programms die verbindung zur DB beenden. Datenbankprogrammierung 4
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
M Oracle SQLException: Verbindung getrennt Datenbankprogrammierung 2
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
C Verbindung mit SQLExpress Datenbankprogrammierung 9
S E(fx)clipse Verbindung zu MS SQL Express aufbauen Datenbankprogrammierung 7
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
F MySQL Verbindung zum SQL-Server Datenbankprogrammierung 27
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
C datenbank verbindung config Datenbankprogrammierung 23
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
J Verbindung aufbauen Datenbankprogrammierung 7
S DB2 Express C - keine Verbindung zur Datenbank Datenbankprogrammierung 2
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
W Keine ODBC-Verbindung zur MSAccess-Datenbank Datenbankprogrammierung 2
S Auslagern der Datenbank Verbindung Datenbankprogrammierung 2
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
D NullPointerException bei DB Verbindung Datenbankprogrammierung 6
AssELAss Verbindung i5 Series 7.1 / 7.2 (DB2) mit Oracle SQL Developer Datenbankprogrammierung 3
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
M MySQL Verbindung zum Server aufbauen ohne DB ansprechen Datenbankprogrammierung 2
D Java MS Access Verbindung Datenbankprogrammierung 10
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
I Datenbank Verbindung geht nicht Datenbankprogrammierung 2
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
Helgon H2 Verbindung öffnen/schließen - Dauer, wann, wie lange? Datenbankprogrammierung 2
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
J Verbindung zu Datenbank herstellen Datenbankprogrammierung 26
P MySQL Verbindung nach außen sehr langsam Datenbankprogrammierung 4
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
T MySQL Sichere Verbindung Datenbankprogrammierung 6
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
S Google Web Toolkit LDAP - Verbindung Datenbankprogrammierung 2
pg1337 Verbindung mit postgres - eclipse Datenbankprogrammierung 4
M Verbindung mit MSSQL hängt! Datenbankprogrammierung 2
cover1012 Derby/JavaDB Verbindung mit FTP-Server Datenbankprogrammierung 13
T NullPointerException bei Verbindung zur Datenbank Datenbankprogrammierung 4
J DB2 Verbindung zu AS400 Datenbankprogrammierung 6
F PostgreSQL JPA und Hibernate - Verbindung zur DB Datenbankprogrammierung 7
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
T mdb Verbindung ohne Registrierung der Datenquelle im OS Datenbankprogrammierung 14
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
S Hibernate in Verbindung mit Hsql Datenbankprogrammierung 2
D Oracle Verbindung mit Java zu Datenbank Datenbankprogrammierung 8
F MSSQL-Server Verbindung Datenbankprogrammierung 5
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
DStrohma MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt? Datenbankprogrammierung 5
G MySQL Tables 1:1 verbindung Datenbankprogrammierung 14
B JDBC Verbindung mit Postgresql Datenbankprogrammierung 13
U MSSQL Verbindung steht, aber meckert beim Statement Datenbankprogrammierung 2
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
N Trennt sich die Verbindung zur DB (MySQL) automatisch? Datenbankprogrammierung 3
X JDBC Verbindung in einer Funktion Datenbankprogrammierung 9
O HSQLDB Verbindung schlägt fehl Datenbankprogrammierung 3
C DB2/AS400 Verbindung Datenbankprogrammierung 2
T Form, Verbindung Feld -> DB Datenbankprogrammierung 3
J Verbindung zur Datenbank schlägt fehl... Datenbankprogrammierung 2
C keine Verbindung zur MS-SQL-Datenbank mehr Datenbankprogrammierung 4
Y Keine verbindung mit der Datenbank Datenbankprogrammierung 2
G verbindung 2er Tabellen Datenbankprogrammierung 3
G persistence.xml für MySQL - Verbindung Datenbankprogrammierung 6
C Keine Verbindung Datenbankprogrammierung 12
G 2 Tabellen in einer 1:n Verbindung Datenbankprogrammierung 2
G Verbindung mit Eclipse auf Datenbank einrichten Datenbankprogrammierung 3
M Verbindung zu Oracle DB Datenbankprogrammierung 4
U *.mdb Datenbank Verbindung mit Pfadangabe Datenbankprogrammierung 3
sparrow Objekt mit lazy-verbindung komplettieren Datenbankprogrammierung 13
M jbcd : odbc Verbindung zu Accessdatei (*.mdb) Datenbankprogrammierung 9
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
M DB-Verbindung zu DB in Projektordner möglich? Datenbankprogrammierung 17
G jdbc grundlegende verbindung zu sql server geht nicht Datenbankprogrammierung 9
M Passwortvergabe bei Verbindung zwischen jdbc und mysqlServer Datenbankprogrammierung 2
M Verbindung überprüfen und bei Bedarf neu aufbauen Datenbankprogrammierung 3
M Fehler bei der Verbindung zu einer MSSQL/Express Datenbank! Datenbankprogrammierung 17
B fehlerhafte PostgreSQL-Verbindung Datenbankprogrammierung 4
C Keine Verbindung zu HSQLDB möglich Datenbankprogrammierung 22
S PostgreSQL Verbindung kommt nicht zu stande Datenbankprogrammierung 3
B MySQL-Verbindung ausschließlich zu localhost möglich Datenbankprogrammierung 7
P Verbindung zu einer Datenbank Datenbankprogrammierung 6
S Gleiche Verbindung funktioniert einmal und einmal nicht Datenbankprogrammierung 4

Ähnliche Java Themen


Oben