![]() |
Problemas con archivos bloqueados
Hola a todos:
Muchas gracias por la atención, tengo un problema que me esta causando muchos incovenientes, bueno el problema es el siguiente: Tengo una aplicación desarrolada en Delphi 6 con Pardox, donde trabajan un promedio de 10 maquinas en RED, es una fabrica de telas (bastante pelusa) donde 4 maquinas trabajan las 24 horas del dia los 365 dias del año. Bueno en algunos momentos el sistema no responde y hay que salir todos del sistema borrar los archivos *.lck y *.net y se soluciona el problema el asunto es de que esto esta sucediendo casi a diario y aveces de madrugada (un caos total por que no saben q hacer hasta q llegue yo). Cuando sucede este problema normalemente una de las maquinas se encuentra colgada, entro a ver q sucede y veo que el ejecutable (Textil.exe) se esta ejecutando varias veces (Como lo veo? en el administrador de tareas de windows), cuando logro encontrar que maquina se esta trabando basta con apagar esas maquina o cerrar todos los ejecutables abiertos y se soluciona el problema. En general cuando una maquina bloquea algun archivo el sistema no funciona en ninguna maquina de la red. Por favor, si alguien me podria ayudar se lo voy agradecer muchisimo, estoy casi al borde del colapso total. saludos, Javier Villa. |
Hola,
Lo mismo es que hay "alguien" que ejecuta más de una vez el programa y de ahí el lío... acaso es que el programa no debería ejecutarse más de una vez por cada máquina, es decir, no debería haber más de una instancia del programa en ejecución. Una buena solución para evitar que un programa mantenga dos instancias en ejecución la proporciona el compañero Román en su página Web con el componente UIApp. Claro que no sé si en tu caso bastaría con algo así o habría que mirar por otra solución o soluciones... |
Si esta permitido tener mas de 1 instancia del programa
Si esta permitido tener mas de 1 instancia del programa, solo que cuando sucede el problema descubro que haty varios ejecutables de la aplicacion en el adminstrador de windows pero solo se ve una sola instancia en el escritorio de windows, es decir es como si le ubiran dado varios clicks al icono y solo se abrio una sola vez.
ahora la mayoria trabaja con dos o tres instancias del problema para realizar varias operaciones, y hasta dos semanas atras nunca hubo problema alguno. que opinan ?? |
Hola,
Pues a mí se me ocurre que el problema puede estar al cerrarse tu programa. Me explico. No es tanto que alguien haga varias veces "clic" para ejecutar el programa sino que cuando cierran una instancia del programa esta no lo hace en condiciones y se queda en memoria... Tal vez por ahí pueden ir los tiros, pienso yo, vamos, tal vez convenía revisar qué ocurre cuando se cierra el programa, si te aseguras de "cerrar" todo lo que sea menester, etc. No sé... es lo que pienso, lo mismo estoy equivocándome, ¿eh? ;) |
Creo que es uno de los problemas
Hola:
creo q tienes razon, pero creo q solo es uno de los problemas que causa el incoveniente, te pongo el codigo de inicio del programa.
|
Hola,
Pues hombre, ahí se ven un montón de formularios y demás que no se crean desde un principio, lo cual es lo suyo, me parece. Claro que sí se crean ciertos formularios y "Data modules" al comenzar... Yo me refería más bien al cierre de tu programa... yo no estoy muy puesto en estas cosas, pero, ¿es seguro que cuando se abre una conexión con la base de datos es cerrada cuando deja de usarse? ¿Todos los formularios que se crean en tiempo de ejecución son liberados convenientemente? Es por ahí por donde creo que está el problema, claro que... no sé decirte una manera "óptima" de depurar el programa... más bien me parece que te costará cierto tiempo ponerte con ello y averiguar cuál puede ser la causa del problema. A lo mejor algún compañero más versado que yo puede darte algunos pasos para tratar, concretamente, con este tipo de problemas. Comprendo que decir "tendrás que revisar que los recursos que ocupe tu programa sean liberados" es no decir mucho... me disculpo por ello, pero, no se me ocurre otra cosa ahora mismo. ;) |
Gracias por atencion
Gracias de todas maneras voy a revisar bien el programa, la verdad q si tengo cuidado creo y destruyo objetos como formularios , etc, pero por alguna razon se esta quedando trabado, tambien me parece q es por que las 4 maquinas que siempre estan prendidas, son maquinas viejitas y estan con la corriente de la planta y esa corriente no es buena y no tienen estabilzidores y UPS.
bueno de todas formas muchas gracias. |
hola
es muy importante que no se puedan ejectuar varias instancias simultaneamente utilizando tablas planas en especial PARADOX, ya que cada vez que una instancia de estas se queda colgada quiere decir que hay algun dataset abierto el cual refencia a una tabla que automaticamente activa los archivos .lck y .net los cuales crean los bloqueo, yo te recomiendo que utilices la libreria que te recomendaron (UIApp). con agregarla en tu carpeta de fuentes y agregarla en el proyecto. Saludos |
podrias esplayarte un poco mas por favor
Creo que por ahi esta la solucion:
existen varios usuarios que necesitan tener varias instancias abiertas para poder reliazar su trabajo. pero quisiera saber mas de lo q has mencionado, si no fuera molestia un poquito de codigo seria genial. Muchas gracias me ha dado algunas ideas. saludos, |
en el idapi de paradox en el apartado system init existe el parametro "local share", no se como lo tienes puesto pero si en los clientes esta a false engancha muchos menos los lck, para los problemas nocturnos puedes ejecutar un programita que despues de cerrar las tares los borre
|
Un ejemplo por favor
me podrias indicar un pequeño codigo de como seria el programa, te lo agradeceria.
Saludos, |
La franja horaria es GMT +2. Ahora son las 13:00:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi