org.apache.lucene.store
Class NativeFSLockFactory
public class NativeFSLockFactory
Implements
LockFactory
using native OS file locks
(available through java.nio.*). Note that for certain
filesystems native locks are possible but must be
explicity configured and enabled (and may be disabled by
default). For example, for NFS servers there sometimes
must be a separate lockd process running, and other
configuration may be required such as running the server
in kernel mode. Other filesystems may not even support
native OS locks in which case you must use a different
LockFactory
implementation.
The advantage of this lock factory over
SimpleFSLockFactory
is that the locks should be
"correct", whereas
SimpleFSLockFactory
uses
java.io.File.createNewFile which
has warnings about not
using it for locking. Furthermore, if the JVM crashes,
the OS will free any held locks, whereas
SimpleFSLockFactory
will keep the locks held, requiring
manual removal before re-running Lucene.
Note that, unlike
SimpleFSLockFactory
, the existence of
leftover lock files in the filesystem on exiting the JVM
is fine because the OS will free the locks held against
these files even though the files still remain.
Native locks file names have the substring "-n-", which
you can use to differentiate them from lock files created
by
SimpleFSLockFactory
.
NativeFSLockFactory(File lockDir) - Create a NativeFSLockFactory instance, storing lock
files into the specified lockDir:
|
NativeFSLockFactory(String lockDirName) - Create a NativeFSLockFactory instance, storing lock
files into the specified lockDirName:
|
void | clearLock(String lockName) - Attempt to clear (forcefully unlock and remove) the
specified lock.
|
Lock | makeLock(String lockName) - Return a new Lock instance identified by lockName.
|
NativeFSLockFactory
public NativeFSLockFactory(File lockDir)
throws IOException
Create a NativeFSLockFactory instance, storing lock
files into the specified lockDir:
lockDir
- where lock files are created.
NativeFSLockFactory
public NativeFSLockFactory(String lockDirName)
throws IOException
Create a NativeFSLockFactory instance, storing lock
files into the specified lockDirName:
lockDirName
- where lock files are created.
clearLock
public void clearLock(String lockName)
throws IOException
Attempt to clear (forcefully unlock and remove) the
specified lock. Only call this at a time when you are
certain this lock is no longer in use.
- clearLock in interface LockFactory
lockName
- name of the lock to be cleared.
makeLock
public Lock makeLock(String lockName)
Return a new Lock instance identified by lockName.
- makeLock in interface LockFactory
lockName
- name of the lock to be created.
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.