Вам нужна консольная команда "D TCPIP,CONN". Это покажет вам состояние всех различных сетевых подключений, и вы можете выровнять вывод с помощью упомянутой вами команды «D OMVS, A = ALL», чтобы определить PID для любого открытого подключения к сокету.
Обратите внимание, что если на вашем сайте работает несколько стеков TCP/IP, вам необходимо знать имя задания стека TCPIP, которому принадлежит интересующее вас соединение. Команда "D TCPIP,DEVLINK" может помочь вам в этом... обычно , если вы запустите несколько стеков, каждый из них будет обслуживать разные IP-адреса (и устройства). Вам нужно знать, к чему вы подключаетесь (IP-адрес и порт), затем связать IP-адрес с именем задания стека TCP/IP, после чего вы сможете получить нужные данные.
Если вам нужно сделать что-то подобное из оболочки USS, вы также можете использовать команды «ps» и «netstat» для получения тех же данных. Существуют также API-интерфейсы, которые позволят вам делать это программно из C/C++ или, возможно, из Java, если вы не возражаете против небольшого вмешательства кода JNI.
Обратите внимание, что полученный вами комментарий о том, что «может не быть PID», в целом не соответствует действительности. Когда приложение открывает сокет, оно сначала «дублируется» как процесс служб UNIX, а это означает, что вызывающей стороне присваивается идентификатор процесса. Действительно, иногда у вас возникает противоположная проблема — сложное приложение с множеством подзадач иногда может иметь несколько PID в одном адресном пространстве.
person
Valerie R
schedule
27.11.2015