PDA

Ver la Versión Completa : Error de conexión con Interbase


aerosB4
31-08-2004, 17:05:08
Hola a todos:

Me encuentro haciendo una aplicación que se conecta con una base de datos de Interbase 6, la se encuentra en un servidor.

Pasa lo siguiente, cuando me conecto por primera vez, hace el proceso de la aplicación de manera normal, sin problemas, pero cuando trato de conectarme por segunda vez, me retorna el siguiente mensaje:

Cannot create shared resource (Windows error 5)

Cada que se corre el proceso, se crean los objetos necesarios, y cuando termina, se destruyen.

¿Podrían por favor ayudarme a resolver este problema?

Les agradezco mucho de antemano su ayuda.

Saludos!

guillotmarc
02-09-2004, 14:55:03
Hola.

Esto me parece muy raro. Deberias darnos más explicaciones. ¿ La conexión la realizas desde la misma máquina en que reside la base de datos, o desde otro ordenador ?, ¿ Que Sistemas Operativos están involucrados ? ¿ Que componentes utilizas para conectar desde Delphi a Interbase ? ¿ Que cadena de conexión utilizas ?
¿ Cuando corre el proceso, que objetos necesarios dices que se crean ?

NOTA: Si utilizas Interbase 6 Open Edition, te recomiendo que te pases a Firebird. También es Open Source (gratuito) y tienes muchos bugs corregidos así como bastantes mejoras.

Saludos.

aerosB4
02-09-2004, 16:29:54
Hola Marc:

Antes que nada muchas gracias por responder, te explico el proceso con detalle a continuación:

Tengo una aplicación(ésta corre en diferentes sistemas operativos) que transmite información a un servidor remoto. Esta aplicación se enlaza via web a un un servidor intermedio, el cual posee como sistema operativo Windows 2000 Advanced Server. En este servidor se depositará la información tranmitida. Dicha información son archivos de distintos tipos.

Dentro de este servidor se encuentra la dll en cuestión, los componentes que utiliza son IBX. Aquí el detalle está en que la base de datos de Interbase 6 se encuentra en otro servidor, así que la dll conecta a la base de datos para extraer los datos necesarios para llevar a cabo el depósito de información en el servidor intermedio. Los componentes utilizados son TIBDatabase, TIBQuery y TIBStoredProc, los cuales se crean dinámicamente y se destruyen en cuanto la dll es liberada.

El sistema operativo del servidor donde está la base de datos es Windows 2000 Server.

Cabe señalar que la aplicación realiza varios procesos de transmisión de información en cada ejecución. La dll se inicia y se libera por cada petición.

Después que se tienen los datos, se deposita la información y se actualiza el espacio en el disco duro del servidor intermedio. Debido a que la información del espacio también se guarda en la base de datos, entonces la dll también efectua dicha actualización y al final se envía un correo electrónico de éxito.

Espero que esta información ayude.

Les mando muchos saludos y nuevamente gracias!

guillotmarc
02-09-2004, 17:51:15
Hola.

Vistos todos los procesos que realizas, no creo que tu error tenga que ver con Interbase, nunca he visto u oído de ningún error de Interbase con ese mensaje. Te recomiendo que depures la dll para verificar que todos los demás procesos se ejecutan correctamente, seria muy útil saber que código tiene exactamente la línea que hace saltar el error.

Saludos.

aerosB4
04-09-2004, 19:18:36
Hola:

Al parecer ya se resolvió el problema, se debío a varios elementos involucrados, uno de ellos es que en el mismo servidor se hacían peticiones de otro tipo, lo cual alentaba en cierta manera el proceso y eso nos hacía que no detectaramos exactamente en que línea de código ocurría el error.

Otro factor es que se tenían el programa cliente y programa servidor en el equipo que contenía a la base de datos(Aunque no estoy muy seguro si esto era factor para el error)

Por último, lo que hice para resolver el problema fue definir la ip del servidor que contiene la base de datos en el archivo HOSTS de Windows, y al ponerle al componente IBX de base de datos le pasamos la dicha declaración, junto con la ruta fisica de la base, en su propiedad Database.

Espero que este consejo les sirva a otros miembros que se encuentren una situación similar.

Sin más por ahora, me despido de ustedes.

Muchas gracias por el tiempo invertido en este problema y por su ayuda.

aerosB4
04-10-2004, 20:16:22
Hola a todos:

Les actualizo la información de este hilo.

Después de hacer varias pruebas simultáneas parqa la resolución de este problema, nos dimos cuenta que no funcionaba completamente el declarar en hosts el servidor de la base de datos, ya que en ocasiones seguía marcando el error de "Recurso Compartido".

El error se debió a que un servicio NT que hacía uso de la dll en cuestión no la liberaba, por lo que se quedaba cargada y al momento de querer volver a utilizar una de sus funciones, marcaba el error.

Posteriormente se actualizó el servicio y el error dejó de aparecer.

Espero que esta información les sea de utilidad.

Saludos y gracias de nueva cuenta!