jueves, 15 de marzo de 2018

Configuración de GridLink Data source en Oracle Weblogic

Oracle provee de 2 tipos de Data source para el manejo de las conexiones hacia Oracle RAC: el Multi Data Source y el mas reciente Active GridLink para Oracle RAC introducido desde la versión 10.3.4 de Weblogic. De estas 2 opciones,GridLink sobresale por razones administrativas, fácil gestión, respuesta a eventos del FAN para proveer Fast Connection Failover y que obtiene información en tiempo real del RAC por medio de ONS.

Ahora vamos a ver los pasos para crear un Data Source de tipo GridLink:

Para este ejemplo se asume un RAC de 2 nodos y que la versión de Weblogic es 12c.

1. Ingresar a la consola de Weblogic y expandir en el árbol de la izquierda el nodo de Servicios e ingresar a la opción de Data Sources.

2. Presiona el botón Nuevo y seleccionar de la lista "GridLink Datasource".

3. En la ventana que aparece a continuación se debe especificar el nombre del Data source, el nombre de JNDI, Next:


4. Desmarcamos la opción de soporte de Transacciones globales, Next:


5. Seleccionamos la opción de ingresar completamente la URL JDBC, Next:

Continuar leyendo aquí.


viernes, 2 de marzo de 2018

Hola Mundo en Oracle BPEL 12c



Oracle BPEL como parte de los componentes que nos provee Oracle SOA Suite, nos permite realizar la orquestación de servicios como un flujo de proceso.

Por lo anterior BPEL nos provee de beneficios como la reutilización de servicios, aplicaciones más flexibles a los cambios que requiera la organización, reducción de la complejidad y reducción de precios de una integración.

Vamos a ver a continuación como se hace un crea un proceso BPEL, haciendo el conocido Hola Mundo.

Primero vamos abrir JDeveloper 12c, la ultima versión disponible 12.2.1.2 y vamos a crear una nueva aplicación, esta será de tipo SOA:



A ésta le pondremos un nombre, así como al proyecto:



Le pondremos nombre al Compuesto y vamos a seleccionar una aplicación Compuesta con un proceso BPEL:


Luego de darle al botón Finish aparecerá la ventana donde configuraremos nuestro proceso BPEL, vamos a configurar el nombre, el tipo, los parámetros de entrada y salida de nuestro proceso. Para los parámetros de entrada y salida vamos a utilizar los siguientes XSD de ejemplo.

Continuar leyendo aquí.


miércoles, 28 de febrero de 2018

Error Symbol CreateIoCompletionPort was referenced en AIX

Al trabajar con productos Oracle sobre servidores AIX, puede darse que al tratar de iniciar un OHS o de ver un formulario de Oracle Forms, puede que se genere alguno de los siguientes errores:

OHS:

<2017-12-29 14:52:03> <INFO> <OHS-4018> <Starting server ohs1>
<2017-12-29 14:52:03> <INFO> <OHS-0> <Running /u01/app/oracle/product/fmw/ohs/bin/launch httpd -DOHS_MPM_WORKER -d /u01/app/oracle/product/fmw/user_projects/domains/forms_domain/
config/fmwconfig/components/OHS/instances/ohs1 -k start -f /u01/app/oracle/product/fmw/user_projects/domains/forms_domain/config/fmwconfig/components/OHS/instances/ohs1/httpd.conf>
<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> < 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-002 fatal error: exiting.>
<2017-12-29 14:52:04> <SEVERE> <OHS-0> </u01/app/oracle/product/fmw/ohs/bin/launch httpd -DOHS_MPM_WORKER -d /u01/app/oracle/product/fmw/user_projects/domains/forms_domain/config
/fmwconfig/components/OHS/instances/ohs1 -k start -f /u01/app/oracle/product/fmw/user_projects/domains/forms_domain/config/fmwconfig/components/OHS/instances/ohs1/httpd.conf: exit st
atus = 255>
<2017-12-29 14:52:04> <INFO> <OHS-4005> <Check the instance log file for more information: /u01/app/oracle/product/fmw/user_projects/domains/forms_domain/servers/ohs1/logs/ohs1.log>
<2017-12-29 14:52:04> <SEVERE> <OHS-0> <Failed to start the server ohs1>


Causa:

IOCP se encuentra configurado con su valor por defecto “Defined” y el producto Oracle requiere que esté configurado como “Available”.

Solución:

Primero verificamos el valor actual del IOCP en nuestro sistema, para ello podemos ejecutar el siguiente comando:

Continua leyendo aquí.

lunes, 12 de febrero de 2018

Configurar Webutil para Oracle Forms 12c

Una de las librerías más importantes para todo desarrollador de Oracle Forms es la de Webutil, librería que nos ha proporcionado de funcionalidades para la interacción con el usuario final desde que el modo cliente/servidor quedo atrás. 

Ahora nos encontramos en la versión 12c de las tecnologías Oracle y es por ello que en esta ocasión detallaré los pasos para configurar la librería de Webutil para la versión 12c:

1.  Primero hay que crear un esquema en la base de datos para poder posteriormente compilar la librería webutil.pll. Contra este esquema es necesario ejecutar el archivo create_webutil_db.sql que se encuentra en el directorio $ORACLE_HOME/forms

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. Este se puede descargar desde aquí.

Nota: La única versión soportada para Forms 12c (12.2.1.0.0) de JACOB es la 1.18-M2.

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

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

5.  Ahora colocaremos los archivos dll de JACOB que vienen en el zip descargado en las carpetas respectivas

jacob-1.18-M2-x86.dll  ->  ORACLE_HOME/forms/webutil/win32
jacob-1.18-M2-x64.dll  ->  ORACLE_HOME/forms/webutil/win64

Nota: No cambiar el nombre de los archivos dll ya que con estos nombres se hace referencia en el archivo webutil.cfg

6.  Realizaremos la siguientes modificaciones a la configuración [webutil] del archivo formsweb.cfg, esto se puede hacer manualmente o a través del EM:

a. Verificamos que los archivos frmwebutil.jar y jacob.jar se encuentren en el 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]

7.  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

8.  Ahora compilaremos la librería webutil así como la forma que recién descargamos, para ello desde linea de comandos ejecutaremos:

Nota: Utilizar para compilar la librería webutil.pll el esquema que cuenta con el paquete mencionado en el paso 1.

frmcmp module=webutil.pll module_type=library userid=scott/tiger@orcl compile_all=yes
frmcmp module=webutil_demo.fmb module_type=form userid=scott/tiger@orcl compile_all=yes


9.  Por ultimo probaremos el funcionamiento de la librería webutil, para ello en el navegador pondremos:

http://machine.domain:port/forms/frmservlet?config=webutil

Funcionalidad de los tabs "Client Info" y "About" deben funcionar sin ningún problema. Si estos tabs no funcionan se debe revisar que los pasos anteriores se hayan seguido correctamente:



miércoles, 24 de enero de 2018

Weblogic iniciado accidentalmente como root (solución)

Si en alguna ocasión accidentalmente iniciáramos nuestro Weblogic como root, notaremos que luego al tratar de iniciarlo con el usuario dueño de la instalación (comúnmente oracle) éste no inicia y al revisar la instalación notaremos que ciertos archivos de configuración ahora tienen como dueño a root.

¿Qué podemos hacer?

Bueno lo que podemos hacer es realizar una búsqueda de los archivos que ahora están como dueño root para luego cambiar al dueño original de la instalación.

Para ver que archivos han sido afectados se puede hacer lo siguiente:

1. Estar conectado como root
2. Ejecutar el siguiente comando para ver que archivos están afectados:

find <directorio> -user root
Nota: Reemplazar el directorio donde realizaremos la búsqueda.

Luego de haber ejecutado el comando anterior ya tenemos una idea de todo lo que está afectado.

Ahora podemos ejecutar el siguiente comando para regresar los archivos afectado a su dueño original:


chown -R oracle:oinstall *
Debemos reemplazar el usuario y grupo correspondiente a la instalación afectada.

Con el comando anterior se cambia el usuario y grupo de todos los archivos de manera recursiva desde la carpeta donde  lo ejecutemos.

Ahora ya podemos subir nuevamente nuestro servidor!





lunes, 15 de enero de 2018

FRM-91500 en Linux/Unix

Si estamos tratando de compilar una librería o forma en Linux/Unix y obtenemos como resultado el siguiente error:

FRM-91500: Unable to start/complete the build.

Debemos validar que tengamos bien configurados el entorno gráfico si lo estamos haciendo desde una terminal.

Podemos validar haciendo un simple xclock u otro comando que sepamos que nos abrirá algo gráfico.

Si no hemos configurado la variable DISPLAY pues un ejemplo es:

export DISPLAY=192.168.30.190:0.0

Donde se deberá reemplazar con la IP y escritorio correspondiente.


viernes, 27 de octubre de 2017

JBoss EAP 6: Request header is too large

Si al probar una aplicación Java en un Servidor JBoss EAP 6 nos aparece un mensaje como el siguiente:

12:12:27,174 DEBUG [org.apache.coyote.http11] (http-127.0.0.1:8080-3) JBWEB003070: Error parsing HTTP request header: java.lang.IllegalArgumentException: JBWEB002015: Request header is too large 
   at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:741) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at org.apache.coyote.http11.InternalInputBuffer.parseHeader(InternalInputBuffer.java:610) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at org.apache.coyote.http11.InternalInputBuffer.parseHeaders(InternalInputBuffer.java:507) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:656) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1] 
   at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_144]

Es porque el tamaño de la solicitud que enviamos es mucho mayor que el tamaño permitido, que por defecto de 8 KB.

Continuar leyendo aquí.