Los threads de conexión no desaparecen al cerrarlas.
He aquí el problema:
1. Estoy creando una aplicación multiusuario en VB.NET trabajando en Windows XP Professional y Windows Vista, en la que cada usuario no debe poderse loguear más de una vez al mismo tiempo del mismo o de diferentes puestos. Esta restricción es simple de obtener y funciona correctamente.
2. Si el usuario cierra la conexión en un determinado momento, y luego la vuelve a abrir en la misma aplicación y puesto sin cerrar la aplicación, se detecta como segunda conexión y rechaza el login.
3. Al analizar las conexiones vigentes con el MySQL Administrator, mientras está activa la conexión inicial, solamente aparece una activa, pero al cerrarla sin cerrar la aplicación la conexión pasa al estado "Sleep", y si se intenta un nuevo login se intenta crear un nuevo thread, con lo que el asunto falla.
4. Verifiqué en todas las partes del código que al cerrar la conexión, los objetos que la manejan desaparezcan y sean eliminados por "garbage collectors". De hecho, si los intento usar nuevamente desde ese punto el sistema tira una excepción porque no existen como instancias de MysqlConnection. Es decir: dejaron de existir. Se supone que el enlace murió completamente, pero MySQL Administrator los sigue mostrando en estado "Sleep".
5. No existen otros segmentos de código donde se encuentren conexiones porque toda conexión se concentra en una única instancia de un objeto creado a tal fin.
6. No he logrado encontrar cómo puedo controlar desde .NET si el thread de la conexión está efectivamente muerto o aún permanece activo.
¿Existe alguna forma que no haya considerado para asegurarme que el thread de la conexión efectivamente desaparezca al cerrar la conexión?
¿Es necesaria alguna configuración del server, o es un problema de Windows?
Edited 2 time(s). Last edit at 07/06/2008 08:41PM by Gonzalo Garcia Correas.
Subject
Views
Written By
Posted
Los threads de conexión no desaparecen al cerrarlas.
5326
July 06, 2008 08:40PM
2225
July 09, 2008 04:42PM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.