已知問題及暫行解決方法

將含有 - 及 + 字元的直欄上的索引匯出到 IXF 檔案

當利用 IXF 檔案格式及 SELECT * 子句發出 export 命令時, 將收集索引資訊,如果適當的話。

問題

如果索引中指定的直欄名稱包含 - 或 + 字元, 將不會收集索引資訊,而且您將收到 SQL 程式碼 SQL27984W。 匯出將完成,而且將不會影響正在匯出的資料。 不過,索引資訊將不會儲存在 IXF 檔案。

暫行解決方法

如果將使用 import 命令與 CREATE 參數來重建表格,將不會重建索引。 若要個別地建立索引,請使用 db2look 公用程式。

當呼叫 db2ReadLog API 時發生 CLI0116E 或 SQL0428N 錯誤

問題

在中斷連接之前,如果未執行確定或回復,則在中斷資料庫與應用程式的連接時, 從應用程式呼叫 db2ReadLog API 可能會導致錯誤:

暫行解決方法 1

若為非內嵌式 SQL 應用程式,則在呼叫 db2ReadLog API 之前,將自動確定模式設為開啟。

暫行解決方法 2

在呼叫 db2ReadLog API 之後,在中斷資料庫連接之前,發出 COMMIT 或 ROLLBACK 陳述式。

"db2gcf -k" 命令無法在 DB2 UDB Workgroup Server Edition 上執行

問題

db2gcf 命令通常從自動化 Script (如在 HA (高可用性) 叢集) 啟動、停止或監督 DB2 Universal Database(TM) (UDB) 實例。

在 DB2(R) UDB Workgroup Server 上,無法使用 db2gcf 系統命令與 -k 參數搭配。

暫行解決方法

"db2gcf -k" 命令只能用於 DB2 UDB Enterprise Server Edition,不能用於 DB2 UDB Workgroup Server Edition。

來自 DRDA wrapper 程式的 SQL1224 錯誤 (AIX)

如果 32 位元 DB2 Universal Database (UDB) 伺服器是在 AIX(R) 系統上執行,而且在相同系統上執行的應用程式具有多個透過 DRDA(R) wrapper 程式的本端資料庫連線,則應用程式可能取得下列錯誤:

SQL1822N  Unexpected error code "-1224" received from 
data source "W3_SERVER2". 
Associated text and tokens are 
  func="DriverConnect" 
  msg="SQL1224N  A database agent could not be started to 
                 service a request, or was terminated as 
                 a result of a database system shutdown 
                 or a force command. "
SQLSTATE=560BD

若要避免這個錯誤,請將下列項目置於聯合配置檔 (instance_directory/cfg/db2dj.ini):

EXTSHM=ON

註:
當新增項目至聯合配置檔時, 您必須停止並重新啟動 DB2 UDB,這些變更才能生效。

另外,您可以對本端 DB2 UDB 資料庫進行編目,使其位於 TCP/IP 節點。 例如:

CATALOG TCPIP NODE my_node REMOTE my_host SERVER 123;
CATALOG DB mydb AT NODE my_node;
CREATE WRAPPER drda;
CREATE SERVER my_server TYPE DB2/UDB VERSION 8 WRAPPER drda
   AUTHORIZATION "my_id" PASSWORD "my_pw"
   OPTIONS(ADD DBNAME 'MYDB');

快速鍵無法在 Microsoft Visual Studio .NET Framework 1.1 中運作

如果您的快速鍵無法在 Microsoft(R) Visual Studio .NET Framework 1.1 中運作,則您可以從 Microsoft 網站下載快速修正套件。 您可以在 Microsoft Knowledge Base 的文章 Q836745 中找到快速修正套件。

簡體中文語言環境 (AIX)

AIX 已在下列版本中變更連結到簡體中文語言環境 Zh_CN 的字碼集:

