Re: How do I unlock?

2005-01-11 Thread Chris Lamprecht
What about a shutdown hook?
  
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { /* whatever */ }
});

see also http://www.onjava.com/pub/a/onjava/2003/03/26/shutdownhook.html


On Tue, 11 Jan 2005 13:21:42 -0800, Doug Cutting [EMAIL PROTECTED] wrote:
 Joseph Ottinger wrote:
  As one for whom the question's come up recently, I'd say that locks need
  to be terminated gracefully, instead. I've noticed a number of cases where
  the locks get abandoned in exceptional conditions, which is almost exactly
  what you don't want.
 
 The problem is that this is hard to do from Java.  A typical approach is
 to put the process id in the lock file, then, if that process is dead,
 ignore the lock file.  But Java does not let one know process ids.  Java
 1.4 provides a LockFile mechanism which should mostly solve this, but
 Lucene 1.4.3 does not yet require Java 1.4 and hence cannot use that
 feature.  Lucene 2.0 is likely to require Java 1.4 and should be able to
 do a better job of automatically unlocking indexes when processes die.
 
 Doug
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 


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



Re: How do I unlock?

2005-01-11 Thread Otis Gospodnetic
I didn't pay full attention to this thread, but it sounds like somebody
may be interested in RuntimeShutdownHook (or some similar name) as a
place to try to release the locks.

Otis

--- Joseph Ottinger [EMAIL PROTECTED] wrote:

 On Tue, 11 Jan 2005, Doug Cutting wrote:
 
  Joseph Ottinger wrote:
   As one for whom the question's come up recently, I'd say that
 locks need
   to be terminated gracefully, instead. I've noticed a number of
 cases where
   the locks get abandoned in exceptional conditions, which is
 almost exactly
   what you don't want.
 
  The problem is that this is hard to do from Java.  A typical
 approach is
  to put the process id in the lock file, then, if that process is
 dead,
  ignore the lock file.  But Java does not let one know process ids. 
 Java
  1.4 provides a LockFile mechanism which should mostly solve this,
 but
  Lucene 1.4.3 does not yet require Java 1.4 and hence cannot use
 that
  feature.  Lucene 2.0 is likely to require Java 1.4 and should be
 able to
  do a better job of automatically unlocking indexes when processes
 die.
 
 Agreed - but while there are some situations in which releasing locks
 is
 difficult (i.e., JVM catastrophic shutdown), there are others in
 which
 attempts could be made via finally blocks, etc.
 

---
 Joseph B. Ottinger
 http://enigmastation.com
 IT Consultant   
 [EMAIL PROTECTED]
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


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



Re: How do I unlock?

2005-01-11 Thread Otis Gospodnetic
Eh, that exactly :)  When I read my emails in reverse order

--- Chris Lamprecht [EMAIL PROTECTED] wrote:

 What about a shutdown hook?
   
 Runtime.getRuntime().addShutdownHook(new Thread() {
 public void run() { /* whatever */ }
 });
 
 see also
 http://www.onjava.com/pub/a/onjava/2003/03/26/shutdownhook.html
 
 
 On Tue, 11 Jan 2005 13:21:42 -0800, Doug Cutting [EMAIL PROTECTED]
 wrote:
  Joseph Ottinger wrote:
   As one for whom the question's come up recently, I'd say that
 locks need
   to be terminated gracefully, instead. I've noticed a number of
 cases where
   the locks get abandoned in exceptional conditions, which is
 almost exactly
   what you don't want.
  
  The problem is that this is hard to do from Java.  A typical
 approach is
  to put the process id in the lock file, then, if that process is
 dead,
  ignore the lock file.  But Java does not let one know process ids. 
 Java
  1.4 provides a LockFile mechanism which should mostly solve this,
 but
  Lucene 1.4.3 does not yet require Java 1.4 and hence cannot use
 that
  feature.  Lucene 2.0 is likely to require Java 1.4 and should be
 able to
  do a better job of automatically unlocking indexes when processes
 die.
  
  Doug
  
 
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail:
 [EMAIL PROTECTED]
  
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


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



Re: How do I unlock?

2005-01-11 Thread Chris Hostetter
: What about a shutdown hook?

Interesting idea, at the moment the file is created on disk, the
FSDirectory could add a shutdown hook that checked for the existence of
the file and if it's still there (implying that the Lock owner failed
without releasing the lock) it can forcably remove it.

Of course: this assumes that LockFiles are never shared between processes
-- ie: if client A is waiting on a lock that client B is holding, does the
lock A eventually gets use the same file that B's lock was using, or does
the old lock file get deleted and a new one created ?

(I don't really understand a lot of Lucene's locking code)


-Hoss


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