cfthread的间歇性问题

fet 发布于 2019-03-09 cfthread 最后更新 2019-03-09 14:40 14 浏览

我找到了this bug report。问题是,“这是怎么回事?”。 我有几种情况我在做这种事情。

<cfthread name="thread1" action="run">
code for thread1
</cfthread>
<cfthread name="thread2" action="run">
code for thread2
</cfthread>
下一个将会有一个实际的名字。
<cfthread name="CIMSThread" action="run">
code for CIMSThread
</cfthread>
<cfthread name="thread1,thread2,CIMSThread" action="join"></cfthread>
每隔一段时间,我都会遇到这种例外情况。
"Error","cfthread-638","04/10/13","15:14:14",,"CIMSTHREAD: null"
"Error","jrpp-1215","04/10/13","15:14:22","DWQueries","Error Executing Database 
Query.<br><b>Query Of Queries runtime error.</b><br>  
Table named CIMSThread.CIMSData was not found in memory.  etc"
当它第一次发生时,我再次运行适用的报告,并在不同的thead上获得相同类型的错误,并最终在不更改任何代码或数据的情况下成功运行。 当它第一次发生时,我也认为线程中可能会发生一些不好的事情,这会导致它崩溃,所以我做了一些事情来迫使它发生。但是,当我检查异常日志时,该线程中的错误出现了。在这些情况下,异常日志显示了这篇文章中的内容。 我们正在运行版本9,0,1,274733并启用了监视。 我是否受到所报告错误的影响,或者这可能是其他情况? 回复评论 我无法随意再现问题。在咨询我的管理员之后,我们已经关闭了监控,但这些页面并没有经常运行。如果错误没有出现一段时间,它不一定会证明任何事情。 有问题的线程包含长时间运行的查询。我刚才想到的是,有一个从未造成问题的非常频繁使用的页面。好页面和问题页面之间有两个区别。好的页面只运行两个线程并加入它们。问题页面运行超过两个。另外,好网页上的查询不需要太长的时间来执行。 对于那些建议超时的人,这不是 这是一些代码。该查询大约需要4秒钟才能运行。
<cfthread name="ThreadWithTimeOut" action="run">
<cfquery name="thread.x" datasource="dw" timeout="1">
sql deleted
</cfquery>
</cfthread>
<cfthread action="join" name="ThreadWithTimeOut"></cfthread>
<cfdump var="#ThreadWithTimeOut.x#" metainfo="no">
异常日志显示了这一点:
"Error","cfthread-6","04/16/13","14:19:15",,"THREADWITHTIMEOUT: 
Error Executing Database Query. ** 
Error ** (11319) [Red Brick Warehouse JDBC Driver] : 
Query timeout (1 seconds) has expired."
coldfusion.tagext.sql.QueryTag$DatabaseQueryException: Error Executing Database Query.
和这个:
"Error","jrpp-238","04/16/13","14:19:15","Dan",
"Element X is undefined in THREADWITHTIMEOUT.
这是一组不同的例外情况。前面的人说线程为空。
已邀请:

eut

赞同来自:

看看你越来越接近的错误:

"Error","cfthread-638","04/10/13","15:14:14",,"CIMSTHREAD: null"
"Error","jrpp-1215","04/10/13","15:14:22","DWQueries","Error Executing Database 
Query.<br><b>Query Of Queries runtime error.</b><br>  
Table named CIMSThread.CIMSData was not found in memory.  etc"
从该错误我只能假设(因为你没有在你的问题中提供任何实际代码)CIMSTHREAD中的代码引发错误导致线程崩溃而不返回任何数据。 此外,从错误(和您的问题),我可以推断您的线程正在查询数据库并将其传回。 现在我个人不知道为什么你在世界上使用线程来查询你的数据库。如果您需要诉诸于此,因为查询需要一段时间才能执行,那么您的朋友就会遇到更大的问题。我会将查询在数据库中运行,并附加到数据库本身。看看你是否需要添加索引或以某种方式使用查询,以便更快地返回。 底线......我认为你的问题不是cfthread问题,它是你查询的超时问题。