在 Liberty 中配置關聯式資料庫連線功能
您可以針對資料庫連線功能,配置不同 JDBC 提供者相關聯的資料來源。JDBC 提供者會供應與特定的供應商資料庫之 JDBC 連線功能所需要的驅動程式實作類別。
關於這項作業
如果要從您的應用程式存取資料庫,您必須使用資料來源。
資料來源是 JDBC 驅動程式所提供,變式如下:
- javax.sql.DataSource
這類型的資料來源是基本格式。它不提供能夠強化連線儲存區的交互作業能力,也無法作為具備兩段式功能的資源來參與涉及多重資源的交易。
- javax.sql.ConnectionPoolDataSource
這類型的資料來源具備連線儲存區功能。 它無法作為具備兩段式功能的資源來參與涉及多重資源的交易。
- javax.sql.XADataSource
這類型的資料來源既具備連線儲存區功能,又能夠作為具備兩段式功能的資源來參與涉及多重資源的交易。
如果要能夠在 Liberty 中使用,JDBC 驅動程式至少必須提供這些類型的資料來源之一。對於常用的 JDBC 驅動程式,Liberty 已知道各種資料來源類型的實作類別名稱。您只需要告知 Liberty 要去哪裡尋找 JDBC 驅動程式即可。
程序
- 在 server.xml 檔中,定義一個共用程式庫來指向 JDBC 驅動程式 JAR 或壓縮檔的位置。 例如:
<library id="DB2JCC4Lib"> <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- 利用 JDBC 驅動程式來定義資料來源。如果您沒有指定資料來源的類型,Liberty 會根據可用項目,依照下列順序來選擇資料來源。
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
- javax.sql.XADataSource
以下是接受預設資料來源類型的範例:<dataSource id="db2" jndiName="jdbc/db2"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
使用 javax.sql.XADataSource 類型的範例:<dataSource id="db2xa" jndiName="jdbc/db2xa" type="javax.sql.XADataSource"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
只要啟用至少一項 Java EE 7 特性,就會提供預設資料來源。如果全無指定,此資料來源會使用不同的優先順序來判斷類型。- javax.sql.XADataSource
- javax.sql.ConnectionPoolDataSource
- javax.sql.DataSource
此資料來源以 java:comp/DefaultDataSource 形式提供。不需為它指定 jndiName。如果要配置預設資料來源,請指定一個資料來源,並將 id 設為 DefaultDataSource。下列範例是將預設資料來源配置成指向 DB2 資料庫:<dataSource id="DefaultDataSource"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource>
- 選擇性的: 配置資料來源屬性,例如 JDBC 供應商內容及連線儲存區內容。 例如:如需 dataSource 元素、connectionManager 元素及某些常用 JDBC 供應商的完整配置屬性清單,請參閱資料來源 (dataSource)。
<dataSource id="DefaultDataSource" jndiName="jdbc/db2" connectionSharing="MatchCurrentState" isolationLevel="TRANSACTION_READ_COMMITTED" statementCacheSize="20"> <connectionManager maxPoolSize="20" minPoolSize="5" connectionTimeout="10s" agedTimeout="30m"/> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000" currentLockTimeout="30s" user="user1" password="pwd1"/> </dataSource>
- 選擇性的: 根據下列範例來配置常用資料庫的資料來源。
- DB2®
<dataSource id="DefaultDataSource" jndiName="jdbc/db2"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.db2.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="50000"/> </dataSource> <library id="DB2JCC4Lib"> <fileset dir="C:/DB2/java" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- iSeries 上的 DB2(原生)
<dataSource id="DefaultDataSource" jndiName="jdbc/db2iNative"> <jdbcDriver libraryRef="DB2iNativeLib"/> <properties.db2.i.native databaseName="*LOCAL"/> </dataSource> <library id="DB2iNativeLib"> <fileset dir="/QIBM/Proddata/java400/jdk6/lib/ext" includes="db2_classes16.jar"/> </library>
- iSeries 上的 DB2(工具箱)
<dataSource id="DefaultDataSource" jndiName="jdbc/db2iToolbox"> <jdbcDriver libraryRef="DB2iToolboxLib"/> <properties.db2.i.toolbox databaseName="SAMPLEDB" serverName="localhost"/> </dataSource> <library id="DB2iToolboxLib"> <fileset dir="/QIBM/ProdData/Http/Public/jt400/lib" includes="jt400.jar"/> </library>
- 內嵌 Derby
<dataSource id="DefaultDataSource" jndiName="jdbc/derbyEmbedded"> <jdbcDriver libraryRef="DerbyLib"/> <properties.derby.embedded databaseName="C:/databases/SAMPLEDB" createDatabase="create"/> </dataSource> <library id="DerbyLib"> <fileset dir="C:/db-derby-10.8.1.2-bin/lib"/> </library>
- Derby Network Client
<dataSource id="DefaultDataSource" jndiName="jdbc/derbyClient"> <jdbcDriver libraryRef="DerbyLib"/> <properties.derby.client databaseName="C:/databases/SAMPLEDB" createDatabase="create" serverName="localhost" portNumber="1527"/> </dataSource> <library id="DerbyLib"> <fileset dir="C:/db-derby-10.8.1.2-bin/lib"/> </library>
- Informix® JCC
<dataSource id="DefaultDataSource" jndiName="jdbc/informixjcc"> <jdbcDriver libraryRef="DB2JCC4Lib"/> <properties.informix.jcc databaseName="SAMPLEDB" serverName="localhost" portNumber="1526"/> </dataSource> <library id="DB2JCC4Lib"> <fileset dir="C:/Drivers/jcc/4.8" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/> </library>
- Informix JDBC
<dataSource id="DefaultDataSource" jndiName="jdbc/informix"> <jdbcDriver libraryRef="InformixLib"/> <properties.informix databaseName="SAMPLEDB" ifxIFXHOST="localhost" serverName="ol_machinename" portNumber="1526"/> </dataSource> <library id="InformixLib"> <fileset dir="C:/Drivers/informix" includes="ifxjdbc.jar ifxjdbcx.jar"/> </library>
- Microsoft SQL Server(Microsoft JDBC 驅動程式)
<dataSource id="DefaultDataSource" jndiName="jdbc/mssqlserver"> <jdbcDriver libraryRef="MSJDBCLib"/> <properties.microsoft.sqlserver databaseName="SAMPLEDB" serverName="localhost" portNumber="1433"/> </dataSource> <library id="MSJDBCLib"> <file name="C:/sqljdbc_6.0/enu/sqljdbc41.jar"/> </library>
- Microsoft SQL Server(DataDirect Connect JDBC 驅動程式)
<dataSource id="DefaultDataSource" jndiName="jdbc/ddsqlserver"> <jdbcDriver libraryRef="DataDirectLib"/> <properties.datadirect.sqlserver databaseName="SAMPLEDB" serverName="localhost" portNumber="1433"/> </dataSource> <library id="DataDirectLib"> <file name="C:/DataDirect/Connect-4.2/lib/sqlserver.jar"/> </library>
- MySQL
<dataSource id="DefaultDataSource" jndiName="jdbc/mySQL"> <jdbcDriver libraryRef="MySQLLib"/> <properties databaseName="SAMPLEDB" serverName="localhost" portNumber="3306"/> </dataSource> <library id="MySQLLib"> <file name="C:/mysql-connector-java-x.x.xx/mysql-connector-java-x.x.xx.jar"/> </library>
- Oracle
<dataSource id="DefaultDataSource" jndiName="jdbc/oracle"> <jdbcDriver libraryRef="OracleLib"/> <properties.oracle URL="jdbc:oracle:thin:@//localhost:1521/SAMPLEDB"/> </dataSource> <library id="OracleLib"> <file name="C:/Oracle/lib/ojdbc6.jar"/> </library>
- 對於 Oracle Call Interface (OCI)
<dataSource id="DefaultDataSource" jndiName="jdbc/oracleOCI"> <jdbcDriver libraryRef="OracleOciLib"/> <properties.oracle URL="jdbc:oracle:oci:@//localhost:1521/SAMPLEDB"/> </dataSource> <library id="OracleOciLib"> <fileset dir="C:/Oracle/OCI/instantclient"/> </library>
配置 Liberty 環境,藉由在 Liberty server.env 檔的路徑環境變數中,針對您的作業系統設定程式庫路徑,來辨識 OCI 原生用戶端程式庫。LIBPATH
SHLIBPATH
LD_LIBRARY_PATH
PATH
此外,在 Liberty jvm.options 檔中,設定程式庫路徑。-Djava.library.path=C:\\Oracle\\OCI\\instantclient
如需使用 server.env 和 jvm.options 配置檔的相關資訊,請參閱自訂 Liberty 環境。
- Sybase
<dataSource id="DefaultDataSource" jndiName="jdbc/sybase"> <jdbcDriver libraryRef="SybaseLib"/> <properties.sybase databaseName="SAMPLEDB" serverName="localhost" portNumber="5000"/> </dataSource> <library id="SybaseLib"> <file name="C:/Drivers/sybase/jconn4.jar"/> </library>
- solidDB
<dataSource id="DefaultDataSource" jndiName="jdbc/solidDB"> <jdbcDriver libraryRef="solidLib"/> <properties databaseName="SAMPLEDB" URL="jdbc:solid://localhost:2315/"/> </dataSource> <library id="solidLib"> <file name="C:/Drivers/solidDB/SolidDriver2.0.jar"/> </library>
- Liberty 無法識別的 JDBC 驅動程式
在這個範例中,JDBC 驅動程式位於 C:/Drivers/SampleJDBC/sampleDriver.jar,且提供了名稱為 com.ibm.sample.SampleXADataSource 的 javax.sql.XADataSource 實作。 另外,這個 JDBC 驅動程式也提供了供應商特定資料來源內容,例如 databaseName、hostName 和 port。<dataSource id="DefaultDataSource" jndiName="jdbc/sample" type="javax.sql.XADataSource"> <jdbcDriver libraryRef="SampleJDBCLib" javax.sql.XADataSource="com.ibm.sample.SampleXADataSource"/> <properties databaseName="SAMPLEDB" hostName="localhost" port="12345"/> </dataSource> <library id="SampleJDBCLib"> <file name="C:/Drivers/SampleJDBC/sampleDriver.jar"/> </library>
次主題
- 配置預設資料來源
您可以針對資料庫連線功能,配置不同 JDBC 提供者相關聯的預設資料來源。JDBC 提供者會供應與特定的供應商資料庫之 JDBC 連線功能所需要的驅動程式實作類別。 - 應用程式定義的資料來源
您可以依照 Java™ EE 規格所定義,透過註釋,或在部署描述子中,將資料來源定義於您的應用程式內。 - 為使用 DB2 資料庫的應用程式配置用戶端重新遞送
您可以使用用戶端重新遞送特性,將 DB2 資料庫的企業應用程式配置成可從遺失的通訊回復,且應用程式可以繼續運作,並將中斷情況降至最低。重新遞送是持續作業支援的核心,但是必須要有一個被視為應用程式伺服器連線的替代位置,才有可能進行重新遞送。 - 配置資料庫連線的連線儲存區
您可以定義資料來源的連線管理程式,以配置資料來源的連線儲存區。
上層主題: 在 Liberty 上管理資料存取應用程式
相關工作:

檔名:twlp_dep_configuring_ds.html