PDA

Ver la Versión Completa : Db bloqueada


OscarCasillas
30-10-2012, 18:44:32
Hola! espero me puedan ayudar con esto.

Tengo una aplicacion Web en asp.net + C# que utiliza como base de datos Firebird, ambos montados en ubuntu.
Mi problema esta en que si ejecuto un reporte de ventas que tarda alrededor de 2 minutos (o mas dependiendo del rango de fechas que le ponga) no puedo realizar ninguna otra consulta, por ejemplo abrir la pantalla que trae la lista de empleados (tablas no relacionadas entre si), la segunda se queda en "cola" y se ejecuta justo cuando termina la primer consulta. por el entorno y tipo de aplicacion esto no me sirve.

que podría estar haciendo mal? mi cadena de conexión es: connectionString="User=SYSDBA; Password=masterke;server=localhost; Database=localhost:/var/www/BaseDePrueba.fdb;"

enserio espero que me puedan ayudar llevo 5 dias con esto y ya me desespero jejeje .

Gracias!
Oscar Casillas

roman
30-10-2012, 18:49:51
Pues hombre, con esos datos ¿qué quieres que te digamos? No hay forma de dilucidar a partir del nombre de la base el porqué puede tardar. Tienes que dar más datos y explicar con más detalles tu situación.

Por otra parte, bienvenido a los foros :).

// Saludos

OscarCasillas
30-10-2012, 18:57:01
Gracias roman!!

jeje es que no se que tipo de datos puedo dar para saber que estoy asiendo mal. realmente esa es toda mi cadena de conexión. por eso pensé que algo me estaría faltando.

trato de explicar mejor la situación:
1- ejecuto el reporte "Facturas por vendedor" el cual es un listado de las facturas que ya están pagadas, este reporte puede tardar 2 minutos.
2- mientras se esta ejecutando este reporte voy y saco un listado de usuarios, de permisos o cualquiera no relacionado con el anterior, para descartar que estén ocupadas las tablas, normalmente salen en menos de 20 segundos pues son pocos datos.
3- el reporte del paso 2 no se ejecuta asta que termina el reporte del paso 1, esto lo veo en las tablas MON$STATEMENTS y MON$TRANSACTIONS.

que otro dato seria oportuno dar para que me puedan ayudar? una disculpa no soy mucho de foros, pero enserio ocupo ayuda con esto que me tiene estancado :confused:

Casimiro Notevi
30-10-2012, 19:12:42
Hola, tal y como dice Román, hace falta que nos cuentes más cosas, no somos adivinos :confused:

Fíjate si puedes contarnos cosas que pueden servirnos, por ejemplo: el servidor es un 8086 a 8 Mhz con 32 Mb de ram y disco de 40 Mb.

En fin, así, dando palos de ciego, y por decir algo, creo que has instalado la versión superserver, instala la versión classic server.

De todas formas, si tienes ese problema (y es superserver) es que la consulta sql del informe está "poco afinada" ;)

Casimiro Notevi
30-10-2012, 19:15:00
Se me olvidaba, procura poner títulos descriptivos, por ejemplo en este caso la base de datos no está bloqueada, sólo está ocupada en acabar la consulta del informe para pasar a lo siguiente.
Bloqueada es... bloqueada, ya sabes.

Y ya puestos: bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

mightydragonlor
31-10-2012, 04:19:54
Hola, el problema en si no tiene nada que ver con la consulta, tablas o demás, ya que deberían ser dos conexiones diferentes y no tratarla como una, que es el caso que expones, por esto te paso la conexión que yo suelo usar en .Net y que me funciona a las mil maravillas.


ServerType=0;User=SYSDBA;Password=masterkey;Size=4096;Dialect=3;Pooling=FALSE;database=localhost: DBDAC


Saludos.

Casimiro Notevi
31-10-2012, 10:57:21
ServerType=0;User=SYSDBA;Password=masterkey;Size=4096;Dialect=3;Pooling=FALSE;database=localhost: DBDAC

Pero ahí estás estás indicando un tamaño de página de 4096 y un dialecto, el 3.
¿Qué ocurre si usa otro tamaño de página, por ejemplo, 8192, como en mi caso, que uso siempre?

mightydragonlor
31-10-2012, 15:44:54
Pero ahí estás estás indicando un tamaño de página de 4096 y un dialecto, el 3.
¿Qué ocurre si usa otro tamaño de página, por ejemplo, 8192, como en mi caso, que uso siempre?
Hola Casimiro, pues en tu caso, deberás poner tu tamaño de página y tu dialecto, si es del caso, esta conexión es una muestra de como hago la mía, no significa que para todos es igual, hay que ingresar los parámetros de acuerdo a la base de datos que deseas conectar.

Saludos.

Casimiro Notevi
31-10-2012, 16:27:45
Eso es lo que quería aclarar, para que OscarCasillas no "copiara" exactamente lo que has escrito :)

roman
31-10-2012, 16:29:30
Y, ¿qué pasa si no se especifica el tamaño de página y el dialecto?

// Saludos

mightydragonlor
31-10-2012, 16:38:10
Si no se especifica el dialecto podemos tener problemas con la codificación de caracteres, recordad que Firebird es multi-plataforma mientras .Net es para Windows y claro, por defecto trabaja con ANSI, así podemos solventar algunos problemillas que nos trae el uso de ANSI, para el tamaño de página, no lo tengo claro, pero en página de Firebird me sugirieron esta cadena de conexión, y hasta el momento no me ha molestado xD.

Saludos.

roman
31-10-2012, 16:58:56
Pero, según entiendo de aquí (http://www.firebirdsql.org/manual/isql-dialects.html), el dialecto sirve para indicar cómo se interpretan fechas, horas y otras cosas, pero no está relacionado con la codificación de caracteres.

// Saludos

mightydragonlor
31-10-2012, 17:06:08
El problema que se me estaba presentando, en mi caso, al pasar parámetros de tipo VARCHAR, era las comillas dobles que salían de un StringBuilder.ToString, es decir, el string resultante no mostraba estas comillas dobles, pero si tiraba el resultado en un archivo de texto, las podía ver claramente, esto siempre me generaba error, la base de datos, obviamente estaba con Dialect 3, pero el problema se daba entre .Net y Firebird, al poner esto en la conexión el problema se resolvió.

Saludos.