I\'ve got a Java program that implements a local data store using RandomAccessFile and cooperative locking (that is, RandomAccessFile.getChannel().lock()
RandomAccessFile
RandomAccessFile.getChannel().lock()