Yes you must enable query caching and setcachable on your criterion queries.
We have 2nd Level Caching working well. I also recommend giving all your
objects and queries a cache region.

Dan

Checkout my blog @ http://blog.agilejedi.com
Checkout my homepage @ http://www.agilejedi.com


On Tue, Feb 3, 2009 at 8:20 PM, Ayende Rahien <[email protected]> wrote:

> you need to enable query caching as well, and you need to mark the query as
> cachable.
> I don't think you can do it using FindAll
>
>
> On Wed, Feb 4, 2009 at 2:41 AM, jasonsirota <[email protected]> wrote:
>
>>
>> For reference, here's my config:
>>
>>    <activerecord isWeb="true" isDebug="false"
>>
>> threadinfotype="Castle.ActiveRecord.Framework.Scopes.HybridWebThreadScopeInfo,
>> Castle.ActiveRecord">
>>        <config>
>>            <add key="connection.driver_class"
>> value="NHibernate.Driver.SqlClientDriver" />
>>            <add key="dialect"
>> value="NHibernate.Dialect.MsSql2005Dialect" />
>>            <add key="connection.provider"
>> value="NHibernate.Connection.DriverConnectionProvider" />
>>            <add key="connection.connection_string" value="XXX"/>
>>            <add key="proxyfactory.factory_class"
>> value="NHibernate.ByteCode.Castle.ProxyFactoryFactory,
>> NHibernate.ByteCode.Castle" />
>>            <add key="cache.provider_class"
>> value="NHibernate.Caches.SysCache.SysCacheProvider,NHibernate.Caches.SysCache"
>> /
>> >
>>            <add key="relativeExpiration" value="300" />
>>        </config>
>>    </activerecord>
>>
>> On Feb 3, 4:37 pm, jasonsirota <[email protected]> wrote:
>> > I thought that you just had to wrap it in SessionScope, and
>> > SessionScope is enabled for the full httprequest using the httpmodule
>> >
>> > However, just to be safe, I wrapped it in a transaction:
>> >
>> >             Category[] defaultCategories;
>> >             using (new TransactionScope(OnDispose.Commit))
>> >             {
>> >                 defaultCategories = Category.FindAll();
>> >             }
>> >
>> > However, I still get the multiple db calls.
>> >
>> > On Feb 3, 4:23 pm, Stefan Sedich <[email protected]> wrote:
>> >
>> > > Do you not need to wrap your call to get all in a transaction? I
>> > > thought second level cache was only commited on commit of a
>> > > transaction?
>> >
>> > > Cheers
>> > > Stefan
>> >
>> > > On Wed, Feb 4, 2009 at 10:15 AM, jasonsirota <[email protected]>
>> wrote:
>> >
>> > > > After wrestling with the trunk version of ActiveRecord and
>> NHibernate
>> > > > and NH-Contrib version numbers I finally got cache support enabled
>> for
>> > > > the AR project, however I'm having trouble getting it to work.
>> >
>> > > > The call is something like:
>> >
>> > > > Category.FindAll(new Order("SortOrder"),true)
>> >
>> > > > which returns a list of category sorted by the db field "SortOrder".
>> >
>> > > > I've enabled caching on the Category object like:
>> >
>> > > > [ActiveRecord("Categories", Cache=CacheEnum.ReadOnly)]
>> > > > public class Category
>> > > > ...
>> >
>> > > > However, each time the page loads, it requeries the database instead
>> > > > of pulling the resulting list from the cache.
>> >
>> > > > SELECT this_.CategoryID as CategoryID4_0_, this_.Description as
>> > > > Descript2_4_0_, this_.SortOrder as SortOrder4_0_, this_.Type as
>> > > > Type4_0_ FROM BudgeterCategories this_ ORDER BY this_.SortOrder asc
>> >
>> > > > Any ideas?
>> > > > Jason
>> >
>> > > --
>> > > Stefan Sedich
>> > > Software Developerhttp://weblogs.asp.net/stefansedich
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" 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/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to