SQL Server - Actualizar DLL

 
Vista:

Actualizar DLL

Publicado por Carlos Restrepo (61 intervenciones) el 18/12/2007 20:24:35
Buenas Tardes Ingenieros.

Por aqui de nuevo con una consulta, resulta que tengo SQL Server 2005 y las interfaces son VFP 8, ahora bien tengo un sp que hace un llamado a un objeto DLL, todo funciona bien el problema es que necesito actualizar el DLL y no me deja, por que esta cogido por la instancia de SQL en si, es decir, si bajo el servicio de SQL puedo actualizar la DLL, pero si no lo bajo, me sale un error que dice que alguien esta utilizando el archivo.

Ahora bien, la DLL en cuestion se va a estar modificando de vez en cuando y no podemos bajar el servicio constantemente, por que son demasiados usuarios en varios paises que lo estan usando y queda en extremo dificil sacar a todos y hacer el cambio.

Alguien sabe como podria hacer esto, o si tiene un ejemplo se lo agradeceria

Muchas Gracias

Carlos Restrepo
[email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Actualizar DLL

Publicado por Isaias (3308 intervenciones) el 19/12/2007 20:35:30
¿Puedes eliminarla y volverla a crear?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar DLL

Publicado por Carlos Restrepo (61 intervenciones) el 19/12/2007 20:36:52
Buenos dias ing. isaias

No se deja eliminar

me dice que alguien la tiene en uso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar DLL

Publicado por Isaias (3308 intervenciones) el 19/12/2007 20:38:07
¿Mensaje textual integro?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar DLL

Publicado por carlos (61 intervenciones) el 19/12/2007 20:53:20
buenas ingeniero este es el error textualmente:

"cannont copy vfocom.dll: it is being used by another person or program, close any programs that might be using the file and try againg"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar DLL

Publicado por Isaias (3308 intervenciones) el 20/12/2007 19:06:43
En tu caso, cada que necesitara actualizar la DLL, dejar mi base en SINGLE_USER.

-- Dejo mi base en single user
ALTER DATABASE tubase
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE

-- Actualizo la DLL
-- Y regreso a la normalidad la base
ALTER DATABASE tubase
SET MULTI_USER
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No Puedo Hacer eso

Publicado por Carlos Restrepo (1 intervención) el 21/12/2007 23:41:45
Ing. Isaias

Cordial Saludo

le queria decir que no puedo hacer eso por que seria dejar la BD monousuario y como decia anteriormente hay muchos procesos y usuarios pegados a la BD, si yo hago eso empezaria a generar errores a multiples personas,

Basicamente lo que necesito es lograr que SQL suelte la dll cuando ya ha terminado de utilizarla, en el sp al final tengo la instruccion

EXEC sp_OADestroy @object

y efectivamente esta destruyendo el objeto, pero resulta que cuando voy a actualizar la DLL me dice que alguien la tiene en uso, y cuando bajo el serivicio de sql la DLL es liberada, como decia anteriormente, esta DLL esta siendo actualizada constantemente razon por la cual no puedo de forma seguida bajar el servicio.

Necesito alguna forma de solucionar esto, de manera que cuando se finalice el uso de la DLL esta quede libre para ser actualizada y registrada.

Cordialmente

Carlos Restrepo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Puedo Hacer eso

Publicado por Isaias (3308 intervenciones) el 22/12/2007 00:50:08
Cuando bajas tus servicios de SQL Server, tambien estas afectando a los demas usuarios, el hecho de colocarlos en SINGLE_USER, solo mientras actualizas la DLL, no creo que se tarde mucho, depues volverias a su estado original MULTI_USER.

La verdad, no tengo otra opinion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Puedo Hacer eso

Publicado por Carlos Reyes (49 intervenciones) el 27/12/2007 23:36:53
No se si se pueda, pero yo diria que si, antes lo hice con una DLL de .NET
Renombra tu dll y compilala de nuevo; como la dll esta en memoria no te deja eliminarla, pero si renombrarla. La dll esta asignada en memoria y sigue siendo exactamente la misma dll y la libera hasta que el ultimo usuario se desconecta, por lo que los usuarios que estuviesen usando dicha dll no se veran afectados, lo que te debes asegurar es que cuando la renombres no intenten acceder usuarios en ese periodo de compilacion, que generalmente suelen ser segundos.

Espero te ayude en algo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Puedo Hacer eso

Publicado por Carlos Restrepo (61 intervenciones) el 27/12/2007 23:38:45
Gracias Ing. Carlos Reyes,

voy a hacer eso y le comento

Carlos Restrepo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar