That's a new one on me..never seen that before.

What version of CF is this? What version of Transfer?

Could need to put a StructKeyExists() check around that reap statement, but
it shouldn't be necessary, as the ReferenceQueue.poll() should be
syncronised.

Mark

On Thu, Feb 25, 2010 at 7:18 AM, NickHaggmark <nhaggm...@gmail.com> wrote:

> Hi Gang!
>
> I'm running into a little snag right now involving using cache
> evaluation on a TQL query.  My query is relatively simple, however it
> looks like it's intermittently losing it's reference to a cached
> version of the compiled SQL statement in Transfer.  What I'm trying to
> figure out is the reason for this.
>
> My query looks like this:
>
> <cfset query = getTransfer().createQuery("from template.SMSTemplate as
> t where t.name = :name and t.active = :active and t.parentTemplateID
> is null") />
>
> <cfset query.setParam('active', 1, 'boolean') />
> <cfset query.setParam('name', 'whatever name', 'string') />
> <cfset query.setCacheEvaluation(true) />
>
> <!--- pull out our queryset --->
> <cfset qTemplateID = getTransfer().listByQuery(query) />
>
> Relatively simple query, however it's intermittently giving me the
> following error in my logs (doesn't appear to follow any real pattern
> for when it happens, but the errors appear to happen in clusters):
>
> "Information","cfthread-7","02/24/10","14:42:18","GSS_MESSENGER","Error
> in action on incoming message => [Cannot find
> java.lang.ref.softrefere...@9aa4a2 key in structure.] [The specified
> key, java.lang.ref.softrefere...@9aa4a2, does not exist in the
> structure.] [] [[{ID={CF_CFPAGE},COLUMN={0},TEMPLATE={C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\tql\collections
> \EvaluationCache.cfc},RAW_TRACE={       at
> cfEvaluationCache2ecfc344983282$funcREAP.runFunction(C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\tql\collections
> \EvaluationCache.cfc:81)},TYPE={CFML},LINE={81}},
> {ID={CF_UDFMETHOD},COLUMN={0},TEMPLATE={C:\nwmdev\apache\Apache2\htdocs
> \workspace\frameworks\transfer11\com\tql\collections
> \EvaluationCache.cfc},RAW_TRACE={       at
> cfEvaluationCache2ecfc344983282$funcHAS.runFunction(C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\tql\collections
> \EvaluationCache.cfc:30)},TYPE={CFML},LINE={30}},
> {ID={CF_TEMPLATEPROXY},COLUMN={0},TEMPLATE={C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\tql
> \SelectStatement.cfc},RAW_TRACE={       at
> cfSelectStatement2ecfc38660934$funcSELECTSTATEMENT.runFunction(C:
> \nwmdev\apache\Apache2\htdocs\workspace\frameworks\transfer11\com\tql
> \SelectStatement.cfc:83)},TYPE={CFML},LINE={83}},
> {ID={CF_TEMPLATEPROXY},COLUMN={0},TEMPLATE={C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\tql
> \TQLManager.cfc},RAW_TRACE={    at
> cfTQLManager2ecfc1352251664$funcEVALUATEQUERY.runFunction(C:\nwmdev
> \apache\Apache2\htdocs\workspace\frameworks\transfer11\com\tql
> \TQLManager.cfc:28)},TYPE={CFML},LINE={28}},
> {ID={CF_TEMPLATEPROXY},COLUMN={0},TEMPLATE={C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com
> \Transfer.cfc},RAW_TRACE={      at
> cfTransfer2ecfc1351268847$funcLISTBYQUERY.runFunction(C:\nwmdev\apache
> \Apache2\htdocs\workspace\frameworks\transfer11\com\Transfer.cfc:
> 564)},TYPE={CFML},LINE={564}},
> {ID={CF_TEMPLATEPROXY},COLUMN={0},TEMPLATE={C:\nwmdev\apache
> \Apache2\htdocs\workspace\cfc\com\nextweb\mobile\gss\service
> \TemplateService.cfc},RAW_TRACE={       at
>
> cfTemplateService2ecfc651746452$funcGETDEFAULTTEMPLATEIDBYNAME.runFunction(C:
> \nwmdev\apache\Apache2\htdocs\workspace\cfc\com\nextweb\mobile\gss
> \service\TemplateService.cfc:251)},TYPE={CFML},LINE={251}},
> {ID={CF_UDFMETHOD},COLUMN={0},TEMPLATE={C:\nwmdev\apache\Apache2\htdocs
> \workspace\cfc\com\nextweb\mobile\gss\service
> \TemplateService.cfc},RAW_TRACE={       at
> cfTemplateService2ecfc651746452$funcGETTEMPLATEIDBYNAME.runFunction(C:
> \nwmdev\apache\Apache2\htdocs\workspace\cfc\com\nextweb\mobile\gss
> \service\TemplateService.cfc:192)} ...
>
> I'm not sure what could cause this to happen, however it only seems to
> happen in one place in the application. It's failing in a block that
> takes some information collected from the URL along with a loaded
> service object and fires it off in a CFTHREAD for async processing.
> Do you think that it could possibly be an issue from being executed
> from within CFTHREAD?  When I'm firing off the thread to process the
> action that's intermittently failing from the above error(s), the
> service object that is passed in is loaded with a reference to the
> TransferFactory which is living in the application scope.
>
> So, in summary, here's what's happening:
>
> 1.) Request comes in, some information is collected and a service
> object is created with a reference to Transfer (which resides in
> APPLICATION (which is persisted for 12 hours)).
>
> 2.) The information that is collected and the service object are
> passed into a uniquely named CFTHREAD for asyc processing.
>
> 3.) The service object processes the data collected in the cfthread
> and hits the database (and cached Transfer objects) for validation,
> etc.  During that process the TQL query listed above is executed (with
> useCacheEvaluation turn on).
>
> 4.) This process intermittently fails giving an error similar to the
> above listed block from our logs.
>
> Anyone have any thoughts as to why this might be happening?  I've been
> playing with it for a day now and I'm getting frustrated.
>
> Thanks!
>
> Nick Haggmark
>
> --
> Before posting questions to the group please read:
>
> http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer
>
> You received this message because you are subscribed to the Google Groups
> "transfer-dev" group.
> To post to this group, send email to transfer-dev@googlegroups.com
> To unsubscribe from this group, send email to
> transfer-dev+unsubscr...@googlegroups.com<transfer-dev%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/transfer-dev?hl=en
>



-- 
E: mark.man...@gmail.com
T: http://www.twitter.com/neurotic
W: www.compoundtheory.com

Hands-on ColdFusion ORM Training @ cf.Objective() 2010
www.ColdFusionOrmTraining.com/

-- 
Before posting questions to the group please read:
http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer

You received this message because you are subscribed to the Google Groups 
"transfer-dev" group.
To post to this group, send email to transfer-dev@googlegroups.com
To unsubscribe from this group, send email to 
transfer-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en

Reply via email to