字碼集已從 GBK (字碼頁 1386) 變更為 GB18030 (字碼頁 5488 或 1392)。 由於 DB2 Universal Database (UDB) for AIX 透過 Unicode 支援本機的 GBK 字碼集,以及 GB18030 字碼集, 因此 DB2 UDB 會將 Zh_CN 語言環境的字碼集預設為 ISO 8859-1 (字碼頁 819), 並在某些作業中也會將語言環境的專屬區預設為美國 (US)。

要解決這項限制,有下列兩個選擇:

若您選擇使用第一個選項,請發出下列命令:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
    db2 terminate
db2stop
db2start

若您選擇使用第二個選項,請將您的語言環境從 Zh_CN 變更為 ZH_CN 或 zh_CN。ZH_CN 語言環境的字碼集為 Unicode (UTF-8),而 zh_CN 語言環境的字碼集為 eucCN (字碼頁 1383)。

簡體中文語言環境 (Red Hat Linux)

Red Hat 第 8 版及更新版本 (包括 Red Hat Enterprise Linux(TM) [RHEL] 2.1 版及第 3 版) 已將簡體中文的預設字碼集從 GBK (字碼頁 1386) 變更為 GB18030 (字碼頁 5488 或 1392)。

由於 DB2 Universal Database (UDB) for Linux 透過 Unicode 支援本機的 GBK 字碼集,以及 GB18030 字碼集, 因此 DB2 UDB 會將它的字碼集預設為 ISO 8859-1 (字碼頁 819),並在某些作業中也將它的專屬區預設為美國 (US)。

要解決這項限制,有下列兩個選擇:

若您選擇使用第一個選項,請發出下列命令:

db2set DB2CODEPAGE=1386
db2set DB2TERRITORY=86
    db2 terminate
db2stop
db2start

如果您選擇使用第二個選項,請發出下列任一個命令:

export LANG=zh_CN.gbk
export LANG=zh_CN
export LANG=zh_CN.utf8

其中與 zh_CN 相關的字碼集是 eucCN 或字碼頁 1383, 而與 zh_CN.utf8 相關的字碼頁則是 1208。

Merant Driver Manager 不相容性 (UNIX)

當 Merant Driver Manager 存取 UNIX(R) 上的 DB2 ODBC 驅動程式時,Unicode 支援會有不相容的情況。這些不相容的情況會使 Merant Driver Manager 即使在應用程式並未要求使用 Unicode 時,也使用 Unicode。 這個狀況可能會導致「資料倉儲中心」、「資訊型錄管理程式」及 MQSI 這類的元件發生問題, 因為它們需要 Merant Driver Manager 來支援非 IBM 資料來源。 在提供永久的解決方案之前,您可以使用未啟用 Unicode 支援的替代 DB2 ODBC 驅動程式檔案庫。

未啟用 Unicode 支援的替代 DB2 ODBC 驅動程式檔案庫,隨附於 DB2 Universal Database (UDB) 8.1 版 (AIX、HP-UX 及「Solaris 作業環境」版本)。若要使用替代檔案庫,您必須建立它的複本,同時給予複本其原始 DB2 ODBC 驅動程式檔案庫的名稱。

註:
替代 (_36) 檔案庫含有 DB2 JDBC Driver 需要的 Unicode 功能。 使用這個檔案庫可讓 JDBC 應用程式 (包括 WebSphere(R) Application Server) 能夠順利地使用 DB2 UDB。

若要在 AIX、HP-UX 或「Solaris 作業環境」上切換至非 Unicode ODBC 檔案庫, 請參閱下列指示。因為這是手動處理程序,所以必須在每次更新產品, 或在套用新的 FixPak 或修正層次之後執行。

程序

AIX

若要在 AIX 建立替代檔案庫:

  1. 以實例擁有者的身份,使用 db2stop force 命令來關閉所有資料庫實例。
  2. 使用 DB2 管理伺服器 (DAS) 實例 ID,使用 db2admin stop force 命令來關閉 DAS 實例。
  3. 備份 /usr/lpp/db2_81/lib 目錄中的原始 db2.o 檔案。
  4. 使用 root 權限發出 slibclean 命令。
  5. 將檔案 db2_36.o 複製到備份檔 db2.o,確定所有權及許可權維持一致。 請使用下列命令:
    cp db2_36.o db2.o
    -r--r--r-- bin:bin for db2.o

