I recently got a listener that refused to start on AIX. The message it returned was:
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-12555: TNS: Permission denied
TNS-12560: TNS: Protocol adapter error
TNS-00525: Insufficient privilege for operation
IBM/AIX RISC System/6000 Error: 1: Not owner
Checking the binaries and config files revealed nothing suspect – all were owned by Oracle. So I decided to try a truss:
truss -aefo result.txt lsnrctl start
Somewhere in the file I got my answer:
1785960: 1511613: access(“/tmp/.oracle/sEXTPROC0”, 0) = 0
1785960: 1511613: connext(3, 0x0FFFFFFFFFFF77A0, 106) Err#79 ECONNREFUSED
1785960: 1511613: access(“/tmp/.oracle/sEXTPROC0”, 0) = 0
1785960: 1511613: _poll(0x0000000000000000, 0, 100) = 0
1785960: 1511613: close(3) = 0
1785960: 1511613: socket(1, 1, 0) = 3
1785960: 1511613: connext(3, 0x0FFFFFFFFFFF77A0, 106) Err#79 ECONNREFUSED
1785960: 1511613: access(“/tmp/.oracle/sEXTPROC0”, 0) = 0
I checked in /tmp/.oracle/ and some files were owned by root (apparently someone tried to start the listener as root):
srwxrwxrwx 1 oracle dba 0 2011-05-27 16:46 s#200950.1
srwxrwxrwx 1 root system 0 2011-06-29 10:25 sEXTPROC0
srwxrwxrwx 1 root system 0 2011-06-29 10:25 s#1642742.1
I removed the two files and was able to start the listener.