本章將列出 DB2 Text Extender API 為回應函數呼叫而傳回的程式碼, 並以英文字母的次序排列。
所有的 DB2 Text Extender API 呼叫都會傳回數字回覆碼來作為 C 函數值。 回覆碼皆定義於隨 DB2 Text Extender 提供的併入檔 DES_EXT.H 中。
DB2 Text Extender API 會截取錯誤狀況,並以回覆碼來報告錯誤狀況。
呼叫 DB2 Text Extender API 函數的應用程式一定要先檢查回覆碼,才能嘗試處理任何其它的輸出參數。 每一個呼叫的可能回覆碼,皆與它們的參數一起列在用來搜尋及瀏覽的 API 函數中。
在某些情況下,不正確的輸入 (如:汰換階段作業指標) 會導致 API 服務程式產生異常終止的狀況,而且 DB2 Text Extender 也無法截取。
RC_ALLOCATION_ERROR |
說明: 無法為內部使用配置儲存體。
如何做: 請確定有足夠的記憶體。
RC_FILE_IO_PROBLEM |
說明: DB2 Text Extender 無法讀取或寫入檔案。
如何做: 請確定該伺服器有足夠的磁碟空間和記憶體。 並檢查環境變數及文字架構的設定是否正確。
RC_INVALID_BROWSE_INFO |
說明: DesGetSearchResultTable 或 DesGetBrowseInfo 所傳回的瀏覽資訊, 以及用來當作 DesStartBrowseSession 的輸入的瀏覽資訊無效。
如何做: 請檢查程式設計錯誤是否置換了瀏覽資訊。
RC_INVALID_BROWSE_OPTION |
說明: DesGetSearchResultTable 中的瀏覽選項無效。
如何做: 請確定選項為 BROWSE 或 NO_BROWSE。
RC_INVALID_MATCH_OPTION |
說明: DesOpenDocument 中所使用的配對選項無效。
如何做: 請檢查該選項為 FAST 或 EXTENDED。
RC_INVALID_PARAMETER |
說明: 其中一個輸入參數不正確。
如何做: 請讀取 DB2 Text Extender 所傳回的錯誤訊息,以判定原因。
RC_INVALID_SEARCH_OPTION |
說明: DesGetSearchResultTable 中的搜尋選項無效。
如何做: 請確定該選項為DES_TEXTHANDLEONLY、 DES_RANK、 DES_MATCH 或 DES_RANKANDMATCH。
RC_INVALID_SESSION |
說明: 在現行服務程式呼叫中所指定的階段作業指標不正確或已廢除。
如何做: 請儲存任何可幫助尋找錯誤原因的資訊,然後結束應用程式。
RC_NO_BROWSE_INFO |
說明: DB2 Text Extender 沒有傳回任何瀏覽資訊。 這是因為搜尋引數產生了空的搜尋結果。 這並不是錯誤。
如何做: 不需要任何動作。
RC_PARSER_INVALID_ESCAPE_CHARACTER |
說明: 搜尋準則包含不正確的脫離字元。如果您用空白來當作脫離字元, 或是在搜尋準則中針對某一個字或詞組指定了一個以上的脫離字元,就會發生此錯誤。 範例:ESCAPE " " 或 ESCAPE "#$"。
如何做: 請檢查搜尋引數的語法,然後再試一次。
RC_PARSER_INVALID_USE_OF_ESCAPE_CHAR |
說明: 無法解譯搜尋準則中的脫離字元語法。
如何做: 請檢查脫離字元的語法。例如,若 $ 為所指定的脫離字元, 則該字詞或詞組就只能包含 $$、$_ 或 $%, 其中 _ 及 % 就是那二個遮罩符號。
RC_PARSER_SYNTAX_ERROR |
說明: 無法解譯搜尋準則的語法。
如何做: 請參照搜尋引數的語法來檢查搜尋引數的語法。
RC_RESULT_TABLE_NOT_EXIST |
說明: 您正嘗試將搜尋結果儲存在一個不存在的表格中。
如何做: 請建立一個結果表格,如圖 15所示。
RC_SE_BROWSER_TIME_OUT |
說明: 瀏覽處理已啟動,但是沒有在可接受的時間內回應。 DB2 Text Extender 在之後已取消擱置的處理。
當您的系統沒有足夠的儲存體空間或是已超載時,就會發生此錯誤。
如何做: 請呼叫 DesEndBrowseSession,以終止瀏覽階段作業, 並呼叫 DesFreeBrowseInfo,以清出已配置的儲存體,然後再試一次。
RC_SE_CAPACITY_LIMIT_EXCEEDED |
說明: 無法處理所要求的函數。記憶體或磁碟空間不足。
如何做: 請結束程式,並檢查您的系統資源。
RC_SE_COMMUNICATION_PROBLEM |
說明: 與 DB2 Text Extender 伺服器通信失敗。 造成錯誤的原因可能是缺少儲存體空間, 或是 DB2 Text Extender 的安裝作業不正確。
如何做: 請儲存任何可幫助尋找該錯誤的資訊,然後結束應用程式。
RC_SE_CONFLICT_WITH_INDEX_TYPE |
說明: 該查詢的搜尋術語的語言規格與索引的類型不符。 例如,PRECISE FORM OF 不能與語言索引一起使用。 所使用的預設語言規格,如表 7所示。
如何做: 請調整您的應用程式,以防止會與索引類型產生衝突的查詢選項規格。
RC_SE_DICTIONARY_NOT_FOUND |
說明: DB2 Text Extender 語言服務程式找不到字典檔。 已在沒有語言支援的情況下,處理了該查詢。 與所指定之語言碼相對應的字典檔不在預期的路徑中。
如何做: 您仍可繼續進行 API 呼叫。若您使用 UNIX 系統,請檢查所要求的字典位在 {DB2TX_INSTOWNERHOMEDIR}/db2tx/dicts 路徑中。 對於 OS/2,檢查必要的字典位於文字架構設定 DB2TX_DATA 所指定的路徑中。 若有必要的話,您可安裝所要求的字典。
RC_SE_DOCMOD_READ_PROBLEM |
說明: 建立 DB2 Text Extender 案例時,案例目錄中會放入一個文件模型檔,稱為 desmodel.ini。 建立索引時, desmodel.ini 檔也會放在索引目錄 IXnnnnnn 中。 無法讀取此文件模型檔。
如何做: 檢查文件模型檔存在,且位於正確目錄中。
RC_SE_DOCUMENT_NOT_ACCESSIBLE |
說明: 已找到所要求的文字文件,但目前無法存取。
如何做: 請檢查該文件是否被其它作業或使用者所獨佔存取。
RC_SE_DOCUMENT_NOT_FOUND |
說明: 找不到所要求的文字文件。最有可能的原因是文字文件已被從儲存體刪除, 但尚未從 DB2 Text Extender 索引除去。 如果您嘗試瀏覽已損毀之 handle 所識別的文件, 也會發生此錯誤。
如何做: 在大部份的情況下,您可忽略此回覆碼。在下一次的索引更新後,就不會再出現此錯誤了。
如果仍持續發生此狀況,請檢查您的應用程式是否已正確地傳遞所找到的 handle, 以進行瀏覽。
RC_SE_EMPTY_INDEX |
說明: 與搜尋要求所要求之 handle 直欄相符的 DB2 Text Extender 索引是空的。 可能是沒有任何文字文件新增至此索引,或是所有的文字文件都已除去。
當文字直欄已啟用,但直欄中的文件尚未編製索引的情況下,就會發生這種情形。 意即,您在 ENABLE TEXT COLUMN 指令中指定要在稍後建立索引, 但定期編製索引設定卻已經決定在該時間編製索引。
若您已啟用文字表格來為所有的文字直欄建立空白的共用索引, 但卻沒有啟用任何文字直欄的話,也會發生這種情形。
如何做: 如果您已使用 ENABLE TEXT TABLE 來為所有的文字直欄建立空白共用索引, 請至少為其中一個包含所要搜尋之文字的文字直欄,執行 ENABLE TEXT COLUMN。 在此指令中,您可決定要立刻建立索引,或是要在定期編製索引的設定時間建立索引。
執行 GET INDEX STATUS,以檢查是否已順利建立索引。
RC_SE_EMPTY_QUERY |
說明: DB2 Text Extender 已依語言來分析及處理所指定的搜尋準則。 可能是程式設計錯誤導致查詢沒有包含任何搜尋術語, 抑或所有的搜尋術語都是從查詢除去的停止字詞 (不是由 DB2 Text Extender 編製索引的字詞)。 結果為沒有搜尋術語。
如何做: 重述查詢。如果問題依然存在,請檢查程式設計錯誤。
RC_SE_END_OF_INFORMATION |
說明: 這並不是錯誤。已達文件結尾。已無進一步的 DesGetMatches 資訊。
如何做: 請使用此回覆碼來結束具有 DesGetMatches 之文件的反覆處理程序。
RC_SE_FUNCTION_DISABLED |
說明: 所要求的函數呼叫了一個已被管理者阻止的 DB2 Text Extender 函數。
如何做: 請詢問您的管理者,以取得協助。可能需要停止 DB2 Text Extender 再重新啟動 (txstop/txstart)。
RC_SE_FUNCTION_IN_ERROR |
說明: 所要求的函數已被鎖定,因為 DB2 Text Extender 伺服器上有錯誤狀況發生。 無法處理 API 呼叫。
如何做: 請檢查索引狀態。並檢查索引目錄中的可用空間。 重設索引狀態,再重試該指令。
RC_SE_INCORRECT_HANDLE |
說明: 指定在輸入參數 (如瀏覽階段作業) 中的 handle 無效。 該 handle 必須是由上次呼叫所傳回的 handle,而且沒有被廢除。
如何做: 請儲存任何可幫助尋找錯誤原因的資訊,然後呼叫 DesEndBrowseSession, 以結束階段作業。
請檢查程式設計錯誤是否產生了不正確的 handle。
RC_SE_INDEX_DELETED |
說明: 所存取的 DB2 Text Extender 索引已被刪除。
如何做: 請聯絡 DB2 Text Extender 管理者,以重新建立索引。
RC_SE_INDEX_NOT_ACCESSIBLE |
說明: 無法存取 DB2 Text Extender 索引,也無法處理現行呼叫。
如何做: 請洽詢 DB2 Text Extender 管理者,以檢查該索引的可存取性。
RC_SE_INDEX_SUSPENDED |
說明: DB2 Text Extender 接到一個有關於索引的要求,該索引已被另一個階段作業或現行階段作業所暫停。
如何做: 請洽詢 DB2 Text Extender 管理者,以檢查該索引的狀態。
RC_SE_INSTALLATION_PROBLEM |
說明: DB2 Text Extender 遭遇到安裝作業的問題。
如何做: 請檢查環境變數 DB2INSTANCE、 DB2TX_INSTOWNER、DB2TXINSTOWNERHOMEDIR 的現行設定。 使用 descfgcl -d 和 descfgsv -d -i txinsnnn 來檢查您的搜尋服務程式架構。
RC_SE_IO_PROBLEM |
說明: 當伺服器試圖開啟或讀取其中一個索引檔時,就會發生此錯誤。 這可能是因下列其中一種原因所造成:
管理者的非故意動作,例如刪除 DB2 Text Extender 索引檔
文字架構中的設定不正確。
如何做: 終止應用程式。並與管理者聯繫,以確定:
RC_SE_LS_FUNCTION_FAILED |
說明: 為擷取文字文件來瀏覽而用來存取資料庫的函數失敗。 可能是資料庫無法再供使用者存取,或是使用者沒有文字表格的使用權限。
如何做: 檢查函數 (例如:使用者 ID) 的輸入是否正確。 並檢查資料庫是可存取的,且使用者有使用該作業的權限。
RC_SE_LS_NOT_EXECUTABLE |
說明: 為擷取文字文件來瀏覽而用來嘗試存取資料庫的函數,無法執行。
如何做: 檢查 DB2 Text Extender 是否已正確安裝。 如果問題依然存在,請連絡 IBM 業務代表。
RC_SE_MAX_OUTPUT_SIZE_EXCEEDED |
說明: 找到數量異常龐大的相符者。瀏覽資訊的大小已超出最大處理範圍。 無法處理該要求。
如何做: 您可讓查詢的條件更明確,或是確定您有更多的系統記憶體。
RC_SE_MAX_NUMBER_OF_BUSY_INDEXES |
說明: 所要求的函數已被搜尋服務程式阻止,因為目前作用中的索引已達最大個數。
如何做: 請於稍後重新發出函數呼叫。一般而言,這種問題只是暫時的。
RC_SE_NO_DATA |
說明: 這並不是錯誤。沒有文字文件符合搜尋準則。 如果您要求瀏覽資訊,則不會傳回任何瀏覽資訊。 不會為瀏覽資訊配置儲存體。
如何做: 不需要任何動作。
RC_SE_NOT_ENOUGH_MEMORY |
說明: 從屬站上或伺服器系統上的儲存體空間不足。 無法處理目前的要求。
如何做: 請釋放儲存體空間,並結束應用程式。
RC_SE_PROCESSING_LIMIT_EXCEEDED |
說明: 現行搜尋要求已超出為主/從環境所指定之結果大小或處理時間的最大值。 已取消要求。
如何做: 請限定更明確的搜尋要求,並考慮增加處理時間的最大值。
RC_SE_QUERY_TOO_COMPLEX |
說明: 所指定的查詢太複雜。
如何做: 請調整您的應用程式,以防止過度使用遮罩字元及同義字。
若過度使用遮罩符號,或過度使用 SYNONYM 選項, 會使查詢擴張到 DB2 Text Extender 所無法管理的大小。
RC_SE_REQUEST_IN_PROGRESS |
說明: 已呼叫一個 DB2 Text Extender 瀏覽 API 服務程式,但相同階段作業中同時有另一個瀏覽 API 要求已出現。
如何做: 請呼叫 DesEndBrowseSession,以結束階段作業,並呼叫 DesFreeBrowseInfo, 以清出可用的儲存體。
DB2 Text Extender 瀏覽 API 不支援同一瀏覽階段作業的並行存取。
在同一處理程序中並行的所有應用程式,都應處理其本身的瀏覽階段作業。
RC_SE_SERVER_BUSY |
說明: DB2 Text Extender 從屬站目前無法與所要求的 DB2 Text Extender 伺服器建立階段作業, 或是 DB2 Text Extender 伺服器通信鏈結被岔斷,而無法重新建立。
DB2 Text Extender 伺服器已正確啟動,但已達平行伺服器處理的最大數。
如何做: 如果這不是暫時性問題,請變更伺服器上的通信架構。
RC_SE_SERVER_CONNECTION_LOST |
說明: 從屬站及伺服器之間的通信已被岔斷,並且無法重新建立。
DB2 Text Extender 伺服器作業可能已被管理者停止,或者是伺服器工作站已關機。
如何做: 請檢查是否有這些狀況的發生,並將其更正。
RC_SE_SERVER_NOT_AVAILABLE |
說明: DB2 Text Extender API 服務程式無法與所要求的 DB2 Text Extender 伺服器建立階段作業。
DB2 Text Extender 伺服器可能尚未啟動。
如何做: 請檢查 DB2 Text Extender 伺服器是否已正確啟動。 如果錯誤依然存在,則是安裝問題。
RC_SE_STOPWORD_IGNORED |
說明: 當所指定的查詢包含至少一個只由停止字詞所組成的搜尋術語時, 就會傳回這個參考用程式碼。在處理查詢時,會忽略該搜尋術語。
如何做: 您仍可繼續發出 API 呼叫。避免在 DB2 Text Extender 查詢中使用停止字詞。
RC_SE_UNEXPECTED_ERROR |
說明: 發生錯誤,可能是因 DB2 Text Extender 安裝不正確所導致。
如何做: 結束應用程式,並儲存任何可幫助尋找錯誤原因的資訊。
RC_SE_UNKNOWN_INDEX_NAME |
說明: 與文字直欄相關之文字索引的名稱是 handle 的一部份。
如何做: 請確定您用來當作 DesGetBrowseInfo 的輸入的 handle 是正確的。
RC_SE_UNKNOWN_SECTION_NAME |
說明: 指定的區段名稱不是文件模型檔中模型的一部份,或不是所用的預設模型的一部份。
如何做: 請指定特定模型部份或預設模型部份的區段名稱。
RC_SE_UNKNOWN_SERVER_NAME |
說明: DB2 Text Extender 伺服器的名稱是 handle 的一部份。
如何做: 請確定您用來當作 DesGetBrowseInfo 的輸入的 handle 是正確的。
RC_SE_WRITE_TO_DISK_ERROR |
說明: 發生寫入錯誤,可能是因為 DB2 Text Extender 伺服器工作站上的磁碟已滿, 或是因為 DB2 Text Extender 的安裝不正確。
如何做: 結束應用程式,並儲存任何可幫助尋找錯誤原因的資訊。 請確定該伺服器有足夠的磁碟空間。
RC_SQL_ERROR_WITH_INFO |
說明: 發生 SQL 錯誤。 傳回錯誤訊息。
如何做: 請檢查 DB2 Text Extender 所傳回的錯誤訊息,以取得相關資訊,例如: SQL 錯誤訊息、SQLState 及本身的 SQL 錯誤碼。
RC_SQL_ERROR_NO_INFO |
說明: 發生 SQL 錯誤。 沒有傳回錯誤訊息。
RC_TEXT_COLUMN_NOT_ENABLED |
說明: 所指定的 handle 直欄不是您所指定之表格中的直欄。
如何做: 請檢查您所指定的 handle 直欄名稱是否正確。 並確定該表格中的文字直欄已啟用。