Skip to content
Home » Oracle » How to Resolve rtld: 0712-001 Symbol CreateIoCompletionPort was referenced

How to Resolve rtld: 0712-001 Symbol CreateIoCompletionPort was referenced

After restoring the operating system of an Oracle database server from tape, we saw something wrong.

Could not load program sqlplus

[oracle@test oracle]$ sqlplus / as sysdba
Could not load program sqlplus:
rtld: 0712-001 Symbol CreateIoCompletionPort was referenced
      from module /u01/app/oracle/product/19.0.0/db_1/lib/libttsh19.so(), but a                                                                                      runtime definition
            of the symbol was not found.
rtld: 0712-001 Symbol GetMultipleCompletionStatus was referenced
      from module /u01/app/oracle/product/19.0.0/db_1/lib/libttsh19.so(), but a                                                                                      runtime definition
            of the symbol was not found.
rtld: 0712-002 fatal error: exiting.

Cannot load program tnsping

Even tnsping program cannot be loaded.

[oracle@test oracle]$ tnsping orclpdb
exec(): 0509-036 Cannot load program tnsping because of the following errors:
        0509-130 Symbol resolution failed for tnsping because:
        0509-136   Symbol CreateIoCompletionPort (number 426) is not exported from
                   dependent module /unix.
        0509-136   Symbol GetMultipleCompletionStatus (number 427) is not exported from
                   dependent module /unix.
        0509-192 Examine .loader section symbols with the
                 'dump -Tv' command.

Input/Output Completion Port (IOCP)

As you may have noticed, the key issue comes from CreateIoCompletionPort and GetMultipleCompletionStatus, which are subroutines in AIX 7.2.

Let's see how IBM defines them.

  • CreateIoCompletionPort
  • Dequeues multiple completion packets from a specified I/O completion port.

  • GetMultipleCompletionStatus
  • Creates an I/O completion port with no associated file descriptor or associates an opened socket or file with an existing or newly created I/O completion port.

It seems that we may have some problem at Input/Output Completion Port (IOCP).

Solution

Let's check IOCP status.

[root@test /]# lsdev -c iocp
iocp0 Defined  I/O Completion Ports

As we can see, IOCP is not enabled. It should be enabled for an Oracle database server on AIX 7.2, but it's not.

To solve "Could not load program", we should enable AIX IOCP, just don't forget to reboot the database server in order to take it effect.

Leave a Reply

Your email address will not be published. Required fields are marked *