若要切回至原始物件,請使用備份檔代替 db2_36.o 檔案,執行相同的程序。

Solaris 作業環境

若要在 Solaris 作業環境建立替代檔案庫:

  1. 以實例擁有者的身份,使用 db2stop force 命令來關閉所有資料庫實例。
  2. 使用 DB2 管理伺服器 (DAS) 實例 ID,使用 db2admin stop force 命令來關閉 DAS 實例。
  3. 備份 /opt/IBMdb2/V8.1/lib 目錄中的原始 libdb2.so.1 檔案。
  4. 將檔案 libdb2_36.so.1 複製到備份檔 libdb2.so.1, 確定所有權及許可權維持一致。請使用下列命令:
    cp libdb2_36.so.1 libdb2.so.1
    -r-xr-xr-x bin:bin libdb2.so.1
  5. 為每個資料庫實例發出 db2iupdt <instance> 命令, 並為 DAS 實例發出 dasupdt <das_instance> 命令。

若要切回至原始物件,請使用備份檔代替 libdb2_36.so.1 檔案,執行相同的程序。

HP-UX PA-RISC

若要在 HP-UX PA-RISC 建立替代檔案庫:

  1. 使用 db2stop force 命令關閉所有資料庫實例。
  2. 使用 db2admin stop force 命令關閉 DB2 管理伺服器 (DAS) 實例。
  3. 備份 /opt/IBMdb2/V8.1/lib 目錄中的原始 libdb2.sl 檔案。
  4. 將檔案 libdb2_36.sl 複製到備份檔 libdb2.sl, 確定所有權及許可權維持一致。 使用下列命令以確保一致性:
    cp libdb2_36.sl libdb2.sl
    -r-xr-xr-x bin:bin for libdb2.sl
  5. 為每個資料庫實例發出 db2iupdt <instance> 命令, 並為 DAS 實例發出 dasupdt <das_instance> 命令。

若要切回至原始物件,請使用備份檔代替 libdb2_36.sl 檔案,執行相同的程序。

HP-UX on IA64

若要在 HP-UX on IA64 建立替代檔案庫:

  1. 使用 db2stop force 命令關閉所有資料庫實例。
  2. 使用 db2admin stop force 命令關閉 DB2 管理伺服器 (DAS) 實例。
  3. 備份 /opt/IBMdb2/V8.1/lib 目錄中的原始 libdb2.so 檔。
  4. libdb2_36.so 檔複製至 libdb2.so 備份檔, 同時確定所有權和許可權是一致的。使用下列命令以確保一致性:
    cp libdb2_36.so libdb2.so
    -r-xr-xr-x bin:bin for libdb2.so
  5. 為每個資料庫實例發出 db2iupdt <instance> 命令, 並為 DAS 實例發出 dasupdt <das_instance> 命令。

若要切換回原始的物件,請遵循相同的程序使用備份檔,而不使用 libdb2_36.so 檔案。

其它 UNIX 作業系統

如果在其它 UNIX 作業系統上需要 DB2 UDB 及 Merant Driver Manager 方面的協助,請聯絡「IBM(R) 技術支援」。

NFS APAR IY32512 - 無法使用的執行緒 (AIX)

系統若具有大量分割區,AIX 5 NFS APAR IY32512 可能會導致 db2stop 命令無法在其中執行。

在一個收到大量要求以封鎖已鎖定檔案之鎖定的伺服器上, 鎖定常駐程式可能會變成無回應。當所有可用的已鎖定執行緒都配置給等待鎖定變成可用的執行緒時, 這樣的狀況就會發生,所以當解除鎖定要求來的時候就沒有可用的執行緒來進行工作。

當這種狀況發生時,必須重新啟動停止的節點。對於這種狀況,有一個 DB2 Universal Database (UDB) 暫行解決方法,就是使用 db2stop 命令的 NODENUM 選項,一次停止一個節點。

SQLFLAG (STD) 前置編譯器選項錯誤

