Avatar billede bumle90 Nybegynder
17. oktober 2002 - 19:02 Der er 15 kommentarer og
1 løsning

connection pooling

Jeg har downloadet følgende connectionpool
http://www.webdevelopersjournal.com/columns/connection_pool.html.

efter at have læst flere indlæg her på eksperten om at den skulle være ret god. Jeg fatter dog imidlertid ikke hvordan det virker med den der properties file der, og sådan genereelt hvordan man bruger den.
Er der nogle der vil være venlige at forklare mig dette....på forhånd tak.
Avatar billede disky Nybegynder
17. oktober 2002 - 19:07 #1
du laver en property fil der hedder:
db.properties

der indeholder:

drivers=NavnPaaDriver
logfile=NavnOgPathPåLogFile

MinDatabase.url=DatabaseURL
MinDatabase.maxconn=Antal Max connection 0 betyder ingen grænse
MinDatabase.user=Username
MinDatabase.password=Password


Bare spørg hvis det driller, p.s. den er RIGTIG god.
Avatar billede disky Nybegynder
17. oktober 2002 - 19:11 #2
f.eks.:
drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver
logfile=D:\\user\\src\\java\\DBConnectionManager\\log.txt

idb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp
idb.maxconn=2

access.url=jdbc:odbc:demo
access.user=demo
access.password=demopw



Filen skal bare ligge i classpathen
Avatar billede bumle90 Nybegynder
17. oktober 2002 - 21:30 #3
Det er jo præcis hvad der står inde på siden.....
Kan man så bare bruge den direkte eller hvad?
Avatar billede bumle90 Nybegynder
17. oktober 2002 - 21:31 #4
Hvordan ser det ud når man vil connecte til en mysql DB ?
Avatar billede bumle90 Nybegynder
17. oktober 2002 - 21:44 #5
Hmmm den duer ikke rigtig.....Jeg får en nullpointerexception.
Her er koden


import java.sql.*;
import webdeveloper.*;

/**
*
* @author  srr
* @version
*/
public class test
{



    public static void main(String[]arg)
    {
    try
    {

    test tst=new test();
    ResultSet res=tst.doQuery("SELECT * FROM Bruger");
        while (res.next())
        {
        System.out.println(res.getString(1));
        }
       
    } catch (Exception e)
    {
    e.printStackTrace();
    }

    }


    DBConnectionManager conMan;
    Connection con;
    Statement stat;
    ResultSet res;
   
    /** Creates new DatabaseHandler */
    public test()
    {
    }
   
    public synchronized ResultSet doQuery(String query) throws SQLException
    {
        System.out.println("doQuery = "+query);
        conMan=DBConnectionManager.getInstance();
        con=conMan.getConnection("CMS");
        stat=con.createStatement();
        res=stat.executeQuery(query);
        conMan.freeConnection("CMS",con);
        return res;
    }
   
    public synchronized int doUpdate(String query) throws SQLException
    {
        System.out.println("doUpdate = "+query);
        int rowCount;
        conMan=DBConnectionManager.getInstance();
        con=conMan.getConnection("CMS");
        stat=con.createStatement();
        rowCount=stat.executeUpdate(query);
        conMan.freeConnection("CMS",con);
        return rowCount;
    }
}
Avatar billede disky Nybegynder
17. oktober 2002 - 21:45 #6
hvor kommer den exception ?
Avatar billede bumle90 Nybegynder
17. oktober 2002 - 21:57 #7
Her er fejlen

java.lang.NullPointerException

    at test.doQuery(test.java:49)

    at test.main(test.java:20)
Avatar billede disky Nybegynder
17. oktober 2002 - 22:01 #8
prøv med :


logfile=E:\\system\\common_files\\webroot\\medica\\DBlog.txt
drivers=org.gjt.mm.mysql.Driver
CMS.password=FJERNET
CMS.url=jdbc:mysql://localhost/arbejde
CMS.user=dexter
CMS.maxconn=0
Avatar billede bumle90 Nybegynder
17. oktober 2002 - 22:46 #9
takker det funger nu hehe
Avatar billede webster Nybegynder
18. oktober 2002 - 11:15 #10
når I siger at den coonection pool er god, vil det så sige at den er noget ud over det man normalt selv smækker sammen eller? Jeg plejer bare at lave connection pools selv.
Avatar billede disky Nybegynder
18. oktober 2002 - 12:22 #11
webster:
Selvfølgelig kan du bare lave din egen, men vi er bare nogle som ikke gider opfinde den dybe tallerken to gange :)

Denne her er effektiv, let at bruge og configurerbar :)
Avatar billede webster Nybegynder
18. oktober 2002 - 13:40 #12
okay. angående det med at opfinde den dybe tallerken to gange så genbruger jeg selvfølgeligt min egen kode. Selvom genbrug er godt så er jeg dog ikke den store fan af at gå ud og hente eksterne libaries ind hvis de kun udfører en meget lille funktion man selv kan lave. Det er en ekstra config fil, og en ting mere man skal holde styr på når programmet skal distribueres.
Avatar billede disky Nybegynder
18. oktober 2002 - 13:44 #13
webster:
En config fil er da langt bedre end at hardcode disse værdier ind i programmet.

Det kaldes flexibilitet :)

Er du forresten sikker på din kode er sikret imod race konditions, osv ?
Avatar billede webster Nybegynder
18. oktober 2002 - 15:41 #14
disky:
Selvfølgeligt, nu er jeg nærmest fornærmet =) Mine indstillinger ligger også altid i en config fil/database eller anden kilde, men jeg kan jo nøjes med 1 config fil for hele programmet (eller færre) når jeg ikke bruger "unødvendige" komponenter der kræver deres egen config fil. Den connection pool jeg pt arbejder med justerer faktisk selv sin kapacitet efter såvel den øjeblikkelige belastning set over en 5 min periode samt statistikker over belastningen (ikke fordi det er nødvendigt til de små ting jeg laver, men det var sjovt at kode =)
Avatar billede disky Nybegynder
18. oktober 2002 - 17:32 #15
webster:
Lyder fornuftigt, til en rigtig applikation ville jeg til enhver tid også anvende XML til config fil.

Og at den tilpasser sig er en fornuftig ting, hvis den er rigtig smart, husker den belastning fra time til time, så den ligesom forudser belastningen og generere connections før belastningen kommer :)

Sådanne en har jeg lavet, men den er 'ejet' af min arbejdsgiver så den må jeg ikke poste her.
Avatar billede webster Nybegynder
18. oktober 2002 - 23:32 #16
samme her =) den laver godt nok ikke connectionsne før tid men justerer hvor mange den holder åbne når først de er lavet, og hvornår den evt. begynder at lukke nogen af dem.
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