For a classloader, I use an instance of JavaLoader.cfc from Mark Mandel, with
the oscache-2.3.2.jar added to it.
I have a convenience method to get create a cache:
<Cffunction name="createCacheAdministrator" output="false" access="public">
<Cfreturn
this.create("com.opensymphony.oscache.general.GeneralCacheAdministrator").init()>
</cffunction>
Then I have DAO CFC's, which hit the DB directly, and MyDAOCacheImpl which
subclass the DAO's to intercept "Get" calls and cache them... Example:
-- IN MyDAOCacheImpl
<cffunction name="init" access="public" output="false"
hint="Pseudo Constructor. ">
<cfargument required="true" name="dsn" type="string">
<cfargument required="true" name="loader" >
<cfset Super.init(arguments.dsn)>
<Cfset this.cache=arguments.loader.createCacheAdministrator()>
<Cfset this.refresh=(60*60*24)>
<cfreturn this />
</cffunction>
Here's a cached query...
<!--- READ --->
<cffunction name="GetGallery" access="public" output="false">
<cfargument required="true" name="id" type="numeric">
<Cfset var key="Gallery_#arguments.id#">
<Cfset var val="">
<Cfset var err="">
<Cftry>
<cfset val=
#this.cache.getFromCache(key,javacast("int",this.refresh))#>
<cfcatch>
<Cfset err="">
<cftry>
<Cfset this.cache.cancelUpdate(key)>
<Cfscript>
updated=false;
val=super.getGallery(arguments.gID);
this.cache.putInCache(key,val);
updated=true;
</Cfscript>
<cfcatch>
<Cfset err="#cfcatch.message#">
</cfcatch></cftry>
<cfif not UPDATED>
<Cfset this.cache.cancelUpdate(key)>
<Cfthrow type="CacheError" message="Error
inserting #key# into the cache: #err#">
</cfif>
</cfcatch></cftry>
<cfreturn val>
</cffunction>
> Post the code for how you are using OSCache. It looks like you are
> definitely ending up with too many references to internal CF classes
> on your CFCs. Remember - a CFC does not equate to a single Java object
> - thus caching concepts that work in the java world may not work
> exactly the same w/ CFCs.
>
> >I'm not sure if these are being sent to the list. Please let me know.
> Could
> >really use help in figuring out the memory leak caused by caching my
> CFC's
> >in application scope. Thanks - Dov
> >
> >
> >
> >http://www.houseoffusion.com/groups/CF-Talk/thread.
cfm/threadid:52111#281118
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create Web Applications With ColdFusion MX7 & Flex 2.
Build powerful, scalable RIAs. Free Trial
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJS
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:281240
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4