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:
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
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