如果啟用 SQLFLAG (STD) 前置編譯選項,則它會造成下列錯誤: 執行「前置編譯」程式 DSNHPC 時發生異常中止 C6

當使用「開發中心」來建立 SQL 儲存程序以在 DB2 for z/OS(R) 第 8 版上執行時,請除去 SQLFLAG (STD) 前置編譯選項。

在 DB2 Connect 使用 Sysplex 時必須啟用連線儲存區

問題

當資料共用群組 (位於 OS390) 中的 DDF 的連接成員已關閉時, DB2 Connect(TM) 並未將連線遞送到「分散式資料機能 (DDF)」的另一個成員。 在啟用 Sysplex 時,DB2 Connect(TM) 會根據伺服器清單,將連線遞送到 DDF 中的另一個成員。

在設計 DB2 Connect 第 8 版 Sysplex 時,一直將代理站儲存區謹記於心。 如果沒有代理站,且沒有資料庫連線,將釋放 Sysplex 伺服器清單。 因此,必須保存至少一個代理站,才能維持 Sysplex 伺服器清單。

暫行解決方法

執行下列命令來啟用連線儲存區:

db2 update dbm cfg using num_poolagents number
db2stop
db2start

其中 number 是 DB2 實例上容許置於儲存區的代理站的最大數目。 當 number 大於 0 時, 將啟用連線儲存區。

建議

num_poolagents 設為 -1,這會解析為已指定給 maxagents 配置參數之值的一半

DB2 Connect 自訂顧問

儘管 DB2 Connect(TM) 使用手冊中仍有說明, 但是 8.2 版不再支援「DB2 Connect 自訂顧問」。

無法建立工具型錄資料庫 (HP-UX)

問題
在 HP-UX 上安裝 DB2 Universal Database (UDB) 8.2 版時,如果 CREATE TOOLS CATALOG 命令在 32 位元實例下執行, 而且 DB2 Administration Server jdk_path 配置參數指向 HP-UX SDK 1.4,則這個命令將失敗,並出現 SQLCODE -22209。失敗的原因是 DB2 UDB 8.2 版會依預設安裝 HP-UX SDK 1.4,但是 8.2 版 32 位元實例需要 HP-UX SDK 1.3, 才能順利執行 CREATE TOOLS CATALOG 命令。

當安裝 DB2 UDB 8.1 版 FixPak 7 時,如果您以手動方式更新 DB2 Administration Server jdk_path 配置參數,以指向 HP-UX SDK 1.4;或如果您捨棄並重建 DB2 Administration Server (DAS),則也可能發生這種失敗。發生失敗的原因是在上述任一種情況中, jdk_path 配置參數都會變更為指向 HP-UX SDK 1.4。

DB2 UDB 8.2 版 32 位元實例需要 HP-UX SDK 1.3 才能順利執行。

暫行解決方法 1
在 64 位元實例下建立工具型錄。
暫行解決方法 2
執行下列步驟,在 32 位元實例下建立工具型錄:
  1. 從 HP-UX 網站下載 HP-UX SDK 1.3,網址是 http://www.hp.com/products1/unix/java/
  2. 安裝 HP-UX SDK 1.3。
  3. 更新 DB2 Administration Server jdk_path 配置參數,以指向 HP-UX SDK 1.3。例如:
    db2 update admin config using JDK_PATH /opt/java1.3
  4. 重新啟動 DB2 Administration Server。
    db2admin stop
    db2admin start
  5. 在 32 位元實例下重新執行 CREATE TOOLS CATALOG 命令。

於 DB2 GUI 工具中顯示 Indic 字元

使用 DB2 GUI 工具時若有顯示 Indic 字元的問題,您的系統可能沒有安裝必要的字型。

DB2 Universal Database (UDB) 已包裝了下列 IBM TrueType 和 OpenType 比例式 Indic 語言字型供您使用。您可以在任一下列 CD 的 font 目錄中,找到這些字型:

這些字型只與 DB2 UDB 搭配使用。 您無法從事對這些字型之一般或無限制銷售或配送這些字型:

表 9. 與 DB2 UDB 一起包裝的 Indic 字型
字體 粗細 字型檔名稱
Devanagari MT for IBM 適中 devamt.ttf
Devanagari MT for IBM 粗體 devamtb.ttf
Tamil 適中 TamilMT.ttf
Tamil 粗體 TamilMTB.ttf
Telugu 適中 TeluguMT.ttf
Telugu 粗體 TeleguMTB.ttf

您可於 IBM Development Kit for Java 文件的 Internationalization 這一節中,找到有關如何安裝字型及修改 font.properties 檔的詳細說明。

此外,下列 Microsoft 產品亦提供可與 DB2 GUI 工具搭配使用的 Indic 字型:

zSeries 伺服器不支援 GUI 工具 (Linux)

除「DB2 安裝」精靈之外,在執行 Linux 作業系統的 zSeries(R) 伺服器上, GUI 工具都將無法運作。此限制包含通常從「安裝」啟動程式 (如「快速導覽」) 啟動的任何項目。

如果想要 GUI 工具與這些系統搭配使用,請在具有不同系統配置的用戶端系統上安裝管理工具, 然後使用本用戶端連接 zSeries 伺服器。

如果 DB2 資訊中心搜尋詞彙含有數字,請以引號含括它們

若要在「DB2 資訊中心」中取得精確的搜尋結果,您必須以引號含括內含數字的搜尋詞彙。

比方說,如果搜尋下列詞彙,您將收不到任何結果:

  1.4.1

但是,如果以引號含括這個詞彙,您將收到適當的結果:

  "1.4.1"

搜尋下列詞彙將傳回額外的主題:

    DB20000I

但是,搜尋下列詞彙則會得到適當的結果:

  "DB20000I"

匯入標示語言檔案時未產生「資訊型錄中心」日誌檔

如果將標示語言檔案匯入「資訊型錄中心」時未產生「資訊型錄中心」日誌檔,請執行下列疑難排解步驟:

從命令行執行 db2icmimport 時:
使用資訊型錄中心 GUI 匯入標示語言檔案時:

連結 Query Patroller 資料包

如果在套用 fixpak 之後未連結 Query Patroller 資料包, 則在使用「Query Patroller 中心」或 Query Patroller 命令行時, 沒有 DBADM 權限或適當 Query Patroller 專用權的使用者可能會遇到下列錯誤:

SQL0001N - 未順利完成連結或前置編譯。

如果您使用的是「Query Patroller 中心」,SQL0001N 錯誤將記載在 qpdiag.log 檔。 如果您使用的是 Query Patroller 命令行,則 SQL0001N 會傳回到主控台

自動連結程式碼存在,以起始自動連結。但是, 當連接中使用者沒有執行 Query Patroller 資料包中所有陳述式所需的專用權時,自動連結將失敗。 這個問題的症狀是「Query Patroller 中心」中缺少資料夾。

若要避免這個問題,在套用 fixpak 之後,具有 DBADM 權限或必要專用權的使用者應該以手動方式連結 qpserver.lst 資料包。

Query Patroller 沒有可用的埠 (Windows)

問題

當 Windows XP 或 Windows 2003 上再也沒有可用的埠時,Query Patroller 中提出的查詢可能會收到 SQL 程式碼 -29007。 隨著存取 Query Patroller 的用戶端數目的增加,發生這種錯誤的可能性也會隨之增加。

暫行解決方法

設定下列 Windows 登錄變數:

      MaxUserPort=65534
   TcpTimedWaitDelay=30

然後重新啟動您的系統,以使這些變更生效。

有關設定 Windows 登錄變數的詳細資料位在 Microsoft(R) Help and Support 網站,網址為 http://support.microsoft.com/

安全環境 (Windows)

如果您在 Windows 上使用 DB2 Universal Database (UDB) 卻又不是 Windows 系統的管理員,您可能會遇到檔案許可權的問題。 如果您收到 SQL1035N、SQL1652N 或 SQL5005C 錯誤訊息,可能的原因及暫行解決方法顯示如下:

