IBM i (OS/400) 和臨時連接埠

IBM i (OS/400) 和臨時連接埠

我們內部有一個自訂應用程序,其中大量 Windows 用戶端正在存取運行 V5R4 的 IBM i (AS/400) 上的映像服務。有時,在 CPU 負載過重的情況下,客戶端無法建立 TCP/IP 連線。由於 IBM i 對我來說有點陌生,我別無選擇,只能開始與其他作業系統(主要是 *NIX 和 Windows)進行比較。它們都有臨時連接埠的概念和用途,在該連接埠上建立回客戶端的連線。在其他作業系統中,連接池的大小各不相同,從大約四千到六萬四千不等。讀完後我想知道本手冊,IBM i 是否也支援臨時連接埠範圍配置,或預設是否使用從 1024 到 65535 的整個 IP 池?

答案1

據我所知,IBM i 及其前身使用從 1024 到 65535 的整個連接埠範圍。

成像服務也是內部編寫的嗎?或者它是供應商應用程式?

許多本機 IBM i 應用程式使用單獨的進程(稱為作業)而不是多執行緒單一進程來處理客戶端伺服器活動。由於啟動新流程的成本相對較高,因此標準做法是擁有一個可用的「預先啟動」作業池來等待處理請求。但是,如果同時出現大量連線請求,則在新作業啟動時連線可能會延遲。也可以限制一次使用的連接總數。

例如,讓我們來看看處理 ODBC/JDBC/OLEDB 請求的 QZDASOINIT 作業。

這個命令:
DSPACTPJ SBS(QUSRWRK) PGM(QZDASOINIT)

將向您顯示正在執行和正在使用的 QZDASOINIT 作業的目前數量、平均數量和峰值數量:

 Prestart jobs:         
   Current number . . . 
   Average number . . . 
   Peak number  . . . . 

 Prestart jobs in use:  
   Current number . . . 
   Average number . . . 
   Peak number  . . . . 

向下翻頁將顯示第二頁資訊:

Program start requests:                 
  Current number waiting . . . . . . . .
  Average number waiting . . . . . . . .
  Peak number waiting  . . . . . . . . .
  Average wait time  . . . . . . . . . .
  Number accepted  . . . . . . . . . . .
  Number rejected  . . . . . . . . . . .

預啟動作業透過指派給給定子系統的「預啟動作業條目」進行控制。以下序列將使您到達“”:
dspsbsd qusrwrk
10. Prestart job entries
5=Display details

對於我的 QZDASOINIT 條目,我有以下內容

Initial number of jobs . . . . . . . . . . . . . :   1       
Threshold  . . . . . . . . . . . . . . . . . . . :   1       
Additional number of jobs  . . . . . . . . . . . :   2       
Maximum number of jobs . . . . . . . . . . . . . :   *NOMAX  
Maximum number of uses . . . . . . . . . . . . . :   200     
Wait for job . . . . . . . . . . . . . . . . . . :   *YES

有關更詳細的信息,請查看文檔調整預啟動作業條目

答案2

使用臨時連接埠的不是作業系統;而是作業系統。這是應用程式。作業系統並不是真正的決定因素。話雖如此,@Charles 有一個很好的答案,可以防止伺服器在嘗試安排新的傳入請求時被淹沒。

相關內容