Avatar billede margitbork Nybegynder
24. september 2008 - 13:45 Der er 7 kommentarer og
1 løsning

DB2 connection pool i standalone java applikation

Hej
Eksisterer der et API til at lave en DB2 connection pool til standalone java applikationer. Standarden med at lave en datasource i en server kan jeg ikke bruge.
Jeg bruger p.t.

  Class.forName("com.ibm.db2.jcc.DB2Driver"); 
  con = DriverManager.getConnection(dbURL, user, password); 

Men det giver mig jo en ny connection hver gang i stedet for at genbruge connections.    
Det bliver udviklet på java 1.4, så nyt og fancy java kan ikke bruges. :(
Margit
Avatar billede arne_v Ekspert
24. september 2008 - 14:00 #1
Hent et connection pool library som f.eks. Jakartas:
  http://commons.apache.org/dbcp/
Avatar billede margitbork Nybegynder
24. september 2008 - 14:29 #2
Tusind tak. Og for en gang skyld er det en open source som står på listen over mit arbejdssteds godkendte open source API'er...
Avatar billede margitbork Nybegynder
24. september 2008 - 14:44 #3
Jeg får en fejl når jeg forsøger et af de eksempler man kan downloade:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
    at com.ibm.dk.ecs.globals.dbUtil.BasicDataSourceExample.setupDataSource(DB2PoolConnectionManager.java:255)
    at com.ibm.dk.ecs.globals.dbUtil.BasicDataSourceExample.testBasicDataSource(DB2PoolCon
Avatar billede margitbork Nybegynder
24. september 2008 - 14:45 #4
Det er DBCP 1.2.1 jeg anvender. (nyere versioner er ikke godkendt endnu)
Avatar billede arne_v Ekspert
24. september 2008 - 14:46 #5
commons DBCP skal bruge commons pool (et andet Jakarta commons projekt)
Avatar billede arne_v Ekspert
24. september 2008 - 14:47 #6
Jeg fandt ioevrigt en lille code snippet:

        Class.forName("com.mysql.jdbc.Driver");
        GenericObjectPool cp = new GenericObjectPool(null);
        DriverManagerConnectionFactory dmcf = new DriverManagerConnectionFactory("jdbc:mysql://localhost/Test", "", "");
        PoolableConnectionFactory pcf = new PoolableConnectionFactory(dmcf, cp, null, null, false, true);
        PoolingDataSource ds = new PoolingDataSource(cp);
        Connection con = ds.getConnection();

(gtanske vist med MySQL men det er jo nemt at aendre)
Avatar billede margitbork Nybegynder
24. september 2008 - 14:57 #7
Takker - jeg fandt det med commons pool - og mit eksempel virker nu.
Smid bare et svar hvis du vil have dine points. - og tak for et som altid super brugbart svar. du er min guru...
Avatar billede arne_v Ekspert
24. september 2008 - 14:58 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester