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

sábado, 16 de noviembre de 2013

Instalación de JDK 1.6

Para comenzar con la guía de instalación de Forms 11gR2 para Desarrollo, es necesario instalar el JDK que será utilizado por nuestro Servidor de Administración (Admin Server) que contendrá los servicios de Forms y Reports.

Nota: por ser versión de Release 2 no se muestran Servidores Administrados (Managed Servers) para los servicios de Forms y Reports como si se muestran para una versión de Release 1.

Para comenzar ejecutamos el instalador del JDK 1.6:



Se nos mostrara la ventana de Bienvenida, le damos al boton Next:



Ahora seleccionamos la ruta donde lo vamos instalar y luego Next, con lo que comenzara la isntalación:




Después se nos pregunta donde queremos instalar el JRE, seleccionamos la ruta y le damos al botón Next,con esto comenzara la instalación del JRE:



Por ultimo veremos la ventana de confirmación que se instalo correctamente el JDK:


Para cuando se realice la instalación del Weblogic nos haremos referencia a éste JDK instalado.

miércoles, 6 de noviembre de 2013

No existe paquete pdksh-5.2.14 al Instalar BD Oracle 11.2.0.3 en RHEL 6

En la validación de prerequisitos de la instalación de base de datos Oracle versión 11.2.0.3 se muestra que no se encuentra el paquete pdksh-5.2.14 en el sistema Red Hat EL 6:


Para evitar esa advertencia debemos hacer lo siguiente:

En donde tenemos el instalador debemos ir a la siguiente ruta:

<path>/database/stage/cvu/cv/admin

Estando ahí le sacamos un backup al archivO cvu_config

Editamos el archivo y cambiamos de:

CV_ASSUME_DISTID=OEL4

A lo siguiente:


CV_ASSUME_DISTID=OEL6

Ahora guardamos el archivo y volvemos iniciar el instalador que se encuentra en la ruta:

<path>/database


./runInstaller


Con éste cambio ya no veremos el mensaje de que el paquete no existe.

domingo, 9 de junio de 2013

Configurar Webutil para Oracle Forms 11g

Como desarrolladores en Oracle Forms 11g sabremos la importancia de la librería Webutil en nuestras formas, es por ello que daré a continuación los pasos necesarios para instalar exitosamente esta librería  la siguiente configuración aplica para ambientes de desarrollo como para ambientes de despliegue:


  1. Para la compilación de la librería webutil.pll es necesario tener un esquema de base de datos que contenga el paquete contenido en el archivo create_webutil_db.sql que se encuentra en el directorio ORACLE_HOME/forms es por ello que luego de la creación del esquema se deberá correr el archivo mencionado.

  2. Luego que ya tenemos nuestro esquema de base de datos configurado será necesario conseguir los archivos de jacob que utilizaremos para la configuración. Dependiendo el Release de nuestro Forms así sera el jacob que deberemos conseguir:

    1. Forms11gR1 11.1.1.X -> jacob 1.10.1 
      http://sourceforge.net/projects/jacob-project/files/jacob-project/1.10.1/jacob_1.10.1.zip/download

      Forms11gR2 11.1.2.X -> jacob 1.14.3
      http://sourceforge.net/projects/jacob-project/files/jacob-project/1.14.3/jacob-1.14.3.zip/download

  3. Descomprimimos el zip descargado y colocaremos el archivo jacob.jar en la carpeta de la ruta ORACLE_HOME/forms/java

  4. Ahora deberemos firmar el archivo jacob.jar para ello haremos: ORACLE_INSTANCE\bin\sign_webutil.bat ORACLE_HOME\forms\java\jacob.jar    

  5. Si el ambiente que estamos configurando es para desarrollo debemos asegurarnos que ORACLE_HOME/forms/java/frmwebutil.jar
     se encuentre en la variable FORMS_BUILDER_CLASSPATH 
    del regedit

  6. Ahora colocaremos el archivo jacob.dll que se encuentra en la carpeta que descomprimimos a su carpeta destino dependiendo del Release de la versión de Forms utilizada:

      FormsR1:
      jacob.dll ->  ORACLE_HOME/forms/webutil

      FormsR2:
      jacob-1.14.3-x86.dll ->  ORACLE_HOME/forms/webutil/win32
      jacob-1.14.3-x64.dll ->  ORACLE_HOME/forms/webutil/win64

  7. Luego agregamos ORACLE_HOME/forms/java/frmall.jar a la variable CLASSPATH que se encuentra en el archivo default.env

  8. Realizaremos la siguientes modificaciones a la configuración [webutil] del archivo formsweb.cfg:

      a. Agregamos los archivos frmwebutil.jar y jacob.jar al parámetro WebutilArchive. En algunas versiones este paso ya esta hecho.

      b. Especificamos que utilizaremos la forma webutil_demo.fmx como forma por defecto para la configuración de [webutil]

  9. Ahora descargamos la forma de webutil_demo desde el siguiente enlace:  http://www.oracle.com/technetwork/developer-tools/forms/webutil-090641.html  y colocamos la forma webutil_demo.fmb en la ruta ORACLE_HOME/forms
