ファイルベースのストレージであっても、インプロセス HSQLDB データベースが他のユーザーによって開かれることは想定されていません。
ドキュメントはこれが可能であることを示唆しています: Server Modes、Advanced Topicsですが、この動作をアクティブにする方法の URL はまだ見つかりません。
方法を共有できるように、誰かがこれを行いましたか?
ファイルベースのストレージであっても、インプロセス HSQLDB データベースが他のユーザーによって開かれることは想定されていません。
ドキュメントはこれが可能であることを示唆しています: Server Modes、Advanced Topicsですが、この動作をアクティブにする方法の URL はまだ見つかりません。
方法を共有できるように、誰かがこれを行いましたか?
以下は私のために働きます:
HSQLDBソースコードのorg.hsqldb.test.TestBaseコードに示されているコードからサーバーを起動します。何かのようなもの:
Server server = new Server();
server.setDatabaseName(0, "test");
server.setDatabasePath(0, "file:/path/to/db");
server.start();
同じJVMで、通常の(サーバー以外の)プログラムの場合と同じように、同じデータベースへの接続を開きます。
conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
次に、connを使用して、必要なSQLを実行します。
私自身の実験では、これは機能しているように見え、インメモリおよびファイルデータベースで機能します。
もちろん、他のJVMはTCPを使用してサーバーに接続する必要があります。別のJVMでデータベースファイルを直接開こうとすると、データベースがロックされているという通常のエラーが発生します。
アプリケーションの外部でサーバーモードで HQLDB を起動し、いくつかのアプリケーションからデータベースに接続した経験があります。
ドキュメントで説明されているように、プロセスは簡単です。