paulwong

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

          本文介紹WebSphere下Oracle、SQL Server、Sybase、MySQL數(shù)據(jù)庫連接池的配置方法,并給出相應(yīng)調(diào)用連接池的示例。相對于Weblogic,WebSphere連接池的配置要稍微復(fù)雜一些,因?yàn)槿鄙傧嚓P(guān)的文檔,需要一定的技巧和經(jīng)驗(yàn)。特別是對于初學(xué)者,完整的配置好Websphere連接池還是有一定難度的。

          一、系統(tǒng)準(zhǔn)備
          1.在相應(yīng)的數(shù)據(jù)庫中建立本文用到的表

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


          2.準(zhǔn)備環(huán)境變量,此部分往往會(huì)被初學(xué)者忽略。




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

          為方便起見,本文中,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.本文中的所有例子測試均通過,環(huán)境:Windows2003、WebShpere5.1、ORACLE9I、SQL Server 2000、SYBASE12.5、MySQL5.0。

          二、Oracle、SQL Server、Sybase、MySQL數(shù)據(jù)庫連接池在WebSphere中的詳細(xì)配置步驟

          (一)、Oracle連接池的配置

          1.進(jìn)入管理控制臺(tái)(http://localhost:9090/admin/)

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




          點(diǎn)擊“應(yīng)用”后,類路徑中,輸入“${ORACLE_JDBC_DRIVER_PATH}/classes12.jar”,再點(diǎn)擊“應(yīng)用”。

          3.定義數(shù)據(jù)源
          點(diǎn)擊界面中“數(shù)據(jù)源后”再點(diǎn)擊“新建”,建立數(shù)據(jù)源。



          JNDI取名ORACLE_JNDI,點(diǎn)擊“應(yīng)用”。

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

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




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



          resized image

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

          7.測試連接





          系統(tǒng)提示:成功信息,表明,連接池配置成功。
          連接池配置成功后,WebSphere需要重新啟動(dòng)。

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

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

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

          (三)、Sybase連接池的配置

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

          (四)、MySQL連接池的配置

          MySQL連接池的配置步驟同Oracle稍有不同,JDBC 提供程序中并沒有MySQL中的選項(xiàng),選Oracle JDBC Driver就可以,實(shí)際運(yùn)行中,WebSphere是以設(shè)置的參數(shù)為準(zhǔn)的。

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





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

          三、應(yīng)用程序中測試連接池。

          1. jsp程序中測試連接池

          附件中的TestConnPoolWeb.ear文件直接發(fā)布后,
          運(yùn)行:http://localhost:9080/TestConnPoolWeb/oracle_pool.jsp,結(jié)果:ORACLE_JNDI:FromTest
          運(yùn)行:http://localhost:9080/TestConnPoolWeb/sqlserver_pool.jsp,結(jié)果:SQLSERVER_JNDI:FromTest
          運(yùn)行:http://localhost:9080/TestConnPoolWeb/sybase_pool.jsp,結(jié)果:SYBASE_JNDI:FromTest
          運(yùn)行:http://localhost:9080/TestConnPoolWeb/mysql_pool.jsp,結(jié)果: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;

          }


          參數(shù)strConnPoolJndi分別為:ORACLE_JNDI、SQLSERVER_JNDI、SYBASE_JNDI、MYSQL_JNDI,對于相應(yīng)的數(shù)據(jù)庫。
          從表中查詢一條數(shù)據(jù):

          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 閱讀(3738) 評論(3)  編輯  收藏 所屬分類: Websphere

          Feedback

          # re: WebSphere中流行數(shù)據(jù)庫連接池的配置(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" 環(huán)境定義查閱且名稱為 "jdbc/manager" 的 Reference 物件傳給 JNDI 命名管理程式,產(chǎn)生異常狀況。以下是參照資料:
          參照 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
            回復(fù)  更多評論   

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

          好文章要頂。謝謝。  回復(fù)  更多評論   

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

          謝謝! 找好久原來是ORACLE_JDBC_DRIVER_PATH沒設(shè)定好的問題3Q  回復(fù)  更多評論   


          主站蜘蛛池模板: 雷波县| 全椒县| 永泰县| 秭归县| 铅山县| 新密市| 尉犁县| 个旧市| 同仁县| 布拖县| 松潘县| 佛学| 贡觉县| 公主岭市| 偏关县| 吴忠市| 岫岩| 英山县| 鄂温| 拜城县| 定安县| 玛沁县| 汤原县| 公安县| 内江市| 宁陵县| 曲阜市| 额尔古纳市| 巴青县| 贵阳市| 诸城市| 公主岭市| 安图县| 桂平市| 菏泽市| 合肥市| 锦州市| 迁安市| 西畴县| 晋城| 青河县|