Mostrando entradas con la etiqueta datasource. Mostrar todas las entradas
Mostrando entradas con la etiqueta datasource. Mostrar todas las entradas

lunes, 2 de junio de 2014

Eliminar sesiones bloqueantes en Oracle

En estos días tuve que lidiar con ciertos procesos en lote que al fallar causaban bloqueos en tiempo de ejecución debido a la falta de un commit o rollback dependiendo del punto de vista claro. A continuación dejo un script que me fue útil para revertir tales bloqueos teniendo en cuenta que se conoce a priori el nombre de la tabla bloqueada involucrada.




           
--1. Obtener el o los ID's del objeto tabla probablemente bloqueado:

SELECT object_id FROM dba_objects WHERE object_name='USUARIO';

--2. Obtener los valores SID para el o los ID's recuperados en el paso 1:

SELECT sid FROM v$lock WHERE id1 IN (74590,75456) 

--3. Obtener los valores de sesion usando los SID's recuperados en el paso 2:

SELECT sid, serial# from v$session where sid in (67,72,131,132,198,11)

--4. Matar sesiones bloqueantes en la tabla usando pares 'sid,serial#' del paso 3:

ALTER SYSTEM KILL SESSION '11,1202'
ALTER SYSTEM KILL SESSION '67,2405'
ALTER SYSTEM KILL SESSION '72,972'
ALTER SYSTEM KILL SESSION '131,1847'
ALTER SYSTEM KILL SESSION '132,1598'
ALTER SYSTEM KILL SESSION '198,16041'


Espero les sea de utilidad.

lunes, 5 de mayo de 2014

Configurar pool de conexiones en JBoss EAP


El siguiente post es referido a configurar un pool de conexiones usando el servidor de aplicaciones JBoss y variables JNDI, primero indicar que este tipo de variables nos ayudan a recuperar configuraciones del mismo entorno del servidor lo que hace mas segura y configurable a nuestra aplicacion web, por ejemplo conexiones de base de datos, URL's de web services, conexiones LDAP, etc, etc.

Primero añadimos la variable JNDI de conexion (datasource) en el servidor en la pestaña profile y la opción Datasources damos click en add, llenar los campos según sea su motor de base de datos, en mi caso use oracle y quedo como se muestra la imagen (click en la img si se desea ampliar):



Una vez configurado el datasource procedemos a activarlo con el boton enable despues de seleccionarlo y testear la conexion en la pestaña Connection de la parte inferior del detalle de la configuración.



En la clase de nuestra aplicación que recupera la conexion debemos importar dos paquetes referidos al uso de variables JNDI que son javax.naming.Context y javax.naming.InitialContext luego podemos recuperar el datasource JNDI en nuestro codigo de la siguiente manera:
 
            
Connection cn = null;
try {
 Context ctx = new InitialContext();
 DataSource ds = (DataSource) ctx.lookup("java:jboss/ConfigSistemita");
 cn = ds.getConnection();

} catch (SQLException e) {
 System.out.println(e.toString());
 cn = null;
} catch (Exception e) {
 System.out.println(e.toString());
 cn = null;
}
return cn;


Hasta la próxima!