간단히 말해서 : 백엔드로 sqlitejdbc를 사용하는 스윙 응용 프로그램입니다. 현재 동일한 데이터베이스 파일로 작업하는 다중 인스턴스를 실행해도 아무런 문제가 없습니다. 그리고 있어야합니다. 파일이 잠겨 있으므로 (앱이 실행되는 동안 파일을 삭제할 수 없음) 검사가 간단해야합니다. 밝혀지지 않았다.FileChannel 및 RandomAccessFile이 작동하지 않는 것 같습니다.
true
sun.nio.ch.FileLockImpl[0:9223372036854775807 exclusive valid]
에서
File f = new File("/path/to/file/db.sqlite");
FileChannel channel = new RandomAccessFile(f, "rw").getChannel();
System.out.println(channel.isOpen());
System.out.println(channel.tryLock());
결과 응용 프로그램이 실행 여부에 상관없이. 요점을 놓치고 있습니까? TIA.
어떤 OS입니까? 내가 이해 하듯이 실제 잠금 메커니즘은 OS에 따라 다릅니다. –