使用者在 sqllib 目錄上沒有足夠的權限

問題
在嘗試開啟 DB2 CLP 或命令視窗時,使用者收到 SQL1035N 或 SQL1652N 錯誤。 DB2 UDB 程式碼 (核心檔案) 是安裝在一個寫入專用權受到限制的目錄結構中, 但某些 DB2 UDB 工具卻需要寫入這個 DB2INSTPROF 目錄並在這個目錄中建立檔案。
暫行解決方法
建立一個您可以從中授與使用者至少是 MODIFY 許可權的新目錄,並使用 db2set -g db2tempdir 來指向這個新目錄,或者在 Windows 系統環境中設定 db2tempdir 變數。
使用者沒有足夠的權限來寫入 sqllib\<instance_dir> 目錄,即使他們屬於 SYSADM_GROUP 也一樣

問題
在嘗試更新資料庫管理程式配置檔 (update dbm cfg) 時,使用者收到 SQL5005C 系統錯誤。 該使用者沒有必要的 NTFS 權限來寫入 sqllib\instance_dir 目錄,即使您已經將這名使用者加入 SYSADM_GROUP 也一樣。
第一個暫行解決方法

授與該使用者 (在檔案系統層次) 對 instance_dir 目錄至少是 MODIFY 的許可權。

第二個暫行解決方法
建立一個您可以從中授與使用者至少是 MODIFY 許可權的新目錄。使用 db2set db2instprof 命令來指向這個新目錄。您將必須重建該實例,以便將資訊儲存在 db2instprof 所指定的新實例目錄底下, 或者您必須將舊的實例目錄移到新的目錄中。

XML Extender 範例程式已更名

部份 XML Extender 範例程式可能與其它已安裝的程式同名。 意外地呼叫另一個與 XML Extender 範例程式同名的程式可能會損壞您的 XML 檔案。 下面清單顯示舊的 XML Extender 範例程式名稱,以及較不會造成衝突的新置換程式名稱。 確定您使用新的範例程式名稱,而不是舊的名稱,以防止損壞您的 XML 檔案。

表 10. 置換 XML Extender 的範例程式 (Windows)
舊程式 (不使用) 新程式 (使用)
insertx.exe dxxisrt.exe
retrieve.exe dxxretr.exe
retrieve2.exe dxxretr2.exe
retrievec.exe dxxretrc.exe
shred.exe dxxshrd.exe
tests2x.exe dxxgenx.exe
tests2xb.exe dxxgenxb.exe
tests2xc.exe dxxgenxc.exe
表 11. 置換 XML Extender 的範例程式 (Linux 及 UNIX)
舊程式 (不使用) 新程式 (使用)
insertx dxxisrt
retrieve dxxretr
retrieve2 dxxretr2
retrievec dxxretrc
shred dxxshrd
tests2x dxxgenx
tests2xb dxxgenxb
tests2xc dxxgenxc

使用新範例程式與範例 sqx 檔

先前列出之可執行檔的原始碼 (.sqx files) 位於安裝的 samples\db2xml\c 目錄。 來源檔仍以舊名稱標示。 如果您變更原始碼,請將新編譯的可執行檔 (具有舊名稱) 複製到 sqllib\bin 目錄。

在 Windows 平台上,您必須另外進行複製,將其更名為上述新名稱,並將其複製到 bin 目錄。這兩個複本會置換 bin 目錄中現存的檔案。例如,編譯新版 shred.exe 之後,您必須複製兩份並置換 bin 目錄中的檔案:一個標示為 shred.exe,另一個則更名為 dxxshrd.exe。

在 Linux 及 UNIX 平台上,您只需以新編譯的版本置換具有舊名稱的檔案。如果您從這些範例中建立新的可執行檔, 則必須將新檔案從 \SQLLIB\samples\db2xml\c\ 目錄複製到 \SQLLIB\bin\ 目錄, 然後製作額外的複本,並根據先前的表格來更名它們。

在 XML Extender 中,分解包含非唯一屬性及元素名稱的元件

現在您可以分解包含對映到不同直欄 (位於相同或不同表格中) 之非唯一屬性或非唯一元素名稱的文件, 而不會收到 DXXQ045E 錯誤。以下是具有非唯一屬性及非唯一元素名稱的 XML 文件範例:

<Order ID="0001-6789">
       <!-- Note: attribute name ID is non-unique ->
       <Customer ID = "1111">
                    <Name>John Smith</Name>
       </Customer>
       <!-- Note: element name Name is non_unique ->
       <Salesperson ID = "1234"> 
              <Name>Jane Doe</Name>
       </Salesperson>
       <OrderDetail>
              <ItemNo>xxxx-xxxx</ItemNo>
              <Quantity>2</Quantity>
              <UnitPrice>12.50</UnitPrice>
       </OrderDetail>       
       <OrderDetail>
              <ItemNo>yyyy-yyyy</ItemNo>
              <Quantity>4</Quantity>
              <UnitPrice>24.99</UnitPrice>
       </OrderDetail>       
</Order>

伴隨的 DAD 將重複的元素和屬性對映到不同直欄, 其外觀如下:

<element_node name="Order">
        <RDB_node>
    <table name="order_tab" key="order_id"/>
    <table name="detail_tab"/>
    <condition>
      order_tab.order_id=detail_tab.order_id
    </condition>
        </RDB_node>

  <!--attribute ID duplicated below, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
      <column name="order_id" type="char(9)"/>
        </RDB_node>
    </attribute_node>
  
  <element_node name="Customer">
    <!--attribute ID duplicated above, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="cust_id" type="integer"/>
        </RDB_node>
    </attribute_node>

    <!--element name duplicated below, but mapped to a different col->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="cust_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="Salesperson">
    <!--attribute ID duplicated above, but mapped to a different col->
    <attribute_node name="ID">
        <RDB_node>
          <table name="order_tab" />
        <column name="salesp_id" type="integer"/>
        </RDB_node>
    </attribute_node>
          
    <!--element name duplicated above, but mapped to a different col->
    <element_node name="Name"> 
      <text_node>
        <RDB_node>
          <table name="order_tab" />
          <column name="salesp_name" type="char(20)" />
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
    
  <element_node name="OrderDetail" multi_occurrence="YES">
    <element_node name="ItemNo">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="itemno" type="char(9)"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="Quantity">
      <text_node>
        <RDB_node>
          <table name="detail_tab" />        
          <column name="quantity" type="integer"/>
        </RDB_node>
      </text_node>
  </element_node>
    <element_node name="UnitPrice">
      <text_node>
        <RDB_node>detail_tab" />
          <table name="detail_tab" />        
          <column name="unit_price" type="decimal(7,2)"/>
        </RDB_node>
      </text_node>
  </element_node>
  </element_node>
  </element_node>

在分解先前的文件之後,表格的內容會如同下列範例一般:

ORDER _TAB:

ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
0001-6789      1111          John Smith      1234            Jane Doe

DETAIL_TAB:

ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
0001-6789         xxxx-xxxx      2                 12.50
0001-6789         yyyy-yyyy      4                 24.99

註:
若要將多個元素及屬性對映到相同表格的相同直欄上,請定義表格別名, 並在其中一個對映的 DAD <table> 元素中使用該別名。

使用 DB2 Connect 時, SNA 與 TCP/IP 之間的差異

使用 SNA 連接到 OS/390(R) 系統時,主機 VTAM(R) 層會在新連線建立時自動串流確定。自動確定會讓主機端執行緒狀態成為非作用中,而執行緒會立刻成為非作用中。

但是,使用 TCP/IP 連接到 OS/390 系統時,不會有自動確定。 應用程式本身必須在連線之後串流明確確定,以容許執行緒在主機上成為非作用中。 如果沒有明確確定,執行緒就會隨閒置執行緒逾時而定。

我們所建議的暫行解決方法是,重新撰寫應用程式,讓它在連線閒置之後執行明確確定。

[ 頁面頂端 |前一頁 | 下一頁 | 目錄 ]