De vez em quando alguém faz a seguinte pergunta: "Acrescentamos nossa porta de aplicação ao arquivo de serviços e agora alguma outra aplicação está usando-a - por quê". A resposta é porque o arquivo de serviços não reserva números de porta. O arquivo de serviços existe para que as aplicações possam chamar a função getervbyname para encontrar o número da porta associada a um serviço ou chamar a função getervbyport para encontrar o nome de um serviço associado a um número de porta. Não há nada que impeça dois serviços diferentes de mapearem para o mesmo número de porta, embora a função getervbyport retorne apenas a primeira. Também não há nenhuma exigência de que uma chamada de aplicação getervbyname seja feita para descobrir qual porta ela deve estar usando. O desenvolvedor de uma aplicação pode apenas codificar um número de porta ou permitir que ele seja inserido como um parâmetro.
- Execute o comando
“netstat -numeric -all_sockets -PCB_addr”
e identificar o interloperador, neste caso o número do porto em que estou interessado é 13592.
netstat -numeric -all_sockets -PCB_addr
Active connections (including servers)
PCB Proto Recv-Q Send-Q Local Address Foreign Address
(state)
. . .
8e3aa300 tcp 0 0 *:13592 *:* LISTEN
. . .
ready 13:50:12
- Execute o comando
“analyze_system -request_line 'match dv; dump_onetcb 8e3aa300' -quit”
OpenVOS Release 17.0.1aj, analyze_system Release 17.0.1aj
Current process is 664, ptep 8E0EE800, Noah_Davids.CAC
sth_dvtx = 121 (stcp.m16_202)
- Execute o comando
“who_locked #stcp.m16_202”
para determinar que processo está usando o dispositivo.
stcp.m16_202:
Object is write locked by Barney_Rubble.Dev (login) on module
%vs#m1
executing stcp_calls.pm.