Archivo de la categoría: Jdeveloper

Database Adapter bpel 11g

Después de batallar un rato logré hacer una inserción en mi db con bpel 11g.

Digo batallar por que me tope con un par de errores que me dieron lata por un ratillo. (Los menciono al final)

Crear una nueva aplicación

2. En el proyecto siguiente crearemos el esquema:

Creamos un esquema sencillo de 3 campos de tipo stringAhora creamos un proyecto de Tipo SOA con composite BPEL

En la ventana de BPEL buscamos nuestro esquema creado anteriormente com Input y como Salida

En el bpel agregamos un assign con los valores de Input y output

Ahora viene la parte del negocio:

En mi navegador de Db tengo una base de datos con 1 tabla que voy a utilizar: TEMP_REPORTBPEL con 3 campos como se ve en la imagen:

Regresando al BPEL agrego un database adapter y busco mi conexión mencionada. Al seleccionarla me especifica el JNDI.

En el tipo de operación selecciono INSERT or UPDATE y selecciono los campos

Ahora agregamos un invoke  y lo vinculamos con el partner link que acabamos de agregar

El proyecto debe de verse de esta forma:

Ahora agregamosun transform entre el assign y el invoke. En el target seleccionamos la variable del Invoke y creamos un mapper file.

Y quedamos así:

Guardamos nuestro proyecto y queda listo.

Ahora tenemos que hacer unas configuraciones en el Weblogic.

Creamos un datasource.

Nos vamos a la consola de Weblogic -JDBC -Data sources y creamos una nueva.

El JNDI name debe ser el sufijo de la conexion de nuestro database adapter en la parte de JNDI.

El driver de conexion debe de ser XA y colocar una propiedad de TIME OUT como se muestra en la imagen

Una ves que se creó el JDBC ahora vamos a agregar unas propiedades a nuesttro database adapter.

Vamos a Deployments, y búscamos el DBAdapter

Damos click en configurations y luego en Outbound Connection pools y creamos una nueva instancia con los siguientes parametros

Aqui vinculamos el JDBC que creamos anteriormente con nuestro DBAdapter

Ahora probamos nuestro proyecto en el Enterprise manager de SOA, buscamos nuestro proyecto, le damos probar, colocamos los valores y verificamos que funcione y que inserte los valores:

Ojo: Si no se realiza bien la parte de configuración de JDBC y de JNDI de configuracion del DBAdapter puede venir unos errores en el bpel y en la consola del weblogic como los soguientes:

Error: (Este error se muestra en la auditoria del bpel y se relaciona con la falta de configuracion del DB Adapter)

BINDING.JCA-12510 JCA Resource Adapter location error

Error: (Este error se relaciona con que el dbadapter no esta apuntando a un tipo de servicio XA)

orabpel 05002

Para mas información verificar en OTN:

Ciclos de adaptadores

SOA 11 (¿Liberado?) Configuracion

Hace unos días se liberó por fin la versión 11 del jdeveloper después de 4 versiones de Visualizción técnica.

Emocionado descargo la nueva version (11.1) y comienzo a revisar todo.. todo se ve muy bien y estas son las diferencias que encontre a simple vista:

Se realiza una instalación guiada (antes solo se descomprimía y listo para usar)

Una gran diferencia el cambio del OC4J por el WEBLOGIC que le da un toque diferente al servidor de aplicaciones

Continué revisando y dije… “vamos a chambear un rato con soa…” y sopas…. No encontré por ningún lado como configurar soa.. (aun cuando en la versión 4 que fué la ultima para la versión final ya venía muy avanzada la parte de soa) y seguí buscando.. y buscando y nada. Resulta que en esta versión liberada NO HAY SOA.

Entonces tuve que seguir con mi versión 11g tp4 y a continuación describo como hacer funcionar el soa.

Primero descargar el jdev 11 tp4 Descargar de aqui si no lo tienen

Ahora vienen unos “detalles” muy importantes para que la configuración sea exitosa.

1. Descomprimir el jdeveloper en una ubicación que no tenga espacions!!! Esto es muy importante.

2. Antes de abrir el jdeveloper se deben declarar unas variables y configurar un archivo (En ese orden de preferencia)

La variables son:

JAVA_HOME=Directorio del JDK (En este caso utilizamos el 1.5 del jdeveloper)

JOH= Directorio donde se descomprimió el jdeveloper

JDEV_USER_DIR= Directorio donde se creará las configuraciones del Jdeveloper (De preferencia colocarlo en el mismo directorio del Jdeveloper

BAM_OC4J_HOME=Directorio del BAM

variables

variables

3.  Ahora vamos a configurar un archivo. Si este archivo no se configura no se podrá configurar el SOA y tiene que ser antes de abrir el jdeveloper por que se guarda la configuración y aunque se configure despues el archivo el jdev no va a realizar bien la configuración.

El archivo es: <Directorio_Jdeveloper>\jdev\bin\jdev.conf

jdev-conf

jdev-conf

Una vez abierto desabilitamos la opcion: “addVmOption” al final del documento.

jdev

jdev

4. Ahora vamos a crear los esquemas del soa en la base de datos. La base de datos que utilizo es una XE por lo que necesito cofigurar unos parametros:

configurar db xe

configurar db xe

5. Ahora creamos los esquemas del JDEV_SOAINFRA (Que es el usuario con el que el Jdeveloper y el soa van a trabajar)

Para eso nos vamos a una carpeta dentro del directorio del Jdeveloper: <JDEVELOPER_HOME>\rcu\integration\soainfra\sql

una vez alli entramos al sqlplus y creamos los siguientes esquemas

Esquemas SOA

Esquemas SOA

Y ya tenemos configurado nuestro entorno para que el jdeveloper comienze a hacer su trámite de configuración.

6. Ahora abrimos el jdeveloper (Nos preguntara el rol: default, si queremos migrar de version: No)

Hay que verificar en sea el jdeveloper version tp4

TP4

TP4

7. Vamos al menu “tools” – preferences – run y damos click “Integrated OC4J”

OC4J

OC4J

8 Ahora vamos a configurar el soa: Menu tools – Configure soa (Si no hubiesemos configurado el archivo del punto 3 no veriamos este menu)

Verificamos los datos de conexion de nuestra base de datos damos click en test

Y luego le damos start

1Si todo se hizo de acuerdo a las instrucciones (Sin tomar en cuenta la instalacion de Db) nos debe mostrar el siguiente msj y con eso queda configurado y listo el soa 11.. a crear servicios!!!!!

Succesful!!!

Succesful!!!

Conexion SQL 2000

Una persona me comentó con el mismo jar de SQL 2005 logró la conexión desde jdeveloper para SQL 200, pero cuando intentóhacer un deploy de un preyecto bpel le marcó una serie de errores. El sql 2000 utiliza una conexión JDBC con 3 jars diferentes a los del SQL 2005.

Ese instalador (por que es un instalador que trae los jars) lo pueden descargar de aqui:

JDBC SQL 2000

Y para hacer la conexión desde jdev vamos a hacer lo siguiente:

1. Instalamos el JDBC de microsoft.

JDBC Dir

JDBC Dir

2. Abrimos Jdeveloper (en mi caso 10.3.2) y nos vamos a conexion y Database click derecho y seleccionamos “New Database Connection”

3. En el paso uno le colocamos un nombre “SQL2000Con” y seleccionamos tipo de Conexion: Third Party JDBC Driver

JDBCSQL

JDBCSQL

4. En paso 2 colocamos ahora el nombre del administrador de SQL 2000 (sa) y el password y damos click en deploy password.

5. En el paso 3 viene lo bueno: Damos click en NEW y colocamos en la nueva ventana: com.microsoft.jdbc.sqlserver.SQLServerDriver      y damos click en browse (Ver imagen de abajo)

JavaClass

JavaClass

6. Ahora vamos a agregar una nueva librería con los jar del JDBC de SQL2000. Seleccionamos “user” como directorio destino y damos click en NEW, luego le ponermos nombre a la librería “SQL2000JDBC” y damos click en classpath y damos click en “Add entry” y buscamos y seleccionamos los 3 jar que vienen en Lib dentro del direcctorio del JDBC de microsotf y listo. Damos ok hasta regresar salir de las librerias.

LibDir

LibDir

 7. Por ultimo colocamos la url de conexión de nuestra base de datos:

jdbc:microsoft:sqlserver://<db-host>:1433;SelectMethod=cursor;DatabaseName=[db-name]

y listo testeamos la conexión y si funciona con eso solucionamos nuestro problema del Bpel.

Escribir un archivo con BPEL SOA suite

(COntinuacion del proyecto BPEL es necesario haber echo realizado esa estapa si no se ha echo dar click en el siguiente link)

Crear proyecto Oracle BPEL SOA (Esquemas y variables)

Lo primero que vamos a hacer es seleccionar en el lado derecho de nuestro Jdeveloper la paleta de componentes las opción de servicios.

Ahora buscaremos el componente Partner Link lo seleccionamos y lo arastramos hacia el contenedor visual del diagrama bpel. Como es un servicio el unico lugar donde podemos colocarlo es en la banda del lado derecho o izquierdo pero no en el centro donde solo van las actividades.

Servicios paleta componentes

Una vez que soltamos el PartnerLink donde corresponde nos aparece una ventana de propiedades del mismo y damos click en la figura numero 3 (Seleccionar servicio o adaptador) dentro de WSL Settings

La figura uno es para crear un adaptador wsdl a traves de un XML o WSDL, la segunda figura es para buscar un servicio que se encuentre en nuestro proyecto o en la consola de Bpel (mas adelante veremos un ejemplo para trabajar con diferentes proyectos conectados) y la tercera es para escoger un tipo de servicio externo a nuestro proyecto y la ultima figura para refrescar el partner link.

Partner

Ahora nos aparece el Wizard de adpatadores y nos muestra la lisra del tipo de adaptador que utilizaremos. Seleccionamos el primero (File adapter) y damos click en next.

File adapter

Ahora escribimos el nmbre del servicio: “EscribirArchivo” (Service Name)

Service name

Y ahora escogemos el tipo de opración que vamos a realizar, en esta ocasión “Write file” y en automático se llena la caja de texto en Operation Name con la leyenda “Write” damos click en siguiente

Service Name

Ahora en la configuracion de archivo vamos a seleccionar la ubicación dondequeremos que el archivo se genere (se escriba) Va a ser un directorio físico y amos click en Browse

A continuación muestro mi directorio donde yo coloco mi archivo y checo que esté vacio en mi caso la carpeta Temp en raiz C

Directorio Temp

Y ahora si al dar Browse nos muestra el wizard para seleccionar directorio fisico

Browse

Y ahora buscamos el directorio Temp y lo seleccionamos

Browse 2

Ahora definimos el nombre de conversión del archivo. En mi caso Doc_ “y aqui pongo un numero secuencial para que no se repita” y la extension del archivo “.txt” y damos click en next

File name

Ahora en la opcion 4 seleccionamos el Schema que queresmos que el archivo escriba en este caso damos click en Browse para seleccionar el esquema con el cual estamos trabajando.

Esquema BPEL

Yaahora buscamos nuestro ESQUEMA XSD y seleccionamos el elemento con el cual estamos trabajando (en nuestro caso: DatosEsquema)

Esquema XDS

Y ahora que tenemos configrado nuestro mensaje damos click en next y luego en finish

Configuracion

Nos debe quedar nuestra configuración del Partner Link de la siguientes manera.

Partner Link configurado

Damos click en Ok y ahora bien… ya tenemos el servicio en nuestro proyecto pero ahora tenemos que hacer que nuestro flujo de bpel se conecte cuando lo necesitemos… para esto en nuestra paleta de componentes (derecha jdeveloper) seleccionamos en el combo “Process Activities” y seleccionamos un Invoke y lo arrastramos hacia nuestro flujo central debajo del Assign que tenemos

Invoke

Ahora damos doble click sobre el Invoke que acabamos e agregar para configurarlo (Notar que nos muestra un warning ya que no hay variables asignadas para ese invoke). En el wizar de configuración del invoke vamos a elegir nuestro partner link dando click en la lampara Browse.

Invoke partner link

En esta ventana nos muestra todos los Servicios o PartnerLinks que tengamos en nuestro proyecto en este caso solo tenemos el PartnerLink “EscribisArchivo” que acabamos de hacer y el “Client” que es el que hace la invocacion de un cliente a nuestro proyecto Bpel. Seleccionamos Escribir Archivo y damos click en Ok

Choose PartnerLink

Ahora que ya invocamos nuestro PartnerLink debemos pasarle datos a traves de una variable para lo cual damos click en Create Variable y por default nos da un nombre checamos que la variable se de tipo global y damos click en Ok

Create variable

Ahora damos click en ok para finalizar la configuracion de nuestro Invoke

Invoke finish

Ahora bien.. ya tenemos nuestro Invoke apuntando a nuestro partner Link pero aun nos aparece el Warning. Esto se debe a que el Invoke tiene una variable (la que creamos en la configracion del mismo) y no le hemos especificado que datos le vamos a pasar a esa variable y hay que especificarlo.

Para eso vamos a desirle al assign que le pase los parametros a la variable del Invoke.

Invoke Partner

Damos doble click en el Assign y damos click en Create Copy Operation

Create copy

Y ahora bien.. como nuestro partner link le dijimos que va a escribis un esquema completo lo que vamos a hacer es pasarle al invoke los datos completos del Esquema a su variable:

Input variable

Damos click en Ok y ahora bien validamos nuestro proyecto dando click en la flechita verde en la parte superior de nuestro diagrama y debe desaparecer el warning.

Ahora vamos a subir nuestro proyecto a la consola Bpel para poder verlo funcionar…

Damos click con el boton derecho del Mouse sobre el nombre de nuestro proyecto (DemoBPEL) y luego en Deploy – SPCMV1(Mi servidor) – To default domain (Mi dominio en bpel)

Deploy project

Verificamos que el resultado del deploy haya sido Succes (Ver capitulo Crear proyecto BPEL para ver las imagenes del Succes) y vamos a la consola de Bpel y damos click en nuestro proyecto para echarlo a andar…

Bpel console

Ahora bien escribimos “ejemplo” en el elment2 y damos click en publicar Mensaje

Publish message

Y ahora checamos el flujo de nuestro proceso

Flow

Flow Partner

Damos click en el assign para ver los datos que se deben de mostrar en el archivo y los cuales le pasamos a nuestro invoke:

Check assign

Ahora vamos a nuestro directorio fisico “C:\Temp” y checamos que el archivo aparece… lo abrimos y comparamos con los datos del Assign y listo… hemos escrito un archivo a traves de un servicio.

Check File Phisical

Archivo terminado

Ahora bien… esto es para escribir un archivo.. e echo un proyecto que cuando en Temp cae un nuevo documento el bpel lo lee y con esto detona otro proyecto. Esto es con Type ReadFile (nosotros usamos WriteFile y asi podemos jugar con nuestro bpel…

El proximo ejercicio para continuar con nuestro proyecto es el de insertar datos en una base de datos…

Conexion Jdeveloper SQL Server 2005 base de datos

Para realizar una conexion de Jdeveloper (10.3.2) hacia SQL server vamos primero a checar nuestra base de datos en SQL server 2005.

Checar SQL

Mi servidor donde tengo instalado SQL se llama “SPCBROTHY” usuario “sa” password “oracle”mi base de datos se llama “BrothyTest” y solo he creado una tabla que se llama: “Tabla1″

Check table

Ahora bien.. como estamos trabajando con Jdeveloper de Oracle nevesitamos un controlador jdbc (que trae las clases para que se cree la copnexión) para sql server 2005 buscamos de la pagina de Microsoft el jar: “sqljdbc.jar” y lo descargamos.

Lo podemos descargar desde este link:

http://www.driveway.com/r9r9u7w3k9

Una vez que obtengamos nuestro jar lo vamos a pegar en 2 direccions dentro del jdeveloper (No es necesario, pero en algunos casos no funciona si no se realiza esta operación) la ubicacion donde colocaremos nuestro Jar es: “<JDEVELOPER HOME>\J2EE\home\applib” y la segunda direccion:“<JDEVELOPER HOME>\Jdk\jre\lib\ext” y listo…

SQLjdbc JAR

Segunda direccion:

SQLJDBC JAR

Ahora pasamos al jdeveloper nos vamos al tab de conexiones y en la carpeta “Database” le damos click con el boton derecho del mouse y seleccionamos “New database connection”

New database

Ahora nos dara un msj de bienvenida y le damos next, y en paso 1 en el nombre le colocamos: SQLDBconn y seleccionamos Third party JDBC driver en connection Type

Name conexion

Y ahora colocamos el nombre de usuario y contraseña de acceso de nuestro sql server en mi caso “sa”/”oracle”

Acceso SQL

Ahora viene la parte intersante de la conexion, al selecciona Third party connection damos por entendido qyue vamos a usar un elemento que contenga las clases para realizar la conexion por lo que necesitamos especifarle unos parametros al jdeveloper y sigue así:

Driver class: damos click en new

Dirver class

y ahora escribimos lo siguiente:

com.microsoft.sqlserver.jdbc.SQLServerDriver

y damos click en Browse par agregar la libreria a la que pertenece la clase:

Dirver class

Ahora vamos a dar click en New para agregar la nueva libreria (el jar que descargamos)

New driver

Ahora damos click en new entry para idicar donde se encuentra nuestro archivoNew entry

Y buscamos en cualquiera de los 2 directorios donde colocamos el SQJJDBC.JAR en el jdeveloper:

applib

Ahora damos click en ok y hay que tener en cuenta que en el combo que nos aparece como location diga User y damos click en ok

Ok driver

Y de esta forma ya hemos agregado nuestra libreria de SQL al jdeveloper damos click en ok:

Driver added

y nos debio quedar laventana de la siguiente forma y damos click en ok.

Oka driver

ahora bien para acompletar la conexion debemos decirle al jdeveloper donde se encuentra el servidor como se llama y que base de datos o tablas nos vamos a conectar: y lo hacemos escribiendo en la url la siguiente informacion:

jdbc:sqlserver://miservidor:puerto;databaseName=proyecto

Donde esto seria igual en mi cas: mi servidor = SPCBROTHY, mi puerto: el puerto que me da el SQL en la herramientas tcp/ip de conexion (1433), proyecto el nombre de mi Base de datos = BrothyTest y me queda así:

URL SQL

y ahora damos click en next para hacer un test de conexion y si todo sale bien nos debe mostrar la leyenda Succesfull!

Succes conexion SQL

y listo si expandemos nuestro conexion en el tab de conexiones del jdeveloper nos debe mostrar las tablas que contiene nuesttra base de datos, y si damos doble click sobre ella podemos ver sus propiedades e incluso agregar registros o hacer consultas sobre la tabla

Tablas jdeveloper

Tablas jdeveloper 2

Crear conexión al Oracle Application Server

Tenemos abierto el Jdevelper y nos vamos al tab de Conexiones. En caso de no estar el tab de Conexciones nos vamos al menu superior damos click en view y luego en Conections.

Luego seleccionamos la carpeta Application Server y damos click con el boton derecho del Mouse y seleccionamos ahora la opción: New Application Server Connection

Crear conexion OAS

Damos siguiente al mensaje de bienvenida y damos click en siguiente.

Ahora le ponemos un nombre a nuestra conexion, en mi caso yo coloqué: SPCMV1 que es nombre de mi Servidor. y el combo de connection type seleccionamos Oracle Application Server 10g 10.1.3 (por que es la instalacion que hicimos en el capitulo de Instalacion de SOA). y damos click en siguiente

Nombre OAS

Agregamos ahora el nombre de Usuario del administrador del OAS (Oracle Application Server) en este caso oc4jadmin y ponemos el password que por cuestiones practicas pusimos como “welcome1″ y damos click en el CheckBox de deploy passwor para que el password sea guardado cada vez que hagamos una conexion.

Usuario y contraseña

Ahora colocamos el nombre del Servidor (donde se encuentra instalado nuestro application server) y en el OC4J instance Name colocamos el nombre de la instancia do OAS que hemos creado cuando lo instalamos. en mi caso: oc4j_soa_mv1 (si al instalar el SOA se coloco la opcion estandar el nombre debe de ser home)

oc4j_soa

Damos click en siguiente y hacemos un test de conexion para combrobar quelos datos que hemos colocado han sido correctos y esperamos que la conexion termine para darnos el resultado.

Test connection status

Si nuestra conexion fue exitosa nos debe mostrar el mensaje de Succes!

En caso contrario verificar el msj de error y verificar todos los datos introducidos.

Conexion exitosa

AHora verificamos en nuetro tab de conexiones que la conexion de ha creado dentro de la carpeta de application server (En mi caso SPCMV1)

Tab connection

por ultimo crearemos una instancio del Application Server que hemos creado pero como un Integration Server. Seleccionamos la carpeta Integration Server (dentro del mismo tab de conexions 3 carpetas abajo del Application server que acabamos de crear) y damos click con el boton derecho del mouse y seleccionamos la opcion New integration Server connection, nos aparece el wizard de Bienvenida, damos click en Next y luego en el combo de Application Server Connection seleccionamos la conexion que acabamos de crear y colocamos en el campo de puerto el puerto que tiene nuestro application server que en mi caso es el “7777″ damos click en siguiente y testeamos la conexion y nos debe arrojar la leyenda “succes!” en caso contrario revisar los datos introducidos (sobre todo el puerto).

Y listo ya tenemos configurado nuestro Jdeveloper para dar deployar nuestros proyecto o aplicaciones al Oracle Appliaction Server.