Power Builder - Bloqueo Sqlserver2008, URGENTE

 
Vista:

Bloqueo Sqlserver2008, URGENTE

Publicado por jcardenas (86 intervenciones) el 24/06/2009 20:43:27
Buenas, tengo una aplicacion con PB9 y sqlserver2008 (recien migrada de PB6 y SqlServer2000), en la conexion siempre he utilizado AUTOCOMMIT = FALSE, en la nueva migracion a SqlServer2008 este parametro me hace que cuando tengo dos transacciones sobre la misma BD o dos aplicaciones ejecutandose simultaneamente una bloquee a la otra.

Si tengo puesto AUTOCOMMIT = FALSE se produce el bloqueo a pesar que SIEMPRE HAGO COMMIT, pero si lo cambio a AUTOCOMMIT = TRUE no se bloquean entre ellas!!!!, el caso es que tengo que poner entrar con autocommit a false para evitar posibles inconsistencias ante posibles errores.

¿existe algun parametro de configuracion de SqlServer2008 para evitar esto?

Me conecto via driver nativo de sqlserver2008.

Un saludo y gracias.
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:Bloqueo Sqlserver2008, URGENTE

Publicado por jucar (10 intervenciones) el 25/06/2009 16:57:27
Hola jcardenas, prueba colocando (quizas no lo has colocado) el parametro de conexión Lock.
Lock = "RC"

para mas entendimiento puedes buscarlo en la ayuda.
Saludos
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:Bloqueo Sqlserver2008, URGENTE

Publicado por jcardenas (86 intervenciones) el 25/06/2009 17:31:41
Acabo de probar pasándole lock = rc en el parametro de conexion, pero aun asi sigue bloqueandose.

Es como si pasara del COMMIT using sqlca ; y este se hace seguro!!!

tengo un select y un update y commit, esto se hacen correctamente pero si abro otra vez el programa y ejectuo se queda bloqueado en el update, es como si no se hiciera el commit del primer update, si cierro el primer programa que se esta ejecutando ya continuna el segundo.

Muchas 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
sin imagen de perfil

RE:Bloqueo Sqlserver2008, URGENTE

Publicado por Jorge Binda (21 intervenciones) el 26/08/2009 20:22:23
hagan la coneccion OLEDB normal no nativo pero recuerden colocar el isolation level en READ COMMITED para q no bloquee las transacciones
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
Imágen de perfil de Antonio
Val: 176
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Bloqueo Sqlserver2008, URGENTE

Publicado por Antonio (1271 intervenciones) el 28/06/2009 01:26:01
Hola amigo:

mira, yo trabajo con SQL 2005 y aglo similar me pasaba, el problema no es con PB si no con SQL SERVER.. verifica los parámetros en el SQL SERVER y ver si estas bloqueando las concurrencias.

Espero te sirva
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:Bloqueo Sqlserver2008, URGENTE

Publicado por Que parametros? (86 intervenciones) el 28/06/2009 10:01:38
Gracias Antonio, estoy viendo que parametro es el que me esta ocasionando este bloqueo, he probado con implicit transactions, read commited, read uncommited y nada, es como si el commit no se hiciera.

¿recuerdas que parametro te bloqueaba a ti sql server 2005?

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

RE:Bloqueo Sqlserver2008, URGENTE

Publicado por cardenas (86 intervenciones) el 26/08/2009 20:27:35
Buenas Antonio, el error conseguí arreglarlo conectándome vía OLE-DB en lugar de driver nativo.

Posteriormente tuve otros problemas de conversion de fechas que arreglé cambiando el idioma de la bd a ingles (como la tenia en la versión sqlserver7)

Además, me econtré otro problema con los select donde habia campo = null ya que sqlserver2008 por defecto NO permite estas comparaciones, por lo que cada conexion que realizaba tenia que lanzar la sentencia SET ANSI_NULLS OFF

Saludos
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