Problem Description:

Today I performed a new installation of Oracle on IBM AIX 7.1 in a single instance environment. After a successful Oracle Software instllation I tried to execute "dbca" utility (Database Configuration Assistant) in order to create the database and I recevied the following error:


$ ./dbca
UnsatisfiedLinkError exception loading native library: njni12
java.lang.UnsatisfiedLinkError: njni12 (rtld: 0712-001 Symbol CreateIoCompletionPort was referenced
from module /oravl01/oracle/app/product/, but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol GetMultipleCompletionStatus was referenced
from module /oravl01/oracle/app/product/, but a runtime definition
of the symbol was not found.
rtld: 0712-002 fatal error: exiting.)
Exception in thread "main" java.lang.UnsatisfiedLinkError: oracle/net/common/NetGetEnv.get(Ljava/lang/String;)Ljava/lang/String;
at Source)
at Source)
at<init>(Unknown Source)
at oracle.sysman.assistants.util.NetworkUtils.<init>(
at oracle.sysman.assistants.util.step.StepContext.<init>(
at oracle.sysman.assistants.dbca.backend.Host.<init>(
at oracle.sysman.assistants.dbca.backend.Host.<init>(
at oracle.sysman.assistants.dbca.wizard.UIHost.<init>(
at oracle.sysman.assistants.dbca.wizard.InteractiveHost.getInstance(
at oracle.sysman.assistants.dbca.Dbca.getHost(
at oracle.sysman.assistants.dbca.Dbca.execute(
at oracle.sysman.assistants.dbca.Dbca.main(
$ smit aio
Warning: Missing charsets in String to FontSet conversion
Warning: Cannot convert string "-dt-interface system-medium-r-normal-l*-*-*-*-*-*-*-*" to type FontSet


After an investigation in MOS (My Oracle Support) I found the following article:

AIX Installation Fails with "rtld: 0712-001 Symbol CreateIoCompletionPort was referenced " (Doc ID 1949184.1)

What I found in the article is that this issue is a known issue for Oracle in IBM AIX on POWER Systems (64-bit).



The solution, as described in Doc ID 1949184.1 is actually a very simple one, all you need to do is enable to IOCP (I/O Completion Ports). The steps to do that are:



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.
Restart the machine


Run the lsdev command to confirm the IOCP status is set to Available:

$ lsdev | grep iocp
iocp0 Available I/O Completion Ports


Relink Oracle Home. In order to do that, connect with the Oracle software owner user and then:
  1. Set the ORACLE_HOME environment variable
  2. Execute $ORACLE_HOME/bin/relink all
That's it ! Now the "dbca" and "dbua" runs successfuly