![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Bueno, sigo a vueltas con el TIdHttpServer y el Firebird. Os comento las pruebas que he ido haciendo...
- Desactivando el TTimer y haciendo accesos a Firebird únicamente desde las páginas solicitadas via web parece funcionar correctamente salvo que simule accesos simultaneos o en una ventana pulse F5 continuamente. En estos casos al final el programa se para en algún punto (no se exactamente en cual porque no me llega a dar error). Esto me llevó a pensar que podría ser un problema de hilos. - Declare una variable global de tipo TCriticalSection (un semáforo) y "envolví" dentro de estas secciones críticas todos los accesos a Firebird. En este caso si tengo el TTimer desactivado funciona correctamente aunque pulse continuamente F5 o simule accesos simultaneos. Pero si activo de nuevo el TTimer en cuanto hago un acceso a la web o se me bloquea la aplicación, o me comienza a dar errores de todo tipo. Aún no lo he comentado, trabajo con Indy 9. ¿Alguna sugerencia? Es muy importante que logre hacer funcionar esto... ![]() Gracias |
|
#2
|
|||
|
|||
|
Bueno, pues tras muchas pruebas he comprobado que con un TIBDatabase por aplicación no basta, cada hilo que crea el TIdHTTPServer debe tener su propio TIBDatabase.
Caso cerrado... por ahora :P |
|
#3
|
|||
|
|||
|
El TIdHTTPServer permite crear un hilo independiente por cada conexión establecida. Prueba a meter en un hilo el proceso que quieres hacer. Si fuese necesario, podrías meter el acceso a la base de datos dentro del hilo general de la aplicación y controlarlo mediante un semáforo (TCriticalSection).
|
|
#4
|
|||
|
|||
|
Ya probé el meter todos los accesos a la base de datos dentro de un TCriticalSection y también funcionaba pero con un rendimiento bastante más bajo del que obtendo teniendo un TIbDatabase por cada página que genero.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Un Ejemplo de acceso a FireBird/InterBase usando API | Isnel | Firebird e Interbase | 2 | 06-03-2007 19:11:01 |
| acceso denegado firebirdql.data.firebird | karocs | .NET | 0 | 22-02-2007 16:27:18 |
| Componentes de acceso a Firebird | Tauro78 | Firebird e Interbase | 7 | 23-11-2006 22:07:29 |
| Acceso a base de datos interbase/firebird | Ricardo León | Conexión con bases de datos | 4 | 12-09-2006 20:31:05 |
| Acceso a firebird desde Delphi 2005.net | hibero | Firebird e Interbase | 1 | 26-12-2005 16:48:34 |
|