ventajas tutorial programacion lenguaje español ejemplos desventajas descargar java networking coldfusion

java - tutorial - coldfusion ventajas y desventajas



En ColdFusion, ¿hay alguna manera de determinar en qué servidor se está ejecutando el código? (6)

¿Hay alguna forma en el código de ColdFusion para determinar en qué servidor se está ejecutando el código? Tengo pocos servidores ColdFusion con carga equilibrada. Quiero poder saber en qué servidor se está ejecutando el código cuando detecto una excepción, por lo que puedo incluir esa información en el código de registro / informe.

Los servidores son Windows 2003 / IIS, si eso es importante. Me encantaría saber cómo hacerlo en Linux / Apache también. :-)


Creo que CGI.SERVER_NAME obtendrá lo que desea.

Editar por comentario: es posible que puedas hacer algo un poco más "bajo nivel" ...

<cfset inet = CreateObject("java", "java.net.InetAddress")> <cfdump var = "#inet.getLocalhost().gethostname()#">

(No hay ningún servidor CF aquí en el trabajo, así que no puedo probar eso).


Esto puede ayudarte más ...

<cfscript> machineName = createObject("java", "java.net.InetAddress").localhost.getCanonicalHostName(); hostaddress = createObject("java", "java.net.InetAddress").localhost.getHostAddress(); </cfscript> <cfdump var="#machineName#"><br /> <cfdump var="#hostaddress#"><br />


Otro lugar para buscar información sobre la ejecución del proceso JRun es, por ejemplo, lo siguiente:

<cfset oErrorJRun = createObject("java","jrunx.kernel.JRun")/> <cfset strServerName = oErrorJRun.ServerName />

Eso le dará el nombre de la instancia JRun donde se está ejecutando el código. Hemos encontrado ocasiones en las que en nuestro entorno de clúster, el IIS en un nodo registrará el hit de la página, pero el JRun en el otro nodo manejará la solicitud. Ocasionalmente, dejaremos de responder a un JRun de un nodo, y tendremos que reiniciar algunos servicios para que el tráfico regrese a ese nodo. Utilizo el código anterior en mi complemento de manejo de errores para pegar el nombre del servidor en un correo electrónico que envío a los administradores, y para incorporarlo en el nombre del archivo donde escribo la información de depuración.


Para nosotros que usamos nodos detrás de un proxy de equilibrio de carga, terminé llamando al comando ''hostname'', también funciona en Windows, así que aquí está el conjunto:

<cfscript> machineName = createObject("java", "java.net.InetAddress").localhost.getCanonicalHostName(); hostaddress = createObject("java", "java.net.InetAddress").localhost.getHostAddress(); </cfscript> <cfdump var="#machineName#"><br /> <cfdump var="#hostaddress#"><br /> <cfdump var="#CGI.SERVER_NAME#"><br /> <cfexecute name = "hostname" timeout = "1"></cfexecute>


Puede usar variables de servidor como

server.coldfusion.appserver server.coldfusion.expiration server.coldfusion.productlevel server.coldfusion.productname server.coldfusion.productversion server.coldfusion.rootdir server.coldfusion.serialnumber server.coldfusion.supportedlocales server.os.additionalinformation server.os.arch server.os.buildnumber server.os.name server.os.version

para ajustar su código a plataformas específicas. Haga un <cfdump var=”#SERVER#” /> para ver qué se aplica a su versión de Coldfusion.

Puede obtener el nombre de host con una llamada Java:

<cfscript> machineName = createObject("java", "java.net.InetAddress").localhost.getHostName(); instanceName = createObject("java", "jrunx.kernel.JRun").getServerName(); </cfscript>


Use la siguiente pieza de código para obtener el nombre de dominio.

<cfoutput>#cgi.server_name#</cfoutput>

Esperando que esto es lo que estás esperando.