4

私は理解しようとしていますconnection pooling in java、私は自分のアプリケーションで使用jsp, servlet and tomcat 6 serverしています。次のコードを a に記述しましたjava class dbconnection.java

Windows XP OSでOracle 10g EEとタイプ4のjdbc接続を使用しています

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

    public class dbconnection {   
     public Connection con = null;    
      public Connection getConnection() throws Exception, SQLException
       {
         try
           {
          Class.forName("oracle.jdbc.driver.OracleDriver");
           con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:abc","abc", "abc");           
           }
           catch(Exception e)
           {          
           }
        return con;
        }
    public void removeConnection() throws SQLException
  {
    con.close();
  }
 }

次にconnection、次のようにサーブレットで取得しています。

try{
 dbconnection db= new dbconnection();

 Connection con=db.getConnection();
 }
 catch(Exception e){
 } 
finally{
 db.removeConnection();//removes connection
}

それconnection poolingまたは何らかの構成が必要ですか、tomcat serverそれとも何か他のものですか?

4

3 に答える 3

6

接続プールは、事前に接続を作成する作業を実行することによって動作します。JDBC 接続プールの場合、アプリケーション サーバーの起動時に Connection オブジェクトのプールが作成されます。クライアントは接続プール内の接続オブジェクトにアクセスし、db 作業が完了するとオブジェクトをプールに返すことができます。

Context.xml

   <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" 
maxActive="100" maxIdle="30" maxWait="10000" username="root" password="" 
driverClassName="com.mysql.jdbc.Driver"               
url="jdbc:mysql://localhost:3306/cdcol"/>

//これは、サーバー コンテキストの xml ファイルに追加する必要があります。たとえば、Apache サーバーを使用している場合、context.xml は C:\apache-tomcat-6.0.26\conf\Context.xml にあります。

web.xml

  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

//これは、ローカル プロジェクトの web.xml に追加する必要があります。(サーバーの web.xml にはありません)。

Context ctx=new InitialContext();
          Context envContext = (Context)ctx.lookup("java:comp/env");
          DataSource ds=(DataSource)envContext.lookup("jdbc/TestDB");//TestDB is the Database Name
          con=ds.getConnection();
          stmt = con.createStatement();
于 2013-03-05T10:09:02.970 に答える
3

サードパーティのライブラリを入手するか、Java EE コンテナー (JBoss や WebSphere など) が提供する接続プールを使用できます。

これを行うには、JNDI データソースを構成して使用します。

Tomcat の詳細は次のとおりです。

于 2012-04-18T07:30:47.537 に答える
1

接続プーリングは、すべての主要な Web サーバーおよびアプリケーション サーバーで利用できる機能です。Tomcat を使用した構成の簡単な例を見つけることができます。Tomcat 接続プーリング

ただし、独自の接続プールを作成する場合は、作成できるライブラリがあります。アパッチ DBCP

于 2012-04-18T07:31:44.520 に答える