There is no distributed locking of this sort in JCS. 
This kind of thing is typically better handled at the
application level.

Aaron

--- Horton Simon <[EMAIL PROTECTED]>
wrote:

> Hi Aaron,
> 
> Does the JCSWorker function across JVM's sharing a
> remote cache? 
> 
> Or is it just the same local cache in the same JVM?
> 
> Thanks,
> Simon
> 
> -----Original Message-----
> From: Aaron Smuts [mailto:[EMAIL PROTECTED] 
> Sent: Friday, June 23, 2006 9:59 PM
> To: JCS Users List
> Subject: Re: JCS thread safe question.
> 
> There is a utility called jcs worker that will do
> what
> you need.
> 
>
http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/utils/access/JCSWorker.java?revision=332196&view=markup
> 
> 
> 
> 
> 
> --- emily chen <[EMAIL PROTECTED]> wrote:
> 
> > Hi Aaron,
> >    
> >   If I don't use a lock, thread 1 gets the report
> > from cache by key, not data found, so it goes to
> DB
> > to get the report;  before it puts the report into
> > cache, thread 2 accesses the cache by the same
> key,
> > and can not find the report, so it goes to DB to
> get
> > the data again. That means two thread will access
> DB
> > twice. But I want they just acces DB only one time
> > to get the same report.
> >    
> >   In my web application, it takes serval mins to
> run
> > a long report. Does it make sense to use a lock to
> > reduce DB access?
> >    
> >   Thanks,
> >    
> >   Lucy
> >    
> >   
> > 
> > Aaron Smuts <[EMAIL PROTECTED]> wrote:
> >   I don't understand what you need a lock for. You
> > can
> > go get the report, and then put it in the cache
> > under
> > the same key. You don't need to lock the key.
> Until
> > the new report is ready, client will get the old
> one
> > from the cache. Simply put the new value in the
> > cache
> > under the smae key name and it will replace the
> old
> > value.
> > 
> > Aaron
> > 
> > --- emily chen wrote:
> > 
> > > Hi Aaron,
> > > 
> > > I got you. I will implement the lock in my web
> > > application.
> > > 
> > > Many thanks,
> > > 
> > > Lucy
> > > 
> > > Aaron Smuts wrote:
> > > Of course JCS is Thread safe, if you mean that
> it
> > > can
> > > handle multiple threads accessing the same
> regions
> > > at
> > > the same time. 
> > > 
> > > It doesn't work the way you described, but it is
> > > thread safe. You won't get a corrupted value for
> a
> > > key. 
> > > 
> > > As for the memory cache, it is a reference
> cache.
> > It
> > > returns references to objects in memory. It does
> > not
> > > clone the values. If you are manipulating
> objects
> > > that are in the cache, any other Thread could
> get
> > a
> > > reference to that same object. . .. It is best
> to
> > > clone objects that are retrieved from the cache
> > > prior
> > > to modifying them or just don't modify objects
> > that
> > > have been put in the cache.
> > > 
> > > Aaron
> > > 
> > > --- emily chen wrote:
> > > 
> > > > Hi there,
> > > > 
> > > > I want to use JCS for my web application, and
> > have
> > > > some thread safe question.
> > > > 
> > > > Here is scenario: 
> > > > 
> > > > I have a JCS cache named
> > > �ePINBatchReportCache�?
> > > > which is used to save the ePIN Batch Report
> > data.
> > > > 
> > > > Thread 1:
> > > > 1) Get report data from Cache for key.
> > > > 2) If not data found in the cache, then lock
> > > > the cache for that key.
> > > > 3) Get report data from database.
> > > > 4) Put the report data in cache for key
> > > > 5) Release lock for that key.
> > > > 
> > > > Thread 2:
> > > > 1) Get the data from cache for key.
> > > > 2) Wait for lock to be released (should have
> > > > max wait time here).
> > > > 3) Get the data from cache.
> > > > 
> > > > Does JCS have the above functionality -- lock
> > the
> > > > key of cache? Or I have to put lock on the key
> > in
> > > > my web application source code?
> > > > 
> > > > Thank for your help.
> > > > 
> > > > Lucy 
> > > > 
> > > > 
> > > > ---------------------------------
> > > > Yahoo! Messenger with Voice. Make PC-to-Phone
> > > Calls
> > > > to the US (and 30+ countries) for 2�?min or
> > less.
> > > 
> > > 
> > >
> >
>
---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > > [EMAIL PROTECTED]
> > > For additional commands, e-mail:
> > > [EMAIL PROTECTED]
> > > 
> > > 
> > > 
> > > 
> > > ---------------------------------
> > > Yahoo! Messenger with Voice. PC-to-Phone calls
> for
> > > ridiculously low rates.
> > 
> > 
> >
>
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > 
> > 
> > 
> >             
> > ---------------------------------
> > Ring'em or ping'em. Make  PC-to-phone calls as low
> > as 1�/min with Yahoo! Messenger with Voice.
> 
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 
=== message truncated ===


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to