Artículo completo aquí.

lunes, 27 de mayo de 2013

Cambiar la IP de la Base de Datos de Oracle Document Capture 10g

Resulta que un día tuve que cambiar la IP de escucha del Listener de la Base de Datos que ocupo con el ODC, cuando intente iniciar sesión se me mostró el siguiente mensaje:


Login Failed: error 20036: Error 3706: Provider cannot be found. It may not be properly installed

El problema es que luego de este mensaje se cierra el ODC lo cual me impide modificar la IP que utilice para la configuración de este.

Ahora bien ¿Como cambio la IP de la Base de Datos a utilizar con ODC? pues bien solo hay que realizar los siguientes pasos:


  1. Abrimos el Regedit (Menú Inicio - Ejecutar - regedit)
  2. Luego buscamos la siguiente llave: HKEY_LOCAL_MACHINE/SOFTWARE/Captovation/eCapture/Imaging/Systems/eCapture
  3. Damos click derecho sobre el valor de "ConnectString" y renombramos dicho valor. Ejemplo "xConnectString"
  4. Por ultimo iniciamos el ODC y veremos que se nos mostrará nuevamente el dialogo de configuración donde deberemos colocar los nuevos valores de conexión a la Base de Datos.
Actualización: este procedimiento también puede ser utilizado si se cambio el password del esquema de Document Capture y al tratar de ingresar a éste nos aparece un erro como el siguiente:

Error Number: 16389

Error Description: ORA-01017: invalid username/password; logon denied

lunes, 28 de enero de 2013

Iniciar un Dominio Weblogic sin proporcionar interactivamente el Usuario y Password

En ocasiones debemos estar iniciando o parando nuestro AdminServer constantemente, ya sea porque estamos configurando algo y queremos aplicar dichos cambios o porque estamos en un ambiente de desarrollo etc.

En esas ocasiones, una buena practica es suministrar el usuario y el password de nuestro AdminServer en un archivo y que nuestro AdminServer lo coja cada vez que iniciamos nuestro servidor, así nos ahorramos el tener que estar digitando estos valores cada vez que lo iniciamos, para ello basta con realizar los siguientes pasos:

1. Navegamos al directorio del AdminServer de nuestro Dominio de Weblogic por ejemplo:

MW_HOME /user_projects/domains/<Domain_Name>/server/AdminServer/

2. Ubicados en la ruta anterior deberemos de ver una carpeta con nombre security, en caso de no existir podemos crearla; accedemos a la carpeta security.

3. Usando un editor de texto creamos un archivo denominado:  boot.properties  en el cual agregamos la siguiente información:

username=weblogic
password=welcome1

Donde deberemos reemplazar el usuario y el password según sea nuestro caso; ahora grabamos el archivo.

4. Por ultimo basta con iniciar nuestro servidor y notaremos que en la consola se lee nuestro archivo y a la vez se encripta por razones de seguridad, si vamos a ver luego el contenido de nuestro archivo creado en el paso anterior encontraremos algo parecido a esto:


# Generated by Configuration Wizard on Thu Nov 29 11:31:45 CST 2012
username={AES}ZOt+p4hwzH1n72R2ucvHpFa2kSGxry/5IWQBCecHbF0=
password={AES}Ule+gQPWyEhu+m9Y2HmJcVAEAp64TKgDzhM65hxEsB8=

Saludos.