jueves, 12 de septiembre de 2019

Como instalar las versiones de los SDK y Herramientas de Android

El siguiente comando muestra la lista de versiones de SDK y distintas herramientas para instalar.


android list sdk --all


Para poder instalar una de las opciones que mostro el comando anterior se debe ejecutar el siguiente comando junto con los números que muestra el listado:

android update sdk -u -a -t <package no.>

Ejemplo:

android update sdk -u -a -t 1,2,3,4,..,n 

miércoles, 11 de septiembre de 2019

Locks en Informix

Uno de los problemas con que me encontré  en la bases de datos Informix fueron bloqueos de las tablas completos y las consultas que se realizan a la misma tabla termine como error por que expiró el tiempo de espera. Había procesos que corrían a la vez, las tablas se bloqueaban y las consultas no tenían un tiempo de espera para que termine el bloqueo a la tabla y continue con la consulta.

En resumen existían dos problemas:
- El bloqueo completo a la tabla.
- No había timeout para el bloqueo.

El bloqueo completo a la tabla

Cada tabla tiene configurado como es el nivel de lockeo de la misma o sea si es a nivel Registro (ROW) o a nivel conjunto de registros (PAGE).
La forma de saber que tipo de lockeo tiene una tabla, se puede ver con la siguiente consulta:

select tabname, locklevel from systables;

R = row
P = Page

para modificar el nivel de lock de una tabla se debe usar la siguiente instrucción:

ALTER TABLE customer LOCK MODE(page);

No había timeout para el bloqueo

Se puede configurar para que cada cliente que se conecte a la base de datos pueda tener un tiempo de espera ante bloqueos en las tablas, como para que las consultas que estemos haciendo no lancen errores por no esperar ni un segundo. Para ello se le debe configurar un parámetro dentro del cliente denominado IFX_LOCK_MODE_WAIT donde el valor que se le pasa es la cantidad de segundos de timeout. 

En el caso de que se requiera hacer la configuración por JDBC el parametro se debe llamar ifxIFX_LOCK_MODE_WAIT.