Hi Clinton, sorry my mail was a little confusing - I took advantage from some spare time during the work to reply quickly :P
So, things are that I was able to use memcached in iBATIS 2 but I'm no more able to (re)use the same stuff in iBATIS 3 . The "issue" - if I can call it like this - is that, since memcached doesn't support namespaces, when flushing the cache, I don't know which statements I've to invalidate - in iBATIS2 was quite simple since the group helped me a lot - and taking inspiration from what you did with OSCache was more simple. BTW, here[1] you can find the Cache implementation I've been using - nothing complicate - that just wraps the memcached client to store/retrieve the cached objects. Also in this case, I took inspiration from your cache decorator implementations to see how to use the Cache interface. Finally, just to give you a tangible sample of the scenario I speak (already reported on the iBATIS Wiki): I realized the REST-services layer for this[2] online-radio using iBATIS2 as persistence layer, the application is replicated on more than 2 servlet (I had to patch iBATIS2 in way to supply the IBATIS-555 issue and notified on the dev ML - [3]) container on different servers, using 3 nodes of memcached server. Thanks in advance and thanks for your patience, best regards!!! Simone [1] http://tinyurl.com/yb8vxl4 [2] http://www.gooomradio.com/ [3] http://tinyurl.com/ye43gas On Wed, Nov 18, 2009 at 7:38 PM, Clinton Begin <clinton.be...@gmail.com> wrote: > Maybe I don't understand... > > * Are you saying that you have this working in iBATIS 2, but can't get it > to work with iBATIS 3? > > * Or you can't get it to work in either, but understand iB2 better so want > it described in those terms? > > Cheers, > Clinton > > On Wed, Nov 18, 2009 at 2:37 AM, Simone Tripodi <simone.trip...@gmail.com> > wrote: >> >> Hi Clinton, >> unfortunately the official version of Memcached - the one we've been >> using on production for years - doesn't support namespaces/tags, there >> is a patched version called Memcached-tags[1] but isn't officially >> supported :( >> Can you provide me please any idea how to supply this lack? Is there >> any way to obtain the cache group, speaking in iBatis2 therms? >> Thanks in advance, best regards >> Simone >> >> [1] http://code.google.com/p/memcached-tag/ >> >> On Wed, Nov 18, 2009 at 7:49 AM, Simone Tripodi >> <simone.trip...@gmail.com> wrote: >> > Hi Clinton, >> > thanks for your kind reply, I'll let you know ASAP the results of my >> > tries if you're interested on :) >> > Best regards, >> > Simone >> > >> > On Wed, Nov 18, 2009 at 12:25 AM, Clinton Begin >> > <clinton.be...@gmail.com> wrote: >> >> I'll try to answer in two short statements to see if that helps. I >> >> won't >> >> have time to look through the code anytime soon... >> >> >> >> * I think you can solve the first problem of flushing the whole cache >> >> by >> >> passing the cache's namespace to memcached as a cache domain (I'm not >> >> sure >> >> what memcached calls them, but essentially flush only a partition or >> >> group >> >> of the cached elements (OSCache calls this a domain I believe). >> >> >> >> * The putObject isn't called until the end of the session, or when >> >> commit >> >> is called. It's a transactional cache, so if you rollback a >> >> transaction >> >> before closing the session or committing... the cache won't be updated >> >> with >> >> potentially erroneous or inconsistent data. >> >> >> >> Hope that helps, >> >> Clinton >> >> >> >> On Tue, Nov 17, 2009 at 1:23 PM, Simone Tripodi >> >> <simone.trip...@gmail.com> >> >> wrote: >> >>> >> >>> Hi all guys, >> >>> I've been doing some experiment using the last beta of iBatis 3 and >> >>> I've the feeling you happily fixed the inglorious IBATIS-555 issue >> >>> about the CacheKey unique hashcode generation on different JVMs :) >> >>> >> >>> Now I've been porting my old stuff to the new iBatis implementation >> >>> and everything has worked fine until I plugged-in the cache, I really >> >>> hope you can help me to understand where I'm wrong: I implemented a >> >>> Memcached-based Cache class, wrapping the spy memcached client >> >>> (code.google.com/p/spymemcached/), injecting a singleton instance to >> >>> the Configuration programmatically using google-guice 2 and finally >> >>> referenced in the sql-map via the snippet: >> >>> >> >>> <cache-ref namespace="memcached"/> >> >>> >> >>> What I noticed, reading the logs, is the following: >> >>> * when flushing the statements defined in the sql map, is called the >> >>> method org.apache.ibatis.cache.Cache#clear(): that makes me a little >> >>> worried, because in a memcached context I ideally want to use just one >> >>> memcached client instance and reference it in the whole application, >> >>> when performing an insert operation I wouldn't flush the whole cache, >> >>> but rather remove only the interested statements; since I'm still used >> >>> to the old iBatis2 cache model, how can I fix it? >> >>> * no data is cached, the method >> >>> org.apache.ibatis.cache.Cache#putObject(Object,Object) is never >> >>> called; >> >>> >> >>> All the code I've been producing is public, you can find it on >> >>> google-code[1], and on the test directory you can find the scenario[2] >> >>> I described >> >>> >> >>> Thanks in advance for your help, any kind of suggestion will be very >> >>> appreciated!!! >> >>> Simone >> >>> >> >>> >> >>> [1] http://code.google.com/p/ibaguice/source/browse/#svn/trunk >> >>> [2] >> >>> >> >>> http://code.google.com/p/ibaguice/source/browse/trunk/src/test/java/com/ibaguice/SimpleTestCase.java >> >>> -- >> >>> http://www.google.com/profiles/simone.tripodi >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org >> >>> For additional commands, e-mail: user-java-h...@ibatis.apache.org >> >>> >> >> >> >> >> > >> > >> > >> > -- >> > http://www.google.com/profiles/simone.tripodi >> > >> >> >> >> -- >> http://www.google.com/profiles/simone.tripodi >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org >> For additional commands, e-mail: user-java-h...@ibatis.apache.org >> > > -- http://www.google.com/profiles/simone.tripodi --------------------------------------------------------------------- To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org For additional commands, e-mail: user-java-h...@ibatis.apache.org