martes, 31 de diciembre de 2013

Configurar Webutil para Oracle Application Server 10g

A continuación detallo los pasos necesarios para la configuración de la librería Webutil para un servidor de aplicaciones Oracle Application Server 10g (OAS).
  1. Obtener la versión correcta de Webutil:

  2. Es importante mencionar que la versión de Webutil debe ser igual que la versión de Forms, por ello si tenemos un OAS con versión 10.1.2.3 la versión de Webutil debe ser 10.1.2.3. Es por ello que antes de configurar el Webutil recomiendo que ya se encuentre el servidor parchado a la versión 10.1.2.3 para evitar en un futuro tener que volver a configurar.

    En el OAS por defecto el Webutil no viene integrado como un componente, es por ello que debemos obtenerlo de una instalación de "Developer Suit" el cual debe ser la misma versión que nuestro OAS.

  3. Obtener la versión correcta de Jacob
  4. Si la versión es 10.1.2.0.2 o 10.1.2.2 debes usar el Jacob 1.8
    Si la versión es 10.1.2.3.X debes usar el Jacob 1.10.1

  5. Creamos el directorio "webutil" 
  6. %ORACLE_HOME%\forms\webutil

  7. Copiamos los siguientes archivos a la ruta %ORACLE_HOME%\forms\webutil
  8. jacob.dll --> incluidos en  el jacob que hayamos  descargado según versión requerida.
    d2kwut60.dll --> obtenerlo del Developer Suite en la ruta %ORACLE_HOME%\forms\webutil
    JNIsharedstubs.dll --> obtenerlo del Developer Suite en la ruta %ORACLE_HOME%\forms\webutil
    sign_webutil.bat --> obtenerlo del Developer Suite en la ruta %ORACLE_HOME%\forms\webutil

  9. Copiar el archivo jacob.jar del jacob descargado a la ruta %ORACLE_HOME%\forms\java

  10. Si hemos aplicado el parche 9593176 o 9282569 o 11710576 no debemos realizar este paso, pues ya el frmwebutil.jar se encuentra en la ruta correcta.
  11. Copiamos el frmwebutil.jar que se encuentra en la ruta %ORACLE_HOME%\forms\java del Developer Suite a la misma ruta del OAS:  %ORACLE_HOME%\forms\java

    Nota: Si estamos usando la versión 10.1.2.0.2 se deberá aplicar el parche 5017052 pues éste agrega unos archivos javascript así como modifica los archivos base para el servlet de Forms.

  12. Firmamos el jacob:
  13. Desde linea de comando o la terminal hacemos lo siguiente:
    - Nos movemos a la ruta: %ORACLE_HOME%\forms\java
    - Luego configuramos la variable de ambiente PATH: set PATH=%ORACLE_HOME%\jdk\bin;%PATH%
    - Ejecutamos el siguiente comando:
    %ORACLE_HOME%\forms\webutil\sign_webutil.bat %ORACLE_HOME%\forms\java\jacob.jar




  14. Verificamos que en la ruta %ORACLE_HOME%\forms\server se encuentre el archivo webutil.cfg, de lo contrario lo copiamos de la instalación del Developer Suite.

  15. La siguiente variable debe estar definida en el archivo %ORACLE_HOME%\forms\server\default.env
  16. WEBUTIL_CONFIG=<ORACLE_HOME>\forms\server\webutil.cfg

  17. Los siguientes jars deben ser incluidos a la variable CLASSPATH del archivo %ORACLE_HOME%\forms\server\default.env
  18. %ORACLE_HOME%\forms\java\frmall.jar;%ORACLE_HOME%\forms\java\frmwebutil.jar;%ORACLE_HOME%\forms\java\jacob.jar;%ORACLE_HOME%\jdk\jre\lib\rt.jar




  19. El archivo formsweb.cfg debe contener la siguiente configuración:
  20. [webutil]
    WebUtilArchive=frmwebutil.jar,jacob.jar
    WebUtilLogging=off
    WebUtilLoggingDetail=normal
    WebUtilErrorMode=Alert
    WebUtilDispatchMonitorInterval=5
    WebUtilTrustInternal=true
    WebUtilMaxTransferSize=16384
    baseHTMLjinitiator=webutiljpi.htm
    baseHTMLjpi=webutiljpi.htm
    archive=frmall.jar
    lookAndFeel=oracle




  21. El siguiente directorio virtual debe estar definido en el archivo %ORACLE_HOME%\forms\server\forms.conf:
  22. AliasMatch ^/forms/webutil/(..*) "%ORACLE_HOME%/forms/webutil/$1"




  23. Creamos un usuario de base de datos "webutil" y ejecutamos en él el script que se encuentre en el Developer Suite:
  24. %ORACLE_HOME%\forms\create_webutil_db.sql




  25. Compilamos la librería webutil.pll para obtener su correspondiente archivo compilado plx y lo movemos a una ruta definida en el FORMS_PATH como %ORACLE_HOME%\forms
