「DB2 Universal JDBC 驅動程式」不支援與 DB2 VM/VSE 資料庫建立類型 4 連線。 |「應用程式開發手冊:設計用戶端應用程式」及「DB2 UDB 資訊中心」中名稱為「設定 Windows Java 環境」及「安裝 DB2 Universal JDBC 驅動程式」的主題誤說「DB2 Universal JDBC 驅動程式」支援與 DB2 for VM/VSE 資料庫建立類型 4 連線。
使用 DB2 Universal JDBC Driver 類型 4 連線功能存取 DB2 UDB for z/OS(R) 伺服器的 Java 應用程式,可以利用其連線集中器及 Sysplex 工作量平衡函數。
這些函數類似於 DB2 Connect 的連線集中器及 Sysplex 工作量平衡函數。
DB2 Universal JDBC Driver 連線集中器可以減少 DB2 UDB for z/OS(R) 資料庫伺服器支援大量用戶端應用程式所需的資源,因為它可讓許多連線物件使用相同的實體連線,因而減少資料庫伺服器的實體連線總數。
DB2 Universal JDBC Driver Sysplex 工作量平衡可以增進資料共用群組的可用性, 因為驅動程式會取得有關資料共用群組的成員的經常狀態資訊。 驅動程式會使用這個資訊,判定下一個交易應該遞送到哪一個資料共用成員。 利用 Sysplex 工作量平衡,DB2 UDB for z/OS 伺服器及 Workload Manager for z/OS (WLM) 可確保工作有效地分佈在資料共用群組的成員之間,以及確保如果有一個成員失敗, 工作將傳送給資料共用群組的另一個成員。
DB2 Universal JDBC Driver 使用傳輸物件及廣域傳輸物件儲存區,支援連線集中器及 Sysplex 工作量平衡。 資料庫伺服器的每一個實體連線都有一個傳輸物件。 當啟用連線集中器及 Sysplex 工作量平衡時, 您可以藉由設定最大的傳輸物件數目,來設定資料庫伺服器在任何時間點的最大實體連線數目。
在驅動程式層次中,您可以使用 DB2 Universal JDBC Driver 配置內容,對傳輸物件數目設定限制。
在連線層次中,您可以啟用及停用 DB2 Universal JDBC Driver 連線集中器及 Sysplex 工作量平衡, 並使用 DataSource 內容對傳輸物件數目設定限制。
您可以利用下列任一方式,監督廣域傳輸物件儲存區:
下列每一個配置內容都是用於連線集中器及 Sysplex 工作量平衡
db2.jcc.dumpPool 的資料類型是整數 (int.)。在寫入任何統計資料之前, 也須設定 db2.jcc.dumpPoolStatisticsOnSchedule 及 db2.jcc.dumpPoolStatisticsOnScheduleFile 配置內容,才能寫入統計資料。
您可以利用 db2.jcc.dumpPool 內容,指定下列一或多種類型的統計資料:
若要追蹤多種類型的事件,請新增代表您要追蹤的事件類型的值。 例如,假設您要追蹤 DUMP_GET_OBJECT 及 DUMP_CREATE_OBJECT 事件。 這些值的數字對等項目是 2 與 16,所以指定 18 作為 db2.jcc.dumpPool 值。
預設值是 0,表示只寫入廣域傳輸儲存區的摘要統計資料。
預設值是 -1,表示不寫入廣域傳輸儲存區統計資料。
如果未指定 db2.jcc.dumpPoolStatisticsOnScheduleFile 配置內容, 不會寫入廣域傳輸儲存區統計資料。
db2.jcc.maxTransportObjectIdleTime 配置內容的預設值是 60。 將 db2.jcc.maxTransportObjectIdleTime 設為小於 0 的值, 將導致未使用的傳輸物件立即從儲存區刪除。 不建議這個動作,因為它可能導致嚴重效能退化。
db2.jcc.maxTransportObjectWaitTime 配置內容的預設值是 -1。 任何負值都表示應用程式永久等待。
db2.jcc.maxTransportObjects 配置內容的預設值是 -1, 表示廣域傳輸物件儲存區中沒有傳輸物件數目的限制。
db2.jcc.minTransportObjects 的預設值是 0。任何小於或等於 0 的值表示廣域傳輸物件儲存區可能變成空白。
下列每一個 DB2 Universal JDBC Driver DataSource 內容都是用於連線集中器及 Sysplex 工作量平衡
enableConnectionConcentrator 內容的資料類型是 Boolean。 預設值是 false。不過,如果 enableSysplexWLB 設為 true,則預設值是 true。
enableSysplexWLB 內容的資料類型是 Boolean。 預設值是 false。不過,如果 enableSysplexWLB 設為 true,則依預設,enableConnectionConcentrator 會設為 true。
這個內容的資料類型是整數 (int.)。
如果未達到 maxTransportObjects 值,且無法在廣域傳輸物件儲存區中取得傳輸物件, 儲存區將建立新的傳輸物件。如果達到了 maxTransportObjects 值, 應用程式將等待 db2.jcc.maxTransportObjectWaitTime 配置內容所指定的時間量。 在經歷了該時間量之後,如果儲存區中仍然沒有可用的傳輸物件, 儲存區將擲出 SQLException。
maxTransportObjects 內容不會置換 db2.jcc.maxTransportObjects 配置內容。maxTransportObjects 內容對來自其它 DataSource 物件的連線沒有作用。 如果 maxTransportObjects 值大於 db2.jcc.maxTransportObjects 值, 則 maxTransportObjects 不會增加 db2.jcc.maxTransportObjects 值。
maxTransportObjects 內容的預設值是 -1, 表示 DataSource 的傳輸物件數目只受到驅動程式的 db2.jcc.maxTransportObjects 值的限制。
下列程序是利用 WebSphere(R) Application Server 啟用 DB2 Universal JDBC Driver 連線集中器及 Sysplex 工作量平衡函數的範例。
伺服器需求:
用戶端需求:
若要利用 WebSphere Application Server 啟用 DB2 Universal JDBC Driver 連線集中器及 Sysplex 工作量平衡函數:
java com.ibm.db2.jcc.DB2Jcc -version在輸出中尋找如下的一行:
[ibm][db2][jcc] Driver: IBM DB2 JDBC Universal Driver Architecture n nn 應該是 2.7 或更新版本。
在 DB2JccConfiguration.properties 檔案中設定配置內容。
db2.jcc.minTransportObjects=0 db2.jcc.maxTransportObjects=1500 db2.jcc.maxTransportObjectWaitTime=-1 db2.jcc.dumpPool=0 db2.jcc.dumpPoolStatisticsOnScheduleFile= /home/WAS/logs/srv1/poolstats
在 WebSphere Application Server 管理主控台中, 為應用程式用來連接到資料庫伺服器的資料來源設定下列內容:
內容 | 設定 |
---|---|
enableSysplexWLB | true1 |
maxTransportObjects | 100 |
註:
|
若要監督 DB2 Universal JDBC Driver 連線集中器及 Sysplex 工作量平衡函數, 您需要監督廣域傳輸物件儲存區。您可以利用下列任一方式,監督廣域傳輸物件儲存區:
db2.jcc.dumpPool、db2.jcc.dumpPoolStatisticsOnSchedule 及 db2.jcc.dumpPoolStatisticsOnScheduleFile 配置內容可控制廣域傳輸物件儲存區的追蹤。
例如,下列一組配置內容設定會導致 Sysplex 錯誤訊息及傾出儲存區錯誤訊息每隔 60 秒寫入名為 /home/WAS/logs/srv1/poolstats 的檔案:
db2.jcc.dumpPool=DUMP_SYSPLEX_MSG|DUMP_POOL_ERROR db2.jcc.dumpPoolStatisticsOnSchedule=60 db2.jcc.dumpPoolStatisticsOnScheduleFile=/home/WAS/logs/srv1/poolstats
儲存區統計資料檔案中的項目看起來像這樣:
time Scheduled PoolStatistics npr:2575 nsr:2575 lwroc:439 hwroc:1764 coc:372 aooc:362 rmoc:362 nbr:2872 tbt:857520 tpo:10
欄位的意義如下:
您可以撰寫應用程式,來收集有關廣域傳輸物件儲存區的統計資料。 那些應用程式會以 DB2PoolMonitor 類別建立物件,並呼叫方法來擷取儲存區的相關資訊。
例如,下列程式碼建立用於監督廣域傳輸物件儲存區的物件:
import com.ibm.db2.jcc.DB2PoolMonitor; DB2PoolMonitor transportObjectPoolMonitor = DB2PoolMonitor.getPoolMonitor (DB2PoolMonitor.TRANSPORT_OBJECT);
在建立 DB2PoolMonitor 物件之後,您可以使用下列方法,監督廣域傳輸物件儲存區。
public int getMonitorVersion()
擷取 DB2 Universal JDBC Driver 隨附的 DB2PoolMonitor 類別的版本。
public int totalRequestsToPool()
擷取自從建立儲存區後,DB2 Universal JDBC Driver 已對儲存區提出的要求總數。
public int successfullRequestsFromPool()
擷取自從建立儲存區後,DB2 Universal JDBC Driver 已對儲存區提出的成功要求數目。成功要求表示儲存區傳回了物件。
public int numberOfRequestsBlocked()
擷取 DB2 Universal JDBC Driver 已向儲存區提出,但因為儲存區已達到其最大容量而遭儲存區封鎖的要求數目。 在超出 db2.jcc.maxTransportObjectWaitTime 配置值並擲出異常狀況之前, 如果物件傳回到儲存區,則遭封鎖的要求可能會成功。
public long totalTimeBlocked()
擷取已被儲存區封鎖的要求的時間總數 (以毫秒為單位)。 如果應用程式使用多個執行緒,則這個時間可能遠大於應用程式的執行經歷時間。
public int lightWeightReusedObjectCount()
擷取已重覆使用但不在儲存區的物件數目。如果連線物件在交易界限釋放傳輸物件, 就可能會發生這種情況。如果連線物件稍後需要傳輸物件, 而且任何其它連線物件未使用原始傳輸物件,則連線物件可以使用該傳輸物件。
public int heavyWeightReusedObjectCount()
擷取已從儲存區重覆使用的物件數目。
public int createdObjectCount()
擷取自從建立儲存區後,DB2 Universal JDBC Driver 已建立的物件數目。
public int agedOutObjectCount()
擷取超出 db2.jcc.maxTransportObjectIdleTime 配置內容所指定的閒置時間,而從儲存區刪除的物件數目。
public int removedObjectCount()
擷取自從建立儲存區後,已從儲存區刪除的物件數目。
public int totalPoolObjects()
目前位於儲存區的物件數目。
下列資料庫伺服器支援 OleDbReportIsLongForLongTypes 關鍵字:
OLE DB 的用戶端游標引擎及 OLE DB .NET Data Provider 的 CommandBuilder 產生更新,並刪除以 IBM(R) DB2(R) OLE DB Provider 提供的直欄資訊為基礎的陳述式。如果所產生的陳述式在 WHERE 子句中包含 LONG 類型, 則陳述式將失敗,因為無法在具有等號運算子的搜尋中使用 LONG 類型。 將關鍵字 OleDbReportIsLongForLongTypes 設為 1,將使得 IBM DB2 OLE DB Provider 報告成為 DBCOLUMNFLAGS_ISLONG 旗標集的 LONG 類型 (LONG VARCHAR、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 及 LONG VARGRAPHIC FOR BIT DATA)。 這將防止在 WHERE 子句中使用長直欄。
下列資料庫伺服器支援 OleDbSQLColumnsSortByOrdinal 關鍵字:
Microsoft(R) OLE DB 規格需要 IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 傳回直欄 TABLE_CATALOG、 TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME 所排序的橫列集。 IBM DB2 OLE DB Provider 符合規格。然而, 使用 Microsoft ODBC Bridge 提供者 (MSDASQL) 的應用程式通常已編寫為取得 ORDINAL_POSITION 所排序的橫列集。 將 OleDbSQLColumnsSortByOrdinal 關鍵字設為 1 將使得提供者傳回 ORDINAL_POSITION 所排序的橫列集。
IBM DB2 OLE DB Provider 已新增新的內容群組:「DB2 資料來源」。 「DB2 資料來源」的內容集是 DBPROPSET_DB2DATASOURCE。
內容集的 GUID 是 {0x8a80412a,0x7d94,0x4fec,{0x87,0x3e,0x6c,0xd1,0xcd,0x42,0x0d,0xcd}}
DBPROPSET_DB2DATASOURCE 具有三個內容:
#define DB2PROP_REPORTISLONGFORLONGTYPES 4 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Report IsLong for Long Types
OLE DB 的用戶端游標引擎及 OLE DB .NET Data Provider 的 CommandBuilder 產生更新,並刪除以 IBM DB2 OLE DB Provider 提供的直欄資訊為基礎的陳述式。如果所產生的陳述式在 WHERE 子句中包含 LONG 類型, 則陳述式將失敗,因為無法在具有等號運算子的搜尋中使用 LONG 類型。
值 | 意義 |
---|---|
VARIANT_TRUE | 將使得 IBM DB2 OLE DB Provider 報告成為 DBCOLUMNFLAGS_ISLONG 旗標集的 LONG 類型 (LONGVARCHAR、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 及 LONG VARGRAPHIC FOR BIT DATA)。 這將防止在 WHERE 子句中使用長直欄。 |
VARIANT_FALSE | DBCOLUMNFLAGS_ISLONG 不是針對 LONG VARCHAR、LONG VARCHAR FOR BIT DATA、LONG VARGRAPHIC 及 LONG VARGRAPHIC FOR BIT DATA 設定。這是預設值。 |
#define DB2PROP_RETURNCHARASWCHAR 2 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Return Char as WChar
值 | 意義 |
---|---|
VARIANT_TRUE | OLE DB 將類型 CHAR、VARCHAR、LONG VARCHAR 或 CLOB 的直欄說明為 DBTYPE_WSTR。 ISequentialStream 中暗示之資料的字碼頁將是 UCS-2。這是預設值。 |
VARIANT_FALSE | OLE DB 將類型 CHAR、VARCHAR、LONG VARCHAR 或 CLOB 的直欄說明為 DBTYPE_STR。 ISequentialStream 中暗示之資料的字碼頁將是用戶端的本端字碼頁。 |
#define DB2PROP_SORTBYORDINAL 3 Property group: DB2 Data Source Property set: DB2PROPSET_DATASOURCE Type: VT_BOOL Typical R/W: R/W Description: Sort By Ordinal
Microsoft OLE DB 規格需要 IDBSchemaRowset::GetRowset(DBSCHEMA_COLUMNS) 傳回直欄 TABLE_CATALOG、 TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME 所排序的橫列集。 IBM DB2 OLE DB Provider 符合規格。然而, 使用 Microsoft ODBC Bridge 提供者 (MSDASQL) 的應用程式通常已編寫為取得 ORDINAL_POSITION 所排序的橫列集。
值 | 意義 |
---|---|
VARIANT_TRUE | 將使得提供者傳回 ORDINAL_POSITION 所排序的橫列集。 |
VARIANT_FALSE | 將使得提供者傳回 TABLE_CATALOG、TABLE_SCHEMA、TABLE_NAME、 COLUMN_NAME 所排序的橫列集。這是預設值。 |
在主題「安裝 DB2 Universal JDBC Driver」中,DB2Binder 語法圖不正確地定義 DB2 Universal JDBC Driver 的 URL 語法。下列圖解顯示 DB2Binder 的 URL 語法的正確表示法:
DB2 Universal Database(TM) (UDB) for Linux(TM)、UNIX(R)及 Windows(R) 中的自動用戶端重新遞送特性,容許用戶端應用程式從與伺服器失去通訊的情況下回復, 以便它們可以繼續工作,將連線岔斷的情形降至最低。
每當伺服器鎖定時,每一個連接至該伺服器的用戶端都會收到一個通訊錯誤,指出終止連線並導致應用程式錯誤。當可用性是重要時,您應該考慮具有備份設定或失效接手支援。 (失效接手就是伺服器能夠在另一個伺服器失敗時接管作業的功能。) 在任一種情況中, DB2 Universal JDBC Driver 用戶端都會嘗試重新建立與新伺服器的連線, 或與原始伺服器 (可能正在失效接手節點上執行的伺服器) 的連線。當重新建立連線時, 應用程式將收到 SQLException,通知它交易失敗,但是應用程式可以繼續處理下一個交易。
在資料庫管理員於伺服器實例中的特殊資料庫上指定了替代伺服器位置後, 主要與替代伺服器位置會在連接時傳回至用戶端。DB2 Universal JDBC Driver 會建立「可參照」物件 DB2ClientRerouteServerList 的實例, 並將該實例儲存在它的暫時記憶體中。如果失去通訊, DB2 Universal JDBC Driver 會嘗試使用從伺服器傳回的伺服器資訊,來重新建立連線。
clientRerouteServerListJNDIName DataSource 內容在用戶端中提供其他的用戶端重新遞送支援; clientRerouteServerListJNDIName 具有兩個函數:
在替代伺服器資訊的 JNDI 儲存庫中,clientRerouteServerListJNDIName 識別 DB2ClientRerouteServerList 實例的 JNDI 參照。 在順利連線至主要伺服器後,來自伺服器的資訊就會改寫 clientRerouteServerListJNDIName 所提供的替代伺服器資訊。如果定義了 clientRerouteServerListJNDIName 內容, 則在失效接手後,DB2 Universal JDBC Driver 會嘗試將已更新的資訊傳達至 JNDI 儲存庫。 如果指定了clientRerouteServerListJNDIName,將使用 DB2ClientRerouteServerList 中指定的主要伺服器資訊來進行連線。 如果未指定主要伺服器,將使用資料來源上指定的 serverName 資訊。
DB2ClientRerouteServerList 是序列讀取 Java(TM) Bean,具有四個內容:
提供了存取這些內容的 Getter 及 Setter 方法。 DB2ClientRerouteServerList 類別的定義如下:
package com.ibm.db2.jcc; public class DB2ClientRerouteServerList implements java.io.Serializable, javax.naming.Referenceable { public String[] alternateServerName; public synchronized void setAlternateServerName(String[] alternateServer); public String[] getAlternateServerName(); public int[] alternatePortNumber; public synchronized void setAlternatePortNumber(int[] alternatePortNumberList); public int[] getAlternatePortNumber(); public synchronized void setPrimaryServerName (String primaryServerName); public String getPrimaryServerName (); public synchronized void setPrimaryPortNumber (int primaryPortNumber) public int getPrimaryPortNumber (); }
新建的失效接手連線是利用原始資料來源內容來配置, 但伺服器名稱及埠號除外。此外,在失效接手連線時,DB2 Universal Driver JDBC Driver 將重新建立任何在原始連線期間所修改的 DB2 UDB 特別暫存區。
當發生通訊失敗時,DB2 Universal JDBC Driver 首先會嘗試回復至主要伺服器。 如果回復失敗,驅動程式將嘗試連接至替代位置 (失效接手)。在重新建立連線之後, 驅動程式即會擲出一個含 SQLCODE -4498 的 java.sql.SQLException 至應用程式, 向應用程式指出已自動重新建立替代伺服器的連線。然後,應用程式可以重試交易。
若要設定儲存體使 DB2ClientRerouteServerList 持續存在,請遵循下列步驟:
// 建立具名作業的開始環境定義 InitialContext registry = new InitialContext(); // 建立 DB2ClientRerouteServerList 物件 DB2ClientRerouteServerList address=new DB2ClientRerouteServerList(); // 設定主要伺服器的埠號及伺服器名稱 address.setPrimaryPortNumber(50000); address.setPrimaryServerName("mvs1.sj.ibm.com"); // 設定替代伺服器的埠號及伺服器名稱 int[] port = {50002}; String[] server = {"mvs3.sj.ibm.com"}; address.setAlternatePortNumber(port); address.setAlternateServerName(server); registry.rebind("serverList", address);
datasource.setClientRerouteServerListJNDIName("serverList");
DB2 Universal JDBC Driver 配置內容可讓您設定具有全驅動程式範圍的內容值。 那些設定適用於所有應用程式及 DataSource 實例。 您可以變更這些設定,而不需變更應用程式原始碼或 DataSource 性質。
每一個 DB2 Universal JDBC Driver 配置內容設定都具有下列格式:
property=value
如果配置內容是以 db2.jcc.override 開始,則配置內容適用於所有連線, 並將任何 Connection 或 DataSource 內容置換成相同的內容名稱。 如果配置內容是以 db2.jcc 或 db2.jcc.default 開始,則配置內容值是預設值。 Connection 或 DataSource 內容設定會置換該值。
若要設定配置內容:
對於獨立式 Java 應用程式而言,您可以在執行 java 命令時, 為每一個配置內容指定 -Dproperty=value,將配置內容設為 Java 系統內容。
對於獨立式 Java 應用程式而言, 您可以在執行 java 命令時,指定 -Ddb2.jcc.propertiesFile=path 選項, 來設定配置內容。
DB2JccConfiguration.properties 可以是獨立式檔案,或它可以併入在 JAR 檔。
如果 DB2JccConfiguration.properties 是獨立式檔案,則 DB2JccConfiguration.properties 的路徑必須位於 CLASSPATH 連接中。
如果 DB2JccConfiguration.properties 位於 JAR 檔, 則 JAR 檔案必須位於 CLASSPATH 連接中。
您可以設定下列 DB2 Universal JDBC Driver 配置內容。 所有內容都是選用的。
指定 db2.jcc.override.traceFile 內容值的完整檔名。
db2.jcc.override.traceFile 內容會置換 Connection 或 DataSource 物件的 traceFile 內容。
例如,指定下列設定給 db2.jcc.override.traceFile,可對名為 /SYSTEM/tmp/jdbctrace 的檔案啟用 DB2 Universal JDBC Driver Java 程式碼的追蹤:
db2.jcc.override.traceFile=/SYSTEM/tmp/jdbctrace
您應該依照「IBM 軟體支援中心」的指示,來設定追蹤內容。
db2secFreeToken 函數 (符記所保留的可用記憶體) 不再是 db2secGssapiServerAuthFunctions_1 使用者鑑別外掛程式 API 的一部份。
如果沒有充分地編寫、複查及測試機密保護外掛程式的部署,則可能會危及 DB2 Universal Database (UDB) 安裝的完整性。DB2 UDB 會採取預防措施來防範許多常見的失敗類型, 但是當使用者撰寫的機密保護外掛程式進行部署時,它無法保證是否完整。
如果使用的是您自訂的機密保護外掛程式,則您可以在透過 CLP 或動態 SQL 陳述式發出的 connect 陳述式上, 使用最多 255 個字元的使用者 ID。
若為 db2secGetGroupsForUser、db2secValidatePassword 及 db2secGetAuthIDs API,輸入參數 dbname 可以是 NULL, 而且其對應長度輸入參數 dbnamelen 將設為 0。
在所有 Linux 及 UNIX 平台上,現在可接受 .so 作為使用者撰寫之機密保護外掛程式檔案庫的副檔名。
在 AIX(R) 上,機密保護外掛程式檔案庫可以具有副檔名 .a 或 .so。如果這兩個版本的外掛程式檔案庫存在, 將使用 .a 版本。
若為 HP-UX on PA-RISC,機密保護外掛程式檔案庫可以具有副檔名 .sl 或 .so。如果這兩個版本的外掛程式檔案庫存在, 將使用 .sl 版本。
在所有其他 Linux 及 UNIX 平台上,.so 是機密保護外掛程式檔案庫唯一支援的副檔名。
在 AIX 上,機密保護外掛程式檔案庫可以具有副檔名 .a 或 .so。用來尋找外掛程式檔案庫的機制取決於使用哪一個副檔名而定:
例如,若要建立 32 位元保存檔樣式外掛程式檔案庫:
xlc_r -qmkshrobj -o shr.o MyPlugin.c -bE:MyPlugin.exp ar rv MyPlugin.a shr.o
xlc_r -qmkshrobj -o MyPlugin.so MyPlugin.c -bE:MyPlugin.exp
在 AIX 除外的所有平台上,機密保護外掛程式檔案庫永遠都會假設為可動態載入的共用物件。
| | |由於推出 DB2 UDB for Linux、UNIX、Windows 8.2 版, |所以您可以利用外掛程式的形式 (可載入的程式庫), |建立自己的鑑別機制。DB2 UDB 引擎會載入並存取這些外掛程式,以執行使用者身份鑑別。 |為了能夠支援以 Java 撰寫的客戶應用程式,「DB2 Universal JDBC 驅動程式」在 DB2 UDB |V8.2 的 FixPak 4 中提供機密保護外掛程式。
|若為使用「DB2 Universal JDBC 應用程式」來執行外掛程式鑑別的 Java 應用程式, |使用者需要擴充抽象類別 com.ibm.db2.jcc.DB2JCCPlugin 並設定下列內容, |來實作自己的外掛程式:
|請注意下列範例:
|java.util.Properties properties = new java.util.Properties(); | properties.put("user", "db2admin"); | properties.put("password", "admindb2"); | properties.put("pluginName", "gssapi_simple"); | properties.put("securityMechanism", | new String(""+com.ibm.db2.jcc.DB2BaseDataSource.PLUGIN_SECURITY+"")); | properties.put("plugin", new JCCSimpleGSSPlugin()); | Connection con = java.sql.DriverManager.getConnection(url, properties);
GSS-API 鑑別已被限制為只能將一個符記從用戶端串流至伺服器, 以及將一個符記從伺服器串流至用戶端。這些符記取自於用戶端上的 gss_init_sec_context(),及伺服器上的 gss_accept_sec_context()。嘗試額外串流的 GSS-API 外掛程式,將產生機密保護外掛程式的非預期錯誤, 導致連線失敗。
GSS-API 機密保護外掛程式中無法使用訊息加密及簽名。
不管使用哪一種作業系統,所有應用程式終止 (正常及異常) 都會隱含地 Rollback 未執行的工作單元。
在 DB2 Universal Database (UDB) 8.2 版的「新增功能」文件中,DB2 Universal JDBC Driver 改善一節中的「分散式」交易支援資訊具有不正確資訊。 此節的最後一句不正確。正確資訊如下:
從 8.2 版開始,DB2 UDB 提供符合 XA 規格之分散式交易處理的支援。 這個支援會實作 Java 2 Platform Enterprise Edition (J2EE) Java Transaction Service (JTS) 及 Java Transaction API (JTA) 規格。
[ 頁面頂端 |前一頁 | 下一頁 | 目錄 ]