Auf Thema antworten

Vielen Dank für diese perfekte Antwort! Ich habe mich an deine Best Practise gehalten und nun folgenden JNDI Eintrag in der context.xml Datei vorgenommen:


[XML]

    <Resource

        name="jdbc/applikation"

        auth="Container"

        driverClassName="com.mysql.jdbc.Driver"

        maxActive="100"

        maxIdle="30"

        maxIdleTime="3600"

        maxPoolSize="15"

        maxWait="10000"

        minPoolSize="3"

        username="xxxx"

        password="xxxx"

        type="javax.sql.DataSource"

        url="jdbc:mysql://localhost:3306/applikation" />

[/XML]


Im Java Code habe ich nun folgenden Verweis auf diese Resource:


[code=Java]

    public static Connection getConnection() {


        if (connection == null) {


            DataSource ds = null;


            // Obtain our environment naming context

            try {

                Context initCtx = new InitialContext();

                Context envCtx = (Context) initCtx.lookup("java:comp/env");

                // Look up our data source

                ds = (DataSource) envCtx.lookup("jdbc/applikation");


            } catch (NamingException e) {

                e.printStackTrace();

            }


            // Allocate and use a connection from the pool

            try {

                connection = ds.getConnection();

            } catch (SQLException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }


        }

        return connection;


    }

[/code]


In meinem Java Code verwende ich dann jeweils getConnection(); am Start vieler Methoden. Ich habe noch zwei kurze Fragen dazu:


a) Ist das Setzen des Parameters "maxIdleTime" ausreichend, um die Verbindungsabbrüche zu vermeiden?


b) Ist die Vorgehensweise, dass ich die Methode getConnection(); am Start vieler Methoden aufrufe best practise oder implementiert man die Datenbankkonnektivität normallerweise anders?


Gruß

Stefan



Oben