Sun Java System Web Server 7.0 Update 3 管理員指南

Procedure建立 JDBC 連線池

  1. 啟動 wadm。

  2. 建立 JDBC 資源。

    使用基本配置建立 JDBC 資源。其他屬性可用於微調連線池。請參閱線上手冊以瞭解更多屬性和範例。


    wadm> create-jdbc-resource --config=test 
    --datasourceclass=oracle.jdbc.pool.OracleDataSource jdbc/MyPool
  3. 配置供應商特有特性。

    此特性用於配置驅動程式的供應商特有特性。以下範例中的 urluserpassword 特性將增加至 JDBC 資源。


    wadm> add-jdbc-resource-userprop --config=test --jndi-name=jdbc/MyPool 
    url=jdbc:oracle:thin:@hostname:1521:MYSID user=myuser password=mypassword
  4. 啟用連線驗證。

    您可為連線池啟用連線驗證。如果使用此選項,連線在傳遞至應用程序之前會經過驗證。這可讓 Web 伺服器自動重新建立資料庫連接 (由於網路故障或資料庫伺服器當機,資料庫不可用時)。對連接進行驗證會耗用額外的時間,並且會略微降低效能。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    connection-validation-table-name=test connection-validation=table
  5. 變更預設池設定。

    在此例中,讓我們變更連線的最大數目。


    wadm> set-jdbc-resource-prop --config=test --jndi-name=jdbc/MyPool 
    max-connections=100
  6. 部署配置。


    wadm> deploy-config test
  7. 提供包含 JDBC 驅動程式的 JAR 檔案。

    您需要為伺服器提供可實作驅動程式的類別。可使用的方法有兩種:

    • 將驅動程式的 JAR 檔案複製到伺服器實例程式庫目錄。這是最簡單的方法,因為實例程式庫目錄中的 JAR 檔案會自動載入並提供給伺服器。

    • 修改 JVM 的 class-path-suffix 以包含 JDBC 驅動程式的 JAR 檔案。


      wadm> set-jvm-prop  --config=test class-path-suffix=/export/home/lib/classes12.jar
  8. 在 Web 應用程式中的用法。

    • 修改 WEB-INF/web.xml


      <web-app>
      ...
        <resource-ref>
          <description>JDBC Connection Pool</description>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>
      ...
      </web-app>
    • 修改 WEB-INF/sun-web.xml


      <sun-web-app>
      ...
        <resource-ref>
          <res-ref-name>jdbc/myJdbc</res-ref-name>
          <jndi-name>jdbc/MyPool</jndi-name>
        </resource-ref>
      ...
      </sun-web-app>
    • 使用連線池。


      Context initContext = new InitialContext();
          Context webContext = (Context)context.lookup("java:/comp/env");
      
          DataSource ds = (DataSource) webContext.lookup("jdbc/myJdbc");
          Connection dbCon = ds.getConnection();