También podemos compilar la forma de webutil_demo.fmb en caso de tenerla y copiamos su respectivo archivo compilado fmx en la misma ruta %ORACLE_HOME%\forms.

Por ultimo ejecutamos la forma desde el navegador para verificar que todo este bien:

http://host:port/forms/frmservlet?config=webutil&form=webutil_demo&userid=webutil/webutil@db

miércoles, 25 de diciembre de 2013

java.lang.UnsatisfiedLinkError: Can't find library pass (libpass.so or .so) in sun.boot.library.path or java.library.path

Al tratar de cambiar el Hostname o IP de nuestro servidor a través del comando chgiphost.sh puede aparecer el siguiente error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't find library pass (libpass.so or .so) in sun.boot.library.path or java.library.path
sun.boot.library.path=<path_to_oracle_home>/jdk/jre/bin
java.library.path=<path_to_oracle_home>/jdk/bin:<path_to_oracle_home>/jdk/jre/bin/classic:<path_to_oracle_home>/jdk/jre/bin:<path_to_oracle_home>/bin:<path_to_oracle_home>/lib32:<path_to_oracle_home>/chgip/lib:<path_to_oracle_home>/jdk/jre/bin/sovvm:/usr/lib
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2044)
at java.lang.Runtime.loadLibrary0(Runtime.java:824)
at java.lang.System.loadLibrary(System.java:910)
at oracle.chgip.InteractiveInterfaceManager.<clinit>(InteractiveInterfaceManager.java:72)
at oracle.chgip.InterfaceManager.createInterfaceManager(InterfaceManager.java:133)
at oracle.chgip.InterfaceManager.getInterfaceManager(InterfaceManager.java:113)
at oracle.chgip.Session.<init>(Session.java:81)
at oracle.chgip.StartUp.main(StartUp.java:250)
+ exit 1


Éste error es debido a que para el patchset 10.1.2.3 se ha incluido una versión equivocada para el archivo libpass.so, para su solución se deben seguir los siguiente pasos:


  1. Si el sistema afectado es Linux bajar el parche 7000666, si es AIX bajar el parche número 7685739.
  2. Instalamos el parche con OPatch
  3. Ejecutamos de nuevo el comando chgiphost 

librwu.so: libXm.so.2: cannot open shared object file: No such file or directory

Al tratar de iniciar los servicios de Forms/Reports para AS10gR2 en Red Hat EL 5 nos encontramos con el siguiente error en el log de opmn:


java.lang.UnsatisfiedLinkError: $ORACLE_HOME/lib/librwu.so: libXm.so.2: cannot open shared object file: No such file or directory

Ésto es debido a que la versión del paquete openmotif no es la correcta, para ello podemos bajar el openmotif correcto para ésta versión del siguiente enlace:


Para instalarlo:

# rpm -ivh openmotif21-2.1.30-11.EL5.i386.rpm

Con este cambio se iniciaran sin problema el servicio.

sábado, 21 de diciembre de 2013

Certificación de Oracle Forms / Reports Builder en Windows 8

Bueno, ¿cuáles son las versiones certificadas/soportadas de Oracle Forms/Reports Builder 11g para instalar sobre Windows 8 (32/64 bits)?

Hasta la fecha, no hay una versión que se encuentre certificada/soportada de Forms/Reports Builder sobre Windows 8, como lo hace constar la nota número 1578459.1 del sitio de soporte de Oracle, por lo que se insta a que todo el desarrollo se realice sobre sistemas operativos certificados como Windows 7.

En el siguiente enlace encontrarán la matriz de certificación para mayor información:
Matriz FMW 11g