ventajas tutorial juego español descargar coldfusion

coldfusion - tutorial - reiniciar la aplicación sin reiniciar el servidor?



coldfusion tutorial español (8)

¿Hay alguna manera de reiniciar una aplicación ColdFusion sin reiniciar todo el servidor?

Hay dos aplicaciones ColdFusion que se ejecutan en un servidor y solo quiero reiniciar una de ellas.


Aquí tienes, mi versión CF7 / 8 de ApplicationStop de CF9. Creo que este hilo es seguro, teniendo en cuenta el comentario de Sean.

<cffunction name="ApplicationStop" returntype="boolean" output="false"> <cfif IsDefined(''application'')> <cftry> <!--- This is just in case there''s no app scope but variables.application ---> <cfset CreateObject(''java'', ''coldfusion.runtime.ApplicationScopeTracker'').cleanUp(application) /> <cfreturn true /> <cfcatch type="any"></cfcatch> </cftry> </cfif> <cfreturn false /> </cffunction>

Como lo mencionó Henry, él es mi publicación de blog sobre el tema: http://misterdai.wordpress.com/2010/06/14/cf-flag-application-to-run-onapplicationstart-part-2/


Por lo general, pongo una referencia a la sesión de cada usuario en una estructura en el ámbito de mi Aplicación para monitorear lo que está sucediendo en la aplicación. Tal vez hacer algo similar en el ámbito del Servidor podría ayudar aquí. Tratar:

<cfset server.runningApplications ["myApp"] = Application />

Entonces tendrías una referencia al objeto Aplicación real fuera del alcance de esa aplicación. Podrías probar todo tipo de cosas destructivas para deshacerte de él. Intenta esto bajo tu propio riesgo! Y hágalo en un servidor de desarrollo antes de hacerlo en su caja de producción. ;)


Si está utilizando Application.cfc, puede actualizarlo para forzar una llamada a onApplicationStart () si se pasa algo específico en la url, o algo similar. Simplemente coloque un cheque para ese token mágico en onRequestStart (), y llame onApplicationStart () si es.

Si no lo eres, puedes probar la sugerencia de @Marcos. No estoy seguro de qué ramificaciones puede tener en su aplicación. Lo que sugeriría es cambiar el nombre de su aplicación, por lo que comienza como una nueva aplicación.


Si está utilizando application.cfc, coloque esto en la parte superior de su función onRequestStart:

<!--- RESET APP? ---> <cfif isdefined("url.reinit")> <cfset OnApplicationStart()> <cfset OnSessionStart()> </cfif>

Luego, puede pasar una var url a cualquier cfm y la aplicación se reiniciará.


Una forma menos invasiva de finalizar tu aplicación es configurar temporalmente el tiempo de aplicación en algo muy corto.

Aquí hay un ejemplo de un archivo application.cfc donde la aplicación está configurada para que se agote el tiempo de espera en 10 segundos, lo cual es bastante corto para hacer un cambio y luego volver a verificar:

<cfcomponent displayname="Application"> <cfscript> this.name = "myAppName"; this.setclientcookies="yes"; this.sessionmanagement="yes"; this.sessiontimeout= CreateTimeSpan(0,0,60,0); this.applicationTimeout= CreateTimeSpan(0,0,0,10); </cfscript> ... </cfcomponent>

Es posible que deba limitar la sesión, también. Vea este artículo de Ben Nadel para ver en profundidad los tiempos de espera de aplicaciones y sesiones.


Utilice cfinvoke .

<cfinvoke method="onApplicationEnd" component="Application"> <cfinvokeargument name="ApplicationScope" value="#application#" /> </cfinvoke>



<cfset structClear(application) />