設置 DB2 Universal Database for AS/400 DRDA TCP/IP 伺服器的主要考量是要確定伺服器已經啟動。 啟動 DRDA 伺服器 (一般所謂的 DDM 伺服器) 的 CL 命令如下:
STRTCPSVR SERVER(*DDM)
您也可以使用未加上參數或加上將 SERVER 參數指定為 *ALL 之「啟動 TCP/IP 伺服器 (STRTCPSVR)」命令,來啟動 DRDA 伺服器。 若在 TCP/IP 啟動時已發出這個 CL 命令的話,則會自動啟動 DRDA 伺服器:
CHGDDMTCPA AUTOSTART(*YES)
您可以發出下列 CL 命令,來驗證伺服器是否已經啟動:
WRKUSRJOB USER(QUSER) STATUS(*ACTIVE)
此命令將會顯示一個可捲動的工作列示。 如果您向下捲動一頁左右,應該會看到兩行,其中含有下列資訊:
__ QRWTLSTN QUSER BATCH ACTIVE __ QRWTSRVR QUSER PJ ACTIVE
(QRWTSRVR 行可能會重複出現,端視有多少預先啟動伺服器工作正在作用中。)
出現 QRWTLSTN 行時表示傾聽 DRDA 及 DDM 連接要求的工作正在作用中。 收到連接要求時,此工作會分派工作給 QRWTSRVR 工作。
另一個驗證是否已啟動 DRDA 伺服器的方法就是發出 STRTCPSVR SERVER(*DDM) 命令,來搜尋「DDM TCP/IP 伺服器已在作用中」訊息。
您可以發出如下的 DSPLOG 命令,來尋找用於特定連接的預先啟動工作名稱:
DSPLOG PERIOD(('15:55'))
其中所指定的時間比建立連接的時間早。 如此通常會顯示一個可捲動的歷程日誌登錄列示。 請搜尋像下列這樣的的登錄,其中含有伺服器工作的名稱:
DDM job 039554/QUSER/QRWTSRVR servicing user SRR on 03/30/98 at 15:57:38.
此工作名稱有助於查閱仍在作用中之工作的工作日誌; 也有助於啟動仍在作用中之工作的服務程式工作來解決問題,或查看查詢最佳化工具訊息。 使用如上資訊啟動服務程式工作的 CL 命令範例如下:
STRSRVJOB 039554/QUSER/QRWTSRVR
若要將服務的工作放入除錯模式中,請執行 STRDBG 命令:
STRDBG UPDPROD(*YES)
在某些情況下,DRDA 伺服器會先儲存預先啟動工作的工作日誌,再重新執行工作及清除工作。 在偵測到一系列的失效及故障時,或當一工作使用 STRSRVJOB 命令,而正接受服務時卻結束了工作時,也會執行此作業
若要在結束工作之後尋找儲存的工作日誌,請發出下列命令:
WRKJOB userid/QPRTJOB
其中的 userid 是建立連接時所使用的使用者 ID (上述範例中為 SRR)。
如此會顯示可從中選取的工作列示,或單一工作的選項功能表。 請選擇選項 4「使用排存的檔案」,來尋找儲存的工作日誌。 萬一有多個排存檔案的話,則是一個名稱為 QPJOBLOG 的檔案。 選項 5 可讓您檢視工作日誌檔。
當工作在除錯模式下執行時,您會在伺服器工作日誌中看到一則如下的查詢最佳化工具訊息:
CPI4329 Information 00 03/30/98 16:14:57 QQQIMPLE QSYS 3911 QSQOPEN QSYS 09C4 Message . . . . : TBL2 檔使用了到達順序存取。 Cause . . . . . : 可以使用到達順序存取,從 SR 檔案庫中 TBL2 檔案 的 TBL2 成員來選取記錄。若 SR 檔案庫中的 TBL2 檔案是邏輯檔案, 則 SR 檔案庫中的 TBL2 實體檔之 TBL2 成員即是記錄被選取的實際檔案。 檔名 *N 顯示其為一暫時檔案。 Recovery . . . : 若指定記錄選取,則使用存取路徑可改進查詢效能。 若存取路徑不存在,可考慮建立一最左鍵值欄位與選擇記錄欄位相配的存 取路徑。存取路徑中愈多鍵值欄位與選擇記錄欄位相配的話,將導致效能愈 增進。通常,欲強迫使用現存的存取路徑,可指定依據欄位的排序,且欄 位與該存取路徑之最左鍵值欄位相配。欲知詳情,請參閱 DB2 for AS/400 SQL Programming 一書。