IBM i (OS/400) と一時ポート

IBM i (OS/400) と一時ポート

社内にカスタム アプリケーションがあり、多数の Windows クライアントが V5R4 を実行している IBM i (AS/400) 上のイメージング サービスにアクセスしています。CPU 負荷が高い場合、クライアントが TCP/IP 接続を確立できないことがあります。IBM i は私にとってあまり馴染みのない分野なので、他の OS、主に *NIX と Windows と比較するしかありませんでした。どちらも、クライアントへの接続を確立する一時ポートの概念と使用法を持っています。他の OS では、接続プールのサイズは、およそ 4,000 から 64,000 までさまざまです。このマニュアル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  . . . . 

ページを下にスクロールすると、2 ページ目の情報が表示されます。

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

一時ポートを使用するのは OS ではなく、アプリケーションです。オペレーティング システムは実際には決定要因ではありません。そうは言っても、@Charles は、新しい着信要求をスケジュールするときにサーバーが過負荷にならないようにするための良い答えを持っています。

関連情報