了解在群集中使用哪种Coldfusion服务器

我们为Coldfusion应用程序提供了一个2台服务器的负载均衡集群。 我遇到了一些奇怪的行为,并希望找出正在运行Web应用程序的用户当前所在的两台服务器中的哪一台。 有没有办法找出哪个服务器正在用于特定的请求?

cgi.servervariables只提供cfprod.domain.com这样的信息,我需要的是cfprod1.domain.com或cfprod2.domain.com

您可以使用以下命令获取CF实例名称:#GetMetricData(“PERF_MONITOR”)。InstanceName#

问题是,您可能没有启用指标服务,因为在企业版上它默认是禁用的。 如果还有另一种获取实例名称的方法,我也不会感到惊讶。

如果你有一个标准头包含,可能会输出服务器名称作为HTML注释。 这将意味着每个服务器上的文件略有不同,但可能会帮助您找出故障排除的问题。 如果头文件必须相同,则添加代码以包含或读取其他可能不同的文件,如果两个服务器定期同步webroot,则可能在webroot之外。

如果您希望在不添加额外内容的情况下在服务器上进行pipe理,则可以以编程方式获取正在运行的服务器ColdFusion的主机名。 这将是群集中的每个节点所独有的。

<cfset hostName=CreateObject("java", "java.net.InetAddress").localhost.getHostName()/> 

这在StackOverflow上讨论: https ://stackoverflow.com/questions/830782/in-coldfusion-is-there-a-way-to-determine-what-server-the-code-is-running-on

我有一个简单的应用程序,用于在ColdFusion群集中testing会话稳定性,故障转移和复制。 你可以从我的博客下载session_test.zip:http://www.talkingtree.com/blog/downloads.cfm

此testing报告您的请求处于哪个实例,以及服务器实例或会话令牌是否发生了更改(如故障转移期间)。 如果会话故障恢复后恢复到原始服务器,那么它也会显示。