ColdFusion - 获取大量错误报告 - 用户未指出任何问题

时间:2009-08-21 13:17:21

标签: coldfusion cluster-computing

好的,这是背景。我们有一个用于运行我们的coldfusion服务器的集群环境设置,它基本上分为两个不同的实例,通用地址重定向请求。我有我的应用程序设置,只要用户发现错误,就会向我发送电子邮件。

在过去一周左右的时间里,我遇到了一些案例,一个用户在通过相关应用程序时收到了超过5分钟的500多封错误电子邮件。在正常情况下,我可能整天都会收到十几个。在大多数情况下,我很快就能与用户交谈,并且他们报告没有收到任何错误页面,并且他们能够完成他们的交易。

所涉及的应用程序,非常简单,用户登录,他们经历了大约6个不同的页面,每个页面都提交表单发布数据到下一个,这些表单变量需要继续。我似乎为这些大量电子邮件集合中的错误得到的错误是没有在每个页面上查找第一个表单变量。 “错误消息:元素SESSION_ID在FORM中未定义。” - 似乎每一次。

当我查看错误电子邮件时,我可以看到引用页面和报告页面是什么,并且可以逐步跟踪通过应用程序的用户直到完成 - 每个页面一次生成这些错误电子邮件数十个

我的一个假设是,群集服务器在每个物理服务器上向应用程序的两个实例发送请求,并且用户会话所在的请求经过罚款,但请求“未使用”服务器获取没有表单数据的请求,并触发这些错误电子邮件。这看起来有道理吗?谢谢 -


其他信息 - 我刚刚完成报告,所有这些事件之间的另一个主要相似之处是CGI.referrer变量(我在错误电子邮件中发送)未填充。在这些大量电子邮件的每种情况下,它们都没有通过cgi.referrer,但在我的所有正常错误报告中,它都会被添加。我认为这很奇怪..

2 个答案:

答案 0 :(得分:0)

这可能是因为CGI变量并不总是被定义。它真的取决于Web服务器传递它们。 您可能希望在依赖它们之前测试它们的存在......就像这样......

<cfif CGI.varname IS NOT "">
   CGI variable exists
<cfelse>
   CGI variable does not exist
</cfif>

或者甚至可能是CFPARAM,以确保你在那里有你的CGI变种。

希望这有帮助。

答案 1 :(得分:0)

同意,如果cgi变量可能无法通过群集服务器传递,请使用cfparam作为默认值。

也可能值得为您的错误报告添加一些检查,因此,而不是1000个电子邮件报告1-2个错误的相同变化,您只需要1个摘要电子邮件...减少麻烦然后必须删除所有这些巨大的额外电子邮件。