異なる JVM から非同期に入出力が行われるファイルがあります。データベースが
使えない場合、ロックファイルを用意して獲得できなかったらスリープ、より
良い方法はありますか?

File lock = new File("hogehoge.lock");
boolean locked = false;
for(int i=0; i<10; i++){
  if(lock.createNewFile()){
    lock.deleteOnExit();
    locked = true;
    break;
  }
  Thread.sleep(200);
}
if(! locked)  throw new HogeException("Lock Pending");
try{
  // … ファイル入出力処理
} finally {
  lock.delete();
}