How much had you configured your CF9 eHCache instance?

Or had you left it so lots of stuff got cached?

Mark

On Tue, Feb 9, 2010 at 1:50 AM, Dorioo <[email protected]> wrote:

> I'm ending this experiment for now and using the default ehCache provider.
> Over time, the experimental CF9 cache provider led to out of memory issues.
>
> Biggest Top-Level Dominator Classes: coldfusion.runtime.TemplateProxy
> (77.62% retained heap)
> Biggest Top-Level Dominator Class Loaders: 
> coldfusion.bootstrap.BootstrapClassLoader
> (92.04% retained heap)
>
>
> - Gabriel
>
> On Fri, Jan 22, 2010 at 11:07 AM, Dorioo <[email protected]> wrote:
>
>> Found the cause. The appender was defining "getScope()" and returning
>> "none". This makes sense in the "NoCache" appender but makes no sense in a
>> real appender.
>>
>> It's not even one of the "VirtualMethodException" functions mentioned by
>> Mark so need to define it. Removed it and back to "so far, so good".
>>
>> - Gabriel
>>
>>
>> On Fri, Jan 22, 2010 at 10:26 AM, Dorioo <[email protected]> wrote:
>>
>>> hmm. Cache not updating on many to one updates unless parent explicitly
>>> discarded.
>>>
>>> :( Back to testing.
>>>
>>> - Gabriel
>>>
>>>
>>> On Wed, Jan 20, 2010 at 5:15 PM, Dorioo <[email protected]> wrote:
>>>
>>>> A. Yup, that's what I'm referring to. :-) I don't want to be responsible
>>>> for calling shutdown().
>>>>
>>>> What was bothering me is the case where say, you're reinitlizating your
>>>> app, transfer gets loaded, and a bad error happens that stops the
>>>> initialization process midway. You're then left with an instance of ehcache
>>>> and no way to shut it down.
>>>>
>>>> Granted this should be an edge exception in production but led me to
>>>> this experiment.
>>>>
>>>> B. Attached is what I have so far. It's all cache and no statistics but
>>>> maybe others will find it useful.
>>>>
>>>>    1. The CF9 object cache is _not_ exclusive to this provider so I
>>>>    didn't incorporate any settings for the cache. Those should be set 
>>>> elsewhere
>>>>    in your app using CacheSetProperties()
>>>>    2. Currently extends
>>>>    "transfer.com.cache.provider.AbstractBaseProvider" so it's assuming you 
>>>> have
>>>>    a "/transfer" mapping. Change as needed
>>>>    3. ShutDown() simulates the existing ehCache implementation by
>>>>    discarding all related objects. However, if this call were to fail or 
>>>> never
>>>>    be called, the object themselves timeout and so they'll eventually be 
>>>> purged
>>>>    regardless of whether shutdown() fails or is never called.
>>>>    4. Usage example below where timeSpan and idleTime are minutes,
>>>>    required, and are explained in the CF9's CachePut() function.
>>>>
>>>> <defaultcache provider="transfer.path.to.this.file.antCF9CacheProvider">
>>>>      <setting name="timeSpan" value="30"/>
>>>>      <setting name="idleTime" value="15"/>
>>>> </defaultcache>
>>>>
>>>> - Gabriel
>>>>
>>>> On Wed, Jan 20, 2010 at 4:12 PM, Mark Mandel <[email protected]>wrote:
>>>>
>>>>> On Thu, Jan 21, 2010 at 2:34 AM, Dorioo <[email protected]> wrote:
>>>>>
>>>>>> Main benefit I was looking for is not having to manage the ehCache
>>>>>> instance myself.
>>>>>
>>>>>
>>>>> You know the eHCache provider in Transfer manages this for you? You
>>>>> just call .shutdown() on transfer, and the ehCache Cache is shutdown
>>>>> properly. No more management than that necessary.
>>>>>
>>>>>
>>>>>> If I fail to properly shutdown an ehcache instance, it remains in
>>>>>> memory. Using the CF9 object cache, I simulate a "shutdown" by discarding
>>>>>> all of the objects in the CF9 object cache that begin with my providers
>>>>>> naming prefix. And if that were to fail for any reason, the objects
>>>>>> themselves have a timeout and would be purged in time anyway by CF9.
>>>>>>
>>>>>> Obvious limitations are with the limited ways in which CF9 allows you
>>>>>> to interact with its object cache but so far it's looking viable for my
>>>>>> needs.
>>>>>>
>>>>>
>>>>> When you get it finished, feel free to post it to the list, and I can
>>>>> add it as a cache provider in Transfer.
>>>>>
>>>>> Mark
>>>>>
>>>>> --
>>>>> E: [email protected]
>>>>> 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 [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/transfer-dev?hl=en
>>>>>
>>>>
>>>>
>>>
>>
>  --
> 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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]<transfer-dev%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/transfer-dev?hl=en
>



-- 
E: [email protected]
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/transfer-dev?hl=en

Reply via email to