paulwong

          WebSphere中流行數據庫連接池的配置(Oracle、SQL Server、Sybase、MySQL)

          本文介紹WebSphere下Oracle、SQL Server、Sybase、MySQL數據庫連接池的配置方法,并給出相應調用連接池的示例。相對于Weblogic,WebSphere連接池的配置要稍微復雜一些,因為缺少相關的文檔,需要一定的技巧和經驗。特別是對于初學者,完整的配置好Websphere連接池還是有一定難度的。

          一、系統準備
          1.在相應的數據庫中建立本文用到的表

          create?table?TEST(C1?CHAR(10)?)
          insert?into?TEST?values('FromTest')


          2.準備環境變量,此部分往往會被初學者忽略。




          點擊“管理WebSphere變量”,ORACLE_JDBC_DRIVER_PATH的值輸入操作系統中jar文件(classes12.jar)的位置。
          “確認”后,界面最上方,點擊“保存”,會再提示“保存”還是“放棄”,再選“保存”。

          為方便起見,本文中,SQL Server的jar文件(msbase.jar、mssqlserver.jar、msutil.jar )、Sybase的jar文件(jconn2.jar)、mySQL的jar文件(mysql-connector-java-3.1.10-bin.jar)都放在同一目錄(如:C:\oracle\ora92\jdbc\lib)。

          3.本文中的所有例子測試均通過,環境:Windows2003、WebShpere5.1、ORACLE9I、SQL Server 2000、SYBASE12.5、MySQL5.0。

          二、Oracle、SQL Server、Sybase、MySQL數據庫連接池在WebSphere中的詳細配置步驟

          (一)、Oracle連接池的配置

          1.進入管理控制臺(http://localhost:9090/admin/)

          2.選擇:資源->JDBC提供程序,點擊“新建”,建立JDBC提供程序。




          點擊“應用”后,類路徑中,輸入“${ORACLE_JDBC_DRIVER_PATH}/classes12.jar”,再點擊“應用”。

          3.定義數據源
          點擊界面中“數據源后”再點擊“新建”,建立數據源。



          JNDI取名ORACLE_JNDI,點擊“應用”。

          4.界面上點擊“定制屬性”,定義連接池的JDBC Driver、URL、用戶名和口令等信息。
          點擊“URL”,URL的值輸入:jdbc:oracle:thin:@localhost:1521:MYHORA,其中,localhost可以為ORACLE的IP地址,MYHORA是ORACLE的服務名稱。
          點擊“確定”保存配置。
          同樣的方法輸入:
          driverType的值oracle.jdbc.driver.OracleDriver
          databasename的值MYHORA
          servername的值localhost
          preTestSQLString的值為SELECT COUNT(1) FROM TEST
          其余的取默認值。

          5.本部分比較關鍵,是初學著比較困惑的地方。
          我們看到,界面上并沒有輸入用戶名、口令的地方,而沒有用戶名稱、口令是無法連接數據庫的。




          在“定制屬性”中點擊“新建”,“名稱”中輸入user,“值”中輸入數據庫的用戶名稱,如:study,點擊“確定”;
          在“定制屬性”中點擊“新建”,“名稱”中輸入password,“值”中輸入數據庫的口令,如:study,點擊“確定”;
          我們看到,“定制屬性”中多了兩個我們自定義的屬性user、password



          resized image

          6.保存配置,在“定制屬性”界面的最上方點擊“保存”。

          7.測試連接





          系統提示:成功信息,表明,連接池配置成功。
          連接池配置成功后,WebSphere需要重新啟動。

          (二)、SQL server連接池的配置

          SQL Server連接池的配置步驟同Oracle,具體的參數值:
          JDBC 提供程序:下拉選擇Microsoft JDBC driver for MSSQLServer 2000
          Sybase連接池的配置步驟也同Oracle,具體的參數值:
          常規屬性中的名稱:Microsoft JDBC driver for MSSQLServer 2000
          常規屬性中的描述:Microsoft JDBC driver for MSSQLServer 2000
          常規屬性中的類路徑:
          ${ORACLE_JDBC_DRIVER_PATH}/msbase.jar
          ${ORACLE_JDBC_DRIVER_PATH}/mssqlserver.jar
          ${ORACLE_JDBC_DRIVER_PATH}/msutil.jar

          常規屬性中的實現類名:默認
          數據源中的名稱:SQLSERVER_JNDI
          數據源中的JNDI:SQLSERVER_JNDI
          定制屬性中的databaseName:數據庫名稱
          定制屬性中的serverName:Sybase數據庫服務器的名稱或IP
          定制屬性中的portNumber:端口號
          定制屬性中的preTestSQLString:SELECT COUNT(1) FROM TEST
          同Oracle,手工“新建”user和password屬性,值為數據庫的用戶名和口令,該用戶的缺省數據庫必須為databaseName的值。
          其他默認。

          (三)、Sybase連接池的配置

          JDBC 提供程序:下拉選擇Sybase JDBC Driver
          Sybase連接池的配置步驟也同Oracle,具體的參數值:
          常規屬性中的名稱:SYBASE JDBC Driver
          常規屬性中的描述:SYBASE JDBC Driver
          常規屬性中的類路徑:${ORACLE_JDBC_DRIVER_PATH}/jconn2.jar
          常規屬性中的實現類名:默認
          數據源中的名稱:SYBASE_JNDI
          數據源中的JNDI:SYBASE_JNDI
          定制屬性中的databaseName:數據庫名稱
          定制屬性中的serverName:Sybase數據庫服務器的名稱或IP
          定制屬性中的portNumber:端口號
          定制屬性中的preTestSQLString:SELECT COUNT(1) FROM TEST
          同Oracle,手工“新建”user和password屬性,值為數據庫的用戶名和口令,該用戶的缺省數據庫必須為databaseName的值。
          其他默認。

          (四)、MySQL連接池的配置

          MySQL連接池的配置步驟同Oracle稍有不同,JDBC 提供程序中并沒有MySQL中的選項,選Oracle JDBC Driver就可以,實際運行中,WebSphere是以設置的參數為準的。

          具體的參數值:
          常規屬性中的名稱:MySQL JDBC Driver
          常規屬性中的描述:MySQL JDBC Driver
          常規屬性中的類路徑:${ORACLE_JDBC_DRIVER_PATH}/mysql-connector-java-3.1.10-bin.jar
          常規屬性中的實現類名:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
          數據源中的名稱:MYSQL_JNDI
          數據源中的JNDI:MYSQL_JNDI





          由于WebSphere沒有缺省的MySQL選項,“定制屬性”全部需要手工新建。具體的值要根據MySQL的實際環境要做相應修改(petshop是我機器上的數據庫名稱)。

          三、應用程序中測試連接池。

          1. jsp程序中測試連接池

          附件中的TestConnPoolWeb.ear文件直接發布后,
          運行:http://localhost:9080/TestConnPoolWeb/oracle_pool.jsp,結果:ORACLE_JNDI:FromTest
          運行:http://localhost:9080/TestConnPoolWeb/sqlserver_pool.jsp,結果:SQLSERVER_JNDI:FromTest
          運行:http://localhost:9080/TestConnPoolWeb/sybase_pool.jsp,結果:SYBASE_JNDI:FromTest
          運行:http://localhost:9080/TestConnPoolWeb/mysql_pool.jsp,結果:MYSQL_JNDI:FromTest

          2. 程序說明

          得到連接的方法:

          private?static?Connection?getConnection(String?strConnPoolJndi)?throws?NamingException,?SQLException?{
          Context?ctx?
          =?null;
          ctx?
          =?new?InitialContext();
          DataSource?ds?
          =?(DataSource)ctx.lookup(strConnPoolJndi);
          Connection?conn?
          =?ds.getConnection();

          return?conn;

          }


          參數strConnPoolJndi分別為:ORACLE_JNDI、SQLSERVER_JNDI、SYBASE_JNDI、MYSQL_JNDI,對于相應的數據庫。
          從表中查詢一條數據:

          public?static?String?getDBData(String?strConnPoolJndi)?{
          String?strReturn
          ="";
          Connection?conn?
          =?null;
          Statement?st?
          =?null;
          ResultSet?rs?
          =?null;

          try?{
          conn?
          =?getConnection(strConnPoolJndi);
          st?
          =?conn.createStatement();
          rs?
          =?st.executeQuery(?"select?C1?from?TEST"?);

          if?(rs.next())?{
          strReturn?
          =?rs.getString(1);
          }

          }


          jsp中打印出表中的一條記錄:

          <%
          out.println(
          "ORACLE_JNDI:"?+?test.pool.TestPool.getDBData("ORACLE_JNDI"));
          %>



          附件TestConnPoolWeb.ear(包括源程序)
          [Download File]

          posted on 2006-07-24 16:15 paulwong 閱讀(3730) 評論(3)  編輯  收藏 所屬分類: Websphere

          Feedback

          # re: WebSphere中流行數據庫連接池的配置(Oracle、SQL Server、Sybase、MySQL) 2006-09-21 15:37 shenme

          已嘗試在不是層次 2.3 的 WebModule 中使用 5.0 DataSource。
          [2006/9/21 15:17:03:156 CST] 69c1587a Helpers W NMSV0605W: 已將從 "cg/nodes/cg/servers/server1" 環境定義查閱且名稱為 "jdbc/manager" 的 Reference 物件傳給 JNDI 命名管理程式,產生異常狀況。以下是參照資料:
          參照 Factory 類別名稱:com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl
          參照 Factory 類別位置 URL:<null>
          Reference Class Name: manager
          Type: connectorName
          Content: manager
          Type: recoveryClasspath
          Content: C:\Program Files\WebSphere\AppServer/lib/rsadapter.rar
            回復  更多評論   

          # re: WebSphere中流行數據庫連接池的配置(Oracle、SQL Server、Sybase、MySQL) 2007-09-21 09:45 august

          好文章要頂。謝謝。  回復  更多評論   

          # re: WebSphere中流行數據庫連接池的配置(Oracle、SQL Server、Sybase、MySQL) 2012-03-28 11:29 恰恰

          謝謝! 找好久原來是ORACLE_JDBC_DRIVER_PATH沒設定好的問題3Q  回復  更多評論   


          主站蜘蛛池模板: 腾冲县| 隆德县| 九龙城区| 孝昌县| 中宁县| 教育| 乌拉特中旗| 洞口县| 师宗县| 松潘县| 阿克苏市| 三都| 高州市| 康乐县| 龙里县| 莫力| 左云县| 化州市| 都江堰市| 本溪市| 荥阳市| 花莲市| 兴城市| 清水河县| 尉氏县| 汾西县| 东方市| 凭祥市| 鲁山县| 隆化县| 华宁县| 郓城县| 藁城市| 沙田区| 张家港市| 张北县| 凤翔县| 星子县| 延庆县| 聊城市| 军事|