MySQL - Manejo de Concurrencia

 
Vista:

Manejo de Concurrencia

Publicado por Hugo Contreras (20 intervenciones) el 19/02/2010 00:01:04
Tengo un sistema hecho con PowerBuilder que se conecta a una BD Mysq Versión: MySql Client Versión 5.1.11.

Realice una prueba simple como lo es abrir 2 sesiones en la misma maquina y actualizar un dato en una de ellas para comprobar que se reflejase en la otra sesión pero no funciono. Es decir no se reflejan los cambios realizados en la otra sesión.

Entonces quiero saber si esto se debe a algún parametro que debo configurar o si es por la versión. De ser esto último, debo instalar la versión Server 5.1.44.? Puedo migrar mi Instancia a este nuevo motor sin problemas?
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:Manejo de Concurrencia

Publicado por Gonzalo (9 intervenciones) el 19/02/2010 13:29:22
¿Usaste transacciones?
¿Algún tipo de tablas en especial?
¿Declaraste el ISOLATION LEVEL como para que la otra sesión pudiera acceder a los datos?

Lee el tema de ISOLATION LEVEL que está en esta web y dime si estás haciendo este tipo de administración: http://ict.udlap.mx/people/carlos/is341/bases10.html
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:Manejo de Concurrencia

Publicado por Hugo Contreras (20 intervenciones) el 19/02/2010 21:05:29
La verdad no. El problema es general, es decir no es con una tabla en especial y las transacciones siempre las culmino cpon el commit o rollback luego de sentencias SQL.

En mi conexión tengo los siguientes parametros:

string ls_inifile = "C:\InmoByte\inmobyte.ini"

as_dbms = ProfileString ( ls_inifile, "Database", "DBMS", "ODBC")
as_database = ProfileString ( ls_inifile, "Database", "Database", "")
as_userid = ProfileString ( ls_inifile, "Database", "UserID", "")
as_dbpass = ProfileString ( ls_inifile, "Database", "DBPass", "")
as_logid = ProfileString ( ls_inifile, "Database", "LogID", "")
as_logpass = ProfileString ( ls_inifile, "Database", "LogPassword", "")
as_server = ProfileString ( ls_inifile, "Database", "Servername", "")
as_dbparm = ProfileString ( ls_inifile, "Database", "DBParm", "ConnectString='DSN=InmoByte;UID=root;PWD=xxxxxx'")
as_lock = ProfileString ( ls_inifile, "Database", "Lock", "")
as_autocommit = ProfileString ( ls_inifile, "Database", "AutoCommit", "false")

Donde debo declarar el ISOLATION LEVEL y debo realizar cambios a mis sentencias?
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:Manejo de Concurrencia

Publicado por Gonzalo (339 intervenciones) el 21/02/2010 22:44:20
Tardé en ubicar qué es lo que estabas usando (PowerBuilder), y de dónde sacar algo de información sobre el tema relacionada con PB, ya que en definitiva tu problema está en él.
Por lo que sé, PB tiene formas de establecer el ISOLATION LEVEL necesario cuando se realiza un bloqueo (LOCK) de tablas
Algo de la información la encontré en:
http://manuals.sybase.com/onlinebooks/group-ppb/ppbg0100e/pkresref/@Generic__BookTextView/17805

Algunas otras explicaciones bastante didácticas están en:
http://powerbuilder.hyderabad-colleges.com/Advanced-PowerBuilder-2-15-40.html

En cuanto a lo de MySQL, la información está en 15.10.3. InnoDB y TRANSACTION ISOLATION LEVEL:
http://dev.mysql.com/doc/refman/5.0/es/innodb-transaction-isolation.html
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:Manejo de Concurrencia

Publicado por Hugo Contreras (20 intervenciones) el 22/02/2010 20:21:21
Muchas gracias amigo..

Los enlaces que enviaste me fueron de gran ayuda para comprender las características de los parametros del Isolation Level.

En la syntaxis de conexión a la BD solo faltaba agregar el parametro:

SQLCA.Lock = "RC"

Y funciono correctamente!

Gracias nuevamente.
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:Manejo de Concurrencia

Publicado por Gonzalo  (339 intervenciones) el 22/02/2010 22:30:15
Me alegro que funcionara bien todo.
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:Manejo de Concurrencia

Publicado por y2k (1 intervención) el 03/12/2011 08:21:23
Gracias por el Tip tambien me funciono lo del SQLCA.Lock = "RC"
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