Advertisements

Wednesday, October 9, 2013

BPEL 11g - Disabling the Auto recovery

En este blog encontre esta solucion interesante para deshabilitar el "Recovery" y evitar que las instancias de BPEL se queden en el estatus "Running".

http://www.albinsblog.com/2011/10/oracle-soa-suite-11g-disabling-auto.html#.UlWnNVC3_Al



Scenario 1:Auto Recovery only for sync process.

  1. In the navigator, right click "soa-infra" and select "SOA Administration Common Properties" Advanced More SOA Infra advanced Configuration Properties
  2. In the Name Column, click GlobalTxMaxRetry (The maximum of times  a GLOBAL_RETRY FabricInvocationException can be retried before bubbling up)
  3. Set GlobalTxMaxRetry = 0 (Default : 2)
  4. Similary, GlobalTxRetryInterval (The number of seconds between retries in the case of GLOBAL_RETRY FabricInvocationException) Set GlobalTxRetryInterval = 0 (Default : 3)


Scenario 2: Disabling recovery attempts for faulted instances.
1. Log in to Oracle Enterprise Manager Fusion Middleware Control.
2. Right-click soa-infra.
3. Select SOA Administration > BPEL Properties.
4. Click More BPEL Configuration Properties.
5. In the Name column, click RecoveryConfig.
6. Expand RecurringScheduleConfig.
7. Set the following properties to values and click Apply.
maxMessageRaiseSize =0
8. Expand StartupScheduleConfig, respectively.
9. Set the following properties to values and click Apply.
maxMessageRaiseSize=0




Friday, September 27, 2013

Configuring JMS Distributed Queue step by step!

Enseguida voy a mostrar como crear una cola distribuidas las cuales se utilizan en ambientes del tipo CLUSTER.

Despues de ingresar a nuestra consola de Weblogic nos dirigimos a la ruta "Services/JMS Modules", si estamos en ambiente productivo bloqueamos la sesion.


Haciendo clic en el boton "New" procedemos a crear primeramente nuestro modulo el cual contendra nuestra fabrica de coneccion y nuestras colas.


Nombramos nuestro modulo, en mi caso lo llamare "MyJMSModule" y hacemos clic en el boton "Next".


Antes de finalizar seleccionamos el "check box" como se muestra en la imagen y presionamos el boton "Finish".


Ahora procedemos a activar la sesion para guardar esta configuracion.



A continuacion se muestra el modulo que acabamos de crear.



El siguiente paso es dar clic al modulo que acabamos de crear y procedemos a crear el "Subdeployment" antes de comenzara crear la fabrica de conexiones y nuestra cola. Para esto nos dirigimos al tab "Subdeployments" y hacemos clic en el boton "New".


Nombramos nuestro subdeployment, en este caso yo lo llamare "MyQueue" y hacemos clic en el boton "New".



En la siguiente pantalla tenemos que seleccionar los "Targets", en este paso vamos a reutilizar unos previamente configurados con la instalacion de SOA en el servidor de nombre "SOAJMSServer" en este caso encontramos uno por cada instancia configurada en el ambiente CLUSTER y las seleccionamos para finalizar haciendo clic en el boton "Finish".


Ahora procedemos a activar la sesion para guardar esta configuracion.


Bien, ahora podemos proceder a la creacion de la "Fabrica de Conexiones" que usara nuestra Cola, para esto dentro del modulo que creamos nos dirigimos al tab "Configuration".

Volvemos a activar la sesion.



Y damos clic al boton "New".



En esta pantalla tenemos que seleccionar "Connection Factory" y damos clic al boton "Next".


Ahora procedemos a nombrar este recurso en el cual en este ejemplo nombre lo siguiente:

Name: MyQueueCF
JNDI Name: jms/MyQueueCF

Y realizamos clic al boton "Next".


En la siguiente pantalla damos clic al boton "Advanced Targeting" el cual nos permetira seleccionar el "Subdeployment" previamente creado el cual nos permite apuntar los Server correspondientes.


Seleccionamos el "Subdeployment" anteriormente creado.


En seguida nos aparecera una lista de los Servers en los cuales estan previamente seleccionados segun la configuracion realizada en el "Subdeployment" anteriormente creado.


Damos clic en el boton "Finish" y activamos la sesion para guardar los cambios.


Una vez creada la Fabrica de Conexion procedemos a crear nuestra cola, para esto nos dirigimos al tab "Configuration" dentro de nuestro modulo creamos y tambien nos encontraremos la Frabrica de Conexion anteriormente creada.

Antes de comenzar actuvamos la sesion.



Hacemos clic en el boton "New".





En esta pantalla tenemos que seleccionar "Distributed Queue" y damos clic al boton "Next".


Ahora procedemos a nombrar este recurso en el cual en este ejemplo nombre lo siguiente:

Name: MyQueue
JNDI Name: jms/MyQueue

Y realizamos clic al boton "Next".


En la siguiente pantalla damos clic al boton "Advanced Targeting" el cual nos permetira seleccionar el "Subdeployment" previamente creado el cual nos permite apuntar los Server correspondientes.


Seleccionamos el "Subdeployment" anteriormente creado.


En seguida nos aparecera una lista de los Servers en los cuales estan previamente seleccionados segun la configuracion realizada en el "Subdeployment" anteriormente creado.


Damos clic en el boton "Finish" y activamos la sesion para guardar los cambios.


Ahora que terminamos de crear nuestra Queue podemos revisar si se ha creado correctamente,  para esto nos dirigimos al modulo donde se encuentra y seleccionamos "MyQueue" y buscamos el tab llamado "Monitoring" lo seleccionamos y nos debe de mostrar las Queue's activas una por cada instancia de SOA en nuestro ambiente de CLUSTER.


gl hf^^

Monday, September 23, 2013

Enable ANT for AIA manually

Para poder habilitar ANT y usar los comandos de AIA, este producto ya viene con la instalacion y para habilitarlo manualmente se tiene que configurar las variables de ambiente. Para efectos practivos se puede ejecutar el archivo setenv.cmd

Las librerias de ANT las localizamos en el siguiente directorio:

$MW_HOME\modules\org.apache.ant_1.7.1

$MW_HOME es el directorio donde se installo FMW 11g.

Ahora que agregar las siguientes variables de ambiente:

ANT_OPTS="-Xms512m -Xmx1024m -XX:MaxPermSize=512m"

ANT_HOME=${MW_HOME}/modules/org.apache.ant_<version number>

Si estamos en linux agregamos las variables anteriores dentro del perfil


vi .bash_profile


Si estamos en windows quedaria de esta manera:




Nota: Si estamos en windows recomiendo que pongan la ruta completa y no hagan referencias a variables por ejemplo

ANT_HOME=%MW_HOME%/modules/org.apache.ant_<version number>

No me funciono y no supe como corregirlo.

Tambien hay que agregar la ruta a la variable PATH

%MW_HOME%/bin

Ahora vamos a revisar si esta funcionando ejecutando el comando "ant-version"




Nota: Despues de agregar las variables tenemos que hacer "logout" de la sesion y entrar de nuevo.

GL!

Tuesday, September 3, 2013

Weblogic config.sh "No such file or directory"

Me he topado con el siguiente error en la version de Weblogic 11.1.1.7 usando Oracle Linux 6, en el cual al intentar realizar la configuracion para la instalacion de SOA Suite.

Lo primero que intente realizar fue configurar la variable de ambiente JAVA_HOME con JRockit pero no funciono, me seguia apareciendo el siguiente error.

Buscando en archivos de Weblogic que actualizan estas variables de ambiente encontre el error.

La solucion esta en modificar el siguiente archivo que se encuentra en "$SOA_HOME/wl_server_10.3/common/bin/commEnv.sh":


Buscamos la linea donde se encuentra la variable JAVA_HOME y la cambiamos por nuestra actual ruta que deseamos usar.


Bien, ahora ya podemos ejecutar sin ningun problema la configuracion.

gl hf!

Tuesday, June 11, 2013

Populating type table

El siguiente script de PL SQL muestra un ejemplo de como llenar una colección de tipo tabla, en la cual se definen puros tipos de datos simples.
DECLARE

  V_LIST AP_OTM_IF_TBL_T := AP_OTM_IF_TBL_T();
  V_LINE1 AP_OTM_IF_T :=    AP_OTM_IF_T(1,1,'n',SYSDATE,SYSDATE,'N','N','N',1,'N','N',1,SYSDATE,'N','N',1,1,'N','N',1,SYSDATE,1,1,SYSDATE,'N',1,1);

  V_RES CHAR(20) :='N';
BEGIN
  V_LIST.extend();
  V_LIST(V_LIST.count()) := V_LINE1;
  DBMS_OUTPUT.PUT_LINE('COUNT = ' || V_LIST.count());
  SOA_AP_INVOICES_IF_INPUT.SEND_VOUCHER(V_LIST,V_RES);
   
DBMS_OUTPUT.PUT_LINE('V_RESULT = ' || V_RES);

END;


Este es otro ejemplo de como poblar un objeto de tipo tabla usando BULK COLLECT INTO.
set serveroutput on;

DECLARE
  V_DATE_FORMAT varchar2(50) := 'DD-MON-YYYY';
  v_date varchar2(50) := '11-DEC-2013';
  v_eexp_list SWC_FA_EEXP_IFACE_TBL_T := SWC_FA_EEXP_IFACE_TBL_T();
BEGIN

select 
SWC_FA_EEXP_IFACE_T (ADMIN_REVIEWED,    
  APPROVER_TEMPLATE_PHASE,   
  APP_ID,         
  BRIEF_DESC,  
  CHANGED_BY,  
  COST_CENTER,   
  DATE_CHANGED,           
  DATE_CREATED,           
  DIVISION,    
  DIV_NAME,   
  DIV_ID,         
  LONG_DESC, 
  ORIGINATING_LOCATION,  
  PRIME_ACCOUNT,   
  PRIOR_REQUEST,    
  PRIOR_REQUEST_AMT,         
  PROJECT,   
  REQUEST_ID,         
  REQUEST_STATUS,    
  REVISED_TOTAL_AMT,         
  SENT_TO_ONBASE,           
  SITE_CITY_OTHER,   
  SITE_ID,         
  SITE_NUM_OTHER,   
  SITE_STATE_OTHER,    
  SUB_ACCOUNT,    
  SUPPORT_MAILED,    
  TOTAL_COST_AMT ,         
  DATE_APPROVED)
BULK COLLECT INTO v_eexp_list from swc_fa_eexp_v where TO_CHAR(date_created,V_DATE_FORMAT) = v_date and request_status IN ('A', 'D');
  dbms_output.put_line('COUNT: ' || v_eexp_list.count());

END;

Monday, May 27, 2013

How to "select count(*) from table" with oraext:query-database

Me ha pasado que al intentar usar un query con la funcion de XPATH oraext:query-database, me marca error.

Estoy queriendo usar un simple "select count(*) from tabla".

Encontre que para poder realizar este count dentro de la expresión es ejecutar algo como se muestra:


oraext:query-database(concat('select count(no_viaje) as count FROM xbol.xxdi_map_ap_otm_interface WHERE no_viaje = ',$noViaje,' and line_id is not null'),true(),true(),'jdbc/ebs')

Como se observa, se ocupa poner un alias al campo en la cosulta, de paso también especifique un campo dentro del count y funciono.

gg hf!

Tuesday, April 30, 2013

Jndi Name is null or empty ERROR FIXED

Ahora me he encontrado con la siguiente excepción:


weblogic.connector.exception.RAException: Jndi Name is null or empty.

La cual nos impide realizar despliegues en la consola de BPEL puesto que el aplicativo DBAdapter.rar se encuentra inhabilitado.

Para solucionar este problema se tiene que ejecutar lo siguiente:

  1. Borrar el adaptador de aplicaciones "DbAdapter" desde la consola de Weblogic.
  2. Reinstalar el componente desde la consola de Weblogic usando el botón "Install".

Nota: Esta solución necesitara crear nuevamente el archivo Plan.xml por lo tanto hay que respaldar todas las configuraciones de fabrica de conexion ej. eis/DB/test