When you perform Oracle client/database installation on the IBM AIX platform, you may encounter below issue post installation, where is upon running any oracle executable, like sqlplus, tnsping, sqlldr, you will encounter error exec(): 0509-036 Cannot load program .
$ sqlplus
exec(): 0509-036 Cannot load program sqlplus because of the following errors:
0509-130 Symbol resolution failed for /app01/Oracle/product/12.2.0/client_1/lib/libons.so because:
0509-136 Symbol CreateIoCompletionPort (number 93) is not exported from
dependent module /unix.
0509-136 Symbol GetQueuedCompletionStatus (number 94) is not exported from
dependent module /unix.
0509-136 Symbol ReadFile (number 95) is not exported from
dependent module /unix.
0509-136 Symbol WriteFile (number 96) is not exported from
dependent module /unix.
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
$ tnsping
exec(): 0509-036 Cannot load program tnsping because of the following errors:
0509-130 Symbol resolution failed for /app01/Oracle/product/12.2.0/client_1/lib/libons.so because:
0509-136 Symbol CreateIoCompletionPort (number 93) is not exported from
dependent module /unix.
0509-136 Symbol GetQueuedCompletionStatus (number 94) is not exported from
dependent module /unix.
0509-136 Symbol ReadFile (number 95) is not exported from
dependent module /unix.
0509-136 Symbol WriteFile (number 96) is not exported from
dependent module /unix.
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
$ lsdev | grep iocp
iocp0 Defined I/O Completion Ports
This is because on AIX, IOCP parameter is not properly set as displayed in above output in red.
Please follow Oracle Support document:
12.2 AIX 7.2: EXEC(): 0509-036 CANNOT LOAD PROGRAM KFOD.BIN DURING GRID INSTALL (Doc ID 2288514.1)
IOCP IBM AIX parameter needs to be changed from “defined” to “available”, this change is required root privilege and it's suggested that this change is implemented by System Admin on Production environment, but for lower environment with less risk you can modify the same with root privilege as mentioned below:
1. Log in as root and run the following command:
# smitty iocp
Select Change / Show Characteristics of I/O Completion Ports.
Change configured state at system restart from Defined to Available.
2. Reboot server.
3. Run the lsdev command to confirm the IOCP status is set to Available:
$ lsdev | grep iocp
iocp0 Available I/O Completion Ports
Post this change and reboot of the server, oracle executables will work without any issue.
Very good. Thanks
ReplyDeleteExcelent. Thanks Work perfect.
ReplyDeletespend almost a month on this issue, now resolved after reading this blog... Millions thanks
ReplyDelete