Al trabajar con productos Oracle sobre servidores AIX puede ocurrir que, al arrancar un OHS o al abrir un formulario de Oracle Forms, el proceso muera antes de llegar a levantar. El log no habla de configuración ni de permisos, sino de un símbolo no resuelto en tiempo de carga: el enlazador dinámico de AIX no encuentra CreateIoCompletionPort. La causa no está en Oracle, sino en un dispositivo del sistema operativo que viene sin activar.
El error
0712-001 · 0509-036 · FRM-93546 · FRM-93552
Al arrancar el OHS:
<2017-12-29 14:52:03> <INFO> <OHS-4018> <Starting server ohs1>
<2017-12-29 14:52:04> <INFO> <OHS-0> <exec(): 0509-036 Cannot load program httpd because of the following errors:>
<2017-12-29 14:52:04> <INFO> <OHS-0> <rtld: 0712-001 Symbol CreateIoCompletionPort was referenced>
<2017-12-29 14:52:04> <INFO> <OHS-0> < from module /u01/app/oracle/product/fmw/wlserver/../lib/libclntsh.so(), but a runtime definition>
<2017-12-29 14:52:04> <INFO> <OHS-0> < of the symbol was not found.>
<2017-12-29 14:52:04> <INFO> <OHS-0> <rtld: 0712-001 Symbol GetMultipleCompletionStatus was referenced>
...
<2017-12-29 14:52:04> <INFO> <OHS-0> <rtld: 0712-002 fatal error: exiting.>
<2017-12-29 14:52:04> <SEVERE> <OHS-0> <Failed to start the server ohs1>Y en el log de Forms, con el mismo símbolo pero cargando frmweb en lugar de httpd:
[2017-12-29T11:46:52.013-06:00] [WLS_FORMS] [ERROR] [FRM-93546] [oracle.forms.servlet] [tid: 171]
[SRC_METHOD: getPidAndPort] external message from runtime process:
exec(): 0509-036 Cannot load program frmweb because of the following errors:
[...] external message from runtime process: rtld: 0712-001 Symbol CreateIoCompletionPort was referenced
[...] external message from runtime process: from module /u01/app/oracle/product/fmw/lib/libclntsh.so(), but a runtime definition
[...] external message from runtime process: of the symbol was not found.
[...] external message from runtime process: rtld: 0712-001 Symbol GetMultipleCompletionStatus was referencedEl usuario final no ve nada de esto: solo recibe un aviso genérico de que el proceso de runtime terminó de forma anormal.

La causa
Los símbolos CreateIoCompletionPort y GetMultipleCompletionStatus los aporta el subsistema IOCP (I/O Completion Ports) de AIX, del que depende libclntsh.so, la librería cliente de Oracle. En una instalación limpia el dispositivo iocp0 queda en estado Defined, y los productos Oracle necesitan que esté en Available. Mientras siga en Defined, el enlazador no encuentra los símbolos y cualquier binario que dependa de esa librería —httpd, frmweb— falla al cargar.
La solución
Comprueba primero en qué estado está el IOCP:
-bash-4.2$ lsdev -c iocp
iocp0 Defined I/O Completion PortsConfirmado Defined, hay que cambiarlo a Available desde smitty. Los pasos siguientes se ejecutan como root:
# smitty iocp- Selecciona Change / Show Characteristics of I/O Completion Ports y pulsa Enter.
- Con el tabulador, cambia el campo STATE to be configured at system restart a available y pulsa Enter.
- Comprueba que el comando termina en OK y sal de smitty con F10.
- Reinicia el servidor AIX para que el cambio tome efecto:
shutdown -Fr.

smitty iocp.

iocp0 changed. El aviso lo dice explícitamente: el cambio no aplica hasta reiniciar.Resultado
Tras el reinicio, vuelve a consultar el estado del dispositivo:
-bash-4.2$ lsdev -c iocp
iocp0 Available I/O Completion PortsCon el IOCP en Available, los símbolos se resuelven y tanto el OHS como los formularios de Forms arrancan con normalidad. Conviene dejar esta verificación dentro del checklist de preparación de cualquier servidor AIX que vaya a alojar productos Oracle: es un requisito del sistema operativo, no algo que la instalación de Oracle configure por ti.
