org.apache.lucene.store

Class NativeFSLockFactory

public class NativeFSLockFactory extends LockFactory

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.

See Also: LockFactory

Constructor Summary
NativeFSLockFactory(String lockDirName)
Create a NativeFSLockFactory instance, storing lock files into the specified lockDirName:
NativeFSLockFactory(File lockDir)
Create a NativeFSLockFactory instance, storing lock files into the specified lockDir:
Method Summary
voidclearLock(String lockName)
LockmakeLock(String lockName)

Constructor Detail

NativeFSLockFactory

public NativeFSLockFactory(String lockDirName)
Create a NativeFSLockFactory instance, storing lock files into the specified lockDirName:

Parameters: lockDirName where lock files are created.

NativeFSLockFactory

public NativeFSLockFactory(File lockDir)
Create a NativeFSLockFactory instance, storing lock files into the specified lockDir:

Parameters: lockDir where lock files are created.

Method Detail

clearLock

public void clearLock(String lockName)

makeLock

public Lock makeLock(String lockName)
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.