當利用 IXF 檔案格式及 SELECT * 子句發出 export 命令時, 將收集索引資訊,如果適當的話。
如果索引中指定的直欄名稱包含 - 或 + 字元, 將不會收集索引資訊,而且您將收到 SQL 程式碼 SQL27984W。 匯出將完成,而且將不會影響正在匯出的資料。 不過,索引資訊將不會儲存在 IXF 檔案。
如果將使用 import 命令與 CREATE 參數來重建表格,將不會重建索引。 若要個別地建立索引,請使用 db2look 公用程式。
在中斷連接之前,如果未執行確定或回復,則在中斷資料庫與應用程式的連接時, 從應用程式呼叫 db2ReadLog API 可能會導致錯誤:
若為非內嵌式 SQL 應用程式,則在呼叫 db2ReadLog API 之前,將自動確定模式設為開啟。
在呼叫 db2ReadLog API 之後,在中斷資料庫連接之前,發出 COMMIT 或 ROLLBACK 陳述式。
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。
如果 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 資料庫進行編目,使其位於 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(R) Visual Studio .NET Framework 1.1 中運作,則您可以從 Microsoft 網站下載快速修正套件。 您可以在 Microsoft Knowledge Base 的文章 Q836745 中找到快速修正套件。
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 第 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(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 驅動程式檔案庫的名稱。
若要在 AIX、HP-UX 或「Solaris 作業環境」上切換至非 Unicode ODBC 檔案庫, 請參閱下列指示。因為這是手動處理程序,所以必須在每次更新產品, 或在套用新的 FixPak 或修正層次之後執行。
若要在 AIX 建立替代檔案庫:
cp db2_36.o db2.o -r--r--r-- bin:bin for db2.o
若要切回至原始物件,請使用備份檔代替 db2_36.o 檔案,執行相同的程序。
若要在 Solaris 作業環境建立替代檔案庫:
cp libdb2_36.so.1 libdb2.so.1 -r-xr-xr-x bin:bin libdb2.so.1
若要切回至原始物件,請使用備份檔代替 libdb2_36.so.1 檔案,執行相同的程序。
若要在 HP-UX PA-RISC 建立替代檔案庫:
cp libdb2_36.sl libdb2.sl -r-xr-xr-x bin:bin for libdb2.sl
若要切回至原始物件,請使用備份檔代替 libdb2_36.sl 檔案,執行相同的程序。
若要在 HP-UX on IA64 建立替代檔案庫:
cp libdb2_36.so libdb2.so -r-xr-xr-x bin:bin for libdb2.so
若要切換回原始的物件,請遵循相同的程序使用備份檔,而不使用 libdb2_36.so 檔案。
如果在其它 UNIX 作業系統上需要 DB2 UDB 及 Merant Driver Manager 方面的協助,請聯絡「IBM(R) 技術支援」。
系統若具有大量分割區,AIX 5 NFS APAR IY32512 可能會導致 db2stop 命令無法在其中執行。
在一個收到大量要求以封鎖已鎖定檔案之鎖定的伺服器上, 鎖定常駐程式可能會變成無回應。當所有可用的已鎖定執行緒都配置給等待鎖定變成可用的執行緒時, 這樣的狀況就會發生,所以當解除鎖定要求來的時候就沒有可用的執行緒來進行工作。
當這種狀況發生時,必須重新啟動停止的節點。對於這種狀況,有一個 DB2 Universal Database (UDB) 暫行解決方法,就是使用 db2stop 命令的 NODENUM 選項,一次停止一個節點。
如果啟用 SQLFLAG (STD) 前置編譯選項,則它會造成下列錯誤: 執行「前置編譯」程式 DSNHPC 時發生異常中止 C6
當使用「開發中心」來建立 SQL 儲存程序以在 DB2 for z/OS(R) 第 8 版上執行時,請除去 SQLFLAG (STD) 前置編譯選項。
當資料共用群組 (位於 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(TM) 使用手冊中仍有說明, 但是 8.2 版不再支援「DB2 Connect 自訂顧問」。
當安裝 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 才能順利執行。
db2 update admin config using JDK_PATH /opt/java1.3
db2admin stop db2admin start
使用 DB2 GUI 工具時若有顯示 Indic 字元的問題,您的系統可能沒有安裝必要的字型。
DB2 Universal Database (UDB) 已包裝了下列 IBM TrueType 和 OpenType 比例式 Indic 語言字型供您使用。您可以在任一下列 CD 的 font 目錄中,找到這些字型:
這些字型只與 DB2 UDB 搭配使用。 您無法從事對這些字型之一般或無限制銷售或配送這些字型:
字體 | 粗細 | 字型檔名稱 |
---|---|---|
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 字型:
除「DB2 安裝」精靈之外,在執行 Linux 作業系統的 zSeries(R) 伺服器上, GUI 工具都將無法運作。此限制包含通常從「安裝」啟動程式 (如「快速導覽」) 啟動的任何項目。
如果想要 GUI 工具與這些系統搭配使用,請在具有不同系統配置的用戶端系統上安裝管理工具, 然後使用本用戶端連接 zSeries 伺服器。
若要在「DB2 資訊中心」中取得精確的搜尋結果,您必須以引號含括內含數字的搜尋詞彙。
比方說,如果搜尋下列詞彙,您將收不到任何結果:
1.4.1
但是,如果以引號含括這個詞彙,您將收到適當的結果:
"1.4.1"
搜尋下列詞彙將傳回額外的主題:
DB20000I
但是,搜尋下列詞彙則會得到適當的結果:
"DB20000I"
如果將標示語言檔案匯入「資訊型錄中心」時未產生「資訊型錄中心」日誌檔,請執行下列疑難排解步驟:
db2javit -j:com.ibm.db2.common.icm.tag.IcmImport -w: -i: -o:"-Xmx128m -Xms32m" -g:"d:\temp\myimport.trc" ...
如果在套用 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 資料包。
當 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 上使用 DB2 Universal Database (UDB) 卻又不是 Windows 系統的管理員,您可能會遇到檔案許可權的問題。 如果您收到 SQL1035N、SQL1652N 或 SQL5005C 錯誤訊息,可能的原因及暫行解決方法顯示如下:
授與該使用者 (在檔案系統層次) 對 instance_dir 目錄至少是 MODIFY 的許可權。
部份 XML Extender 範例程式可能與其它已安裝的程式同名。 意外地呼叫另一個與 XML Extender 範例程式同名的程式可能會損壞您的 XML 檔案。 下面清單顯示舊的 XML Extender 範例程式名稱,以及較不會造成衝突的新置換程式名稱。 確定您使用新的範例程式名稱,而不是舊的名稱,以防止損壞您的 XML 檔案。
舊程式 (不使用) | 新程式 (使用) |
---|---|
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 |
舊程式 (不使用) | 新程式 (使用) |
---|---|
insertx | dxxisrt |
retrieve | dxxretr |
retrieve2 | dxxretr2 |
retrievec | dxxretrc |
shred | dxxshrd |
tests2x | dxxgenx |
tests2xb | dxxgenxb |
tests2xc | dxxgenxc |
先前列出之可執行檔的原始碼 (.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\ 目錄, 然後製作額外的複本,並根據先前的表格來更名它們。
現在您可以分解包含對映到不同直欄 (位於相同或不同表格中) 之非唯一屬性或非唯一元素名稱的文件, 而不會收到 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
使用 SNA 連接到 OS/390(R) 系統時,主機 VTAM(R) 層會在新連線建立時自動串流確定。自動確定會讓主機端執行緒狀態成為非作用中,而執行緒會立刻成為非作用中。
但是,使用 TCP/IP 連接到 OS/390 系統時,不會有自動確定。 應用程式本身必須在連線之後串流明確確定,以容許執行緒在主機上成為非作用中。 如果沒有明確確定,執行緒就會隨閒置執行緒逾時而定。
我們所建議的暫行解決方法是,重新撰寫應用程式,讓它在連線閒置之後執行明確確定。
[ 頁面頂端 |前一頁 | 下一頁 | 目錄 ]