1

我的问题似乎与这个有关:

Coldfusion memcached 连接

但是,我一直无法解决它。

如果我将此代码放在 application.cfm 中:

<cfif not IsDefined("application.memcached")>   
  <cfset application.memcachedFactory = createObject("component","memcachedFactory").init("192.168.2.91:11211")>
  <cfset application.memcached = application.memcachedFactory.getmemcached()>
</cfif>

该页面可能适用于 270 次通话。然后它将开始失败,并出现错误“对象实例化异常”代码正在与 memcached 正确对话。我可以发送和接收数据。似乎java的东西用完了..线程、套接字、某种句柄。我对java知之甚少,并且被卡住了。

4

1 回答 1

3

这对我来说似乎是错的,唐。为什么在第一次调用后这段代码会再次运行?它应该运行 1 次,之后您可以引用您的对象。您的 application.cfm 的其余部分是什么样的?您是否添加了带有“名称”的 cfapplication 标签?

如果您未能设置应用程序“名称”(通过 cfapplication 标记或 application.cfc 中的“this.name”),“application.x”变量将被视为常规变量。页面请求结束后,它将“消失”并要求下一个请求重新实例化对象。

在这种情况下,“isDefined()”的目的是确保它只运行一次 - 为您提供一个单例(单一引用),您可以一次又一次地使用它而无需重新实例化它。听起来您不在应用程序的“内部”。

于 2012-06-08T16:18:41.630 回答