poolman 學習筆記


今天學習了poolman的一些簡單用法,做了筆記,希望對初學者有些幫助。

poolman是一個優秀的連接池。下載地址爲http://telia.dl.sourceforge.net/sourceforge/poolman/

下面我簡單介紹一下安裝過程,更詳細的資料請看UserGuide

  (1) 將poolman.jar(jdbc2_0-stdext.jar,jmxri.jar,jta.jar,xerces.jar)加入classpath;
     
  (2) 配置poolman.xml,這個xml文件聲明池的各種信息。
      各屬性說明如下:
      <dbname> 池名
      <jndiName> JNDI 名
      <driver> 數據庫驅動,如:org.gjt.mm.mysql.Driver
      <url> 數據庫的連接地址
      <username><password>連接數據庫的用戶名及密碼
      <initialConnections> 池的初始連接數,默認值爲1
      <minimumSize> 最少連接數,默認值爲0
      <maximumSize> 最大的連接數,默認值爲Inter.MAX_VALUE (2的31次方-1)
      <connectionTimeout> 連接最長保留時間,默認值爲1200秒
      <userTimeout> 數據庫庫操作的最長時間,默認值20秒
      <logFile> 日誌文件地址,默認爲system.out
      <debugging> 是否爲調試狀態,默認爲false
      <cacheEnabled> 緩存resultse ,默認false
      <cacheRefreshInterval> 緩存刷新間隔,默認:30秒

  (3) 下面我們使用SQLManager來獲取連接
     首先我們先用一個xml文件存放連接池的相關信息:
      <?xml version="1.0" encoding="UTF-8"?>
       <poolman>
          <datasource>
           <dbname>default</dbname>
          <jndiName>default</jndiName>
          <driver>com.mysql.jdbc.Driver</driver>
          <url>jdbc:mysql://localhost:3306/TEST</url>
          <username>aaa</username>
          <password>aaa</password>
          <poolPreparedStatements>false</poolPreparedStatements>
          <initialConnections>3</initialConnections>
          <minimumSize>0</minimumSize>
          <maximumSize>10</maximumSize>
          <maximumSoft>true</maximumSoft>
          <connectionTimeout>300</connectionTimeout>
          <userTimeout>0</userTimeout>
          <skimmerFrequency>300</skimmerFrequency>
          <shrinkBy>10</shrinkBy>
          <transactionTimeout>100</transactionTimeout>
          <cacheEnabled>false</cacheEnabled>
          <cacheSize>10</cacheSize>
          <cacheRefreshInterval>120</cacheRefreshInterval>
          <removeOnExceptions>false</removeOnExceptions>
       </datasource>
     </poolman>

   我們把這個文件命名爲db.xml,並且放在c:/下。

   下面這個是核心的class文件:
    package net.ijsp.connectbroker;
   
    import com.codestudio.util.ObjectPool;
    import com.codestudio.util.SQLManager;
  
    public class PoolmanConnectBroker {

        private static SQLManager sqlManager ;

 public PoolmanConnectBroker()
    {
 System.out.println("2222222222222222222222");
  File f = new File("c:/dbi.xml");
  String s = f.getAbsolutePath();
  System.out.println(s);
  if(sqlManager == null)
   sqlManager = SQLManager.getInstance(s);
  System.out.println(sqlManager);
    }

    public Connection getConnection()
    {
 Connection c = null;
        try{
    c = sqlManager.requestConnection();
        }catch(Exception e) {
    System.out.println(e);
 }
 System.out.println(c);
 return c;
    }
  ..........
  }

   這樣我們就可以在jsp文件裏調用這個池了^_^
  <%@page import ="net.ijsp.connectbroker.*,
           java.sql.*"%>

  <%
    PoolmanConnectBroker pool = new PoolmanConnectBroker();
    Connection conn = pool.getConnection();
   file://out.println(conn);
   conn.close();
  %>

  在使用過程中我還遇到了一個問題,用org.gjt.mm.mysql.Driver做爲mysql的驅動程序時會出現jndi的錯誤,換成mysql的官方驅動就可以了
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章