Informix - Error de BBDD al acceder varios usuarios

   
Vista:

Error de BBDD al acceder varios usuarios

Publicado por Aitortxu (3 intervenciones) el 25/09/2007 12:53:11
Buenos dias.

Me he encontrado con un problema al que no consigo dar solución, a ver si a algún genio de los que lee esto se le ocurre que puede ser.

Tengo una aplicación desarrollada en Power Builder, cliente servidor, que ataca una base de datos Informix. Utilizamos un ODBC antiguo, la versión 7.30, y nunca nos ha dado ningún problema, pudiendo atacar a la base de datos un montón de usuarios a la vez y funcionando de manera correcta, pero hoy hemos instalado la aplicación en un cliente que tiene en sus ordenadores instalado el odbc 9.20 y cuando más de un usuario trata de insertar lineas en una tabla a la vez, al segundo que entra en la tabla le sale el siguiente error :

"Error de Base de Datos. No se ha podido acceder al campo X de la tabla Y."

Como os he dicho este error sólo nos sale cuando tratamos de insertar en la tabla más de un usuario a la vez, ya que si sólo lo hace uno funciona perfectamente.

Agradecería cualquier tipo de ayuda o pista sobre la que podamos indagar. Muchismas gracias de antemano y hasta pronto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de BBDD al acceder varios usuarios

Publicado por Luis Rivaldo (126 intervenciones) el 26/09/2007 15:37:09
Puedes Revisar Varias Cosas:
1. Revisa que la tabla donde estan haciendo los updates o insert esten con blooqueo a modo de registros (row) en vez de pagina (page).
Este scripts te puede ayudar a detectar cuales tablas estan en bloqueo de pagina

select tabname[1,30], locklevel
from systables
where tabid > 99
and tabname[1,3] <> "SYS"
and locklevel ="P"
;
si aperecen tablas en este select debes cambiarlo a modo de registro.
por cada tabla deberas hacer un
alter table nombre_tabla lock mode (ROW);
tambien puedes hacer un archivo y desde el shell hacer la ejecuccion del proceso.
Ejemplo: alterar_tabla.sh
:clear
modo=row
dbaccess - - <<!
database nombre_base_de_datos;
output to "tablas_page" without headings
select tabname from systables
where tabname[1,3]<>"sys" and tabname <> " VERSION"
and locklevel = “P”
;
!
for i in `cat tablas_page`
do
echo $i
dbaccess - - << !
database nombre_base_de_datos;
alter table $i lock mode ($modo);
!
done
rm tablas_page

2. Revisa en tu configuracion del DNS de usuario la etiqueta que dice Environment y buscas la opcion Isolation Level Mira las opciones que hay ahi puede ser que la respuesta este en esa configuracion.

3. Para mejorar los tiempos de respuesta revisa los indices de la tabla donde se insertan los datos y verifica que puedas mejorar estos indices o crear uno o unos nuevos dependiendo de las condiciones que usen para registar la informacion.

No tengo mas ideas
OK.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de BBDD al acceder varios usuarios

Publicado por Aitortxu (3 intervenciones) el 27/09/2007 14:04:03
Muchisimas gracias! Al final el error fué un llamemosle despiste. El DBA me creo la base de datos en transaccional, y como estoy haciendo inserts masivos, el log petó y el motor se ha parado. Creo que esto no es muy habitual que pase, pero creo que el DBA de aquí no tiene demasiado bien configurado su motor...a mí, sinceramente, plín. En cualquier caso, muchísimas gracias por tu ayuda, te lo has currado cosa mala, de verdad, muchisimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar