IBM i (OS/400) и временные порты

IBM i (OS/400) и временные порты

У нас есть собственное приложение, в котором большой пул клиентов Windows обращается к службе обработки изображений на IBM i (AS/400) под управлением V5R4. Иногда, при большой загрузке ЦП, клиенты не могут установить соединение TCP/IP. Поскольку IBM i для меня немного чужд, у меня не было другого выбора, кроме как начать проводить параллели с другими ОС, в основном *NIX и Windows. У них обеих есть концепция и использование эфемерных портов, на которых устанавливается обратное соединение с клиентом. В другой ОС размер пула соединений варьируется от примерно четырех тысяч до шестидесяти четырех тысяч. Мне было интересно, после прочтенияэто руководство, поддерживает ли IBM i также конфигурацию диапазона эфемерных портов или по умолчанию использует весь пул IP-адресов от 1024 до 65535?

решение1

Насколько мне известно, IBM i и его предшественники используют весь диапазон портов от 1024 до 65535.

Служба обработки изображений также написана внутри компании? Или это приложение поставщика?

Многие собственные приложения IBM i используют отдельные процессы (известные как задания) вместо многопоточного одного процесса для обработки активности клиент-сервера. Поскольку запуск нового процесса относительно дорог, стандартной практикой является наличие пула доступных «предварительно запущенных» заданий, ожидающих обработки запросов. Однако, если одновременно поступает много запросов на подключение, возможно, что подключение будет отложено, пока запускаются новые задания. Также можно ограничить общее количество подключений, используемых одновременно.

Например, давайте рассмотрим задание QZDASOINIT, которое обрабатывает запросы ODBC/JDBC/OLEDB.

Эта команда:
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 есть хороший ответ, чтобы попытаться не допустить перегрузки сервера при попытке планирования новых входящих запросов.

Связанный контент