2012-04-18 2 views
4

connection pooling in javaを理解しようとしていますが、私のアプリケーションでjsp, servlet and tomcat 6 serverを使用しています。私は、次のコードを書かれているjava class dbconnection.javajavaで接続プーリングを行う方法は?

私は次のように私は、サーブレットでconnectionをretrivingています次に

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(); 
    } 
} 

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

try{ 
dbconnection db= new dbconnection(); 

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

connection poolingであるか、tomcat serverなどで何らかの設定が必要ですか?

+0

チェック詳細は、このQ&A:http://stackoverflow.com/questions/1458693/jdbc-connection-pooling-using-c3p0 –

+0

あなたの質問への答えがされています ます。http:// stackoverflowの.com/questions/2835090/jdbc-connection-pooling –

+1

この 'catch(Exception e){}'を実行しないと、デバッグが不可能になります。 – artbristol

答えて

3

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

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

は、Tomcatの詳細は以下のとおりです。

1

接続プールは、すべての主要なWebサーバやアプリケーションサーバで利用できる機能です。 Tomcatで設定する簡単な例を見つけることができます。 Tomcat Connection Pooling

しかし、独自の接続プーリングを作成する場合は、書き込み可能なライブラリがあります。 Apache DBCP

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(); 
+0

私はあなた自身のサイトにリンクするときに開示する必要性についてあなたに前に通知しました。さらに、あなたのブログの投稿は上記の質問には答えていません。 –

+0

質問は接続プーリングを行う方法についてのものであり、人は例を尋ねました。そこで私は、接続プーリングが説明されているサイトに指摘し、実装例も示しました。 – Ruthreshwar

+0

あなたのサイトは*あなたのサイトでは公開できませんでした。ここにあなたのテキストはちょうど接続プール*が記載されています。それは答えではありません。 –

関連する問題