ありますか?どうやらそうではありません。ここでは、H2 自動混合モードについて説明 します。
2 に答える
さらなる参考のために復活。
@fredtが述べたように、私が知る限り、混合モードを実現するための公式の魔法のパラメーターはありません。それでも、他のプロセスがデータベースに接続できるように、 Serverオブジェクトを使用してプログラムでサーバーをいつでも起動できます。
混合モードにかなり近い何かを達成するためのトリックを発見しました。remote_open
これを行うには、プロパティをに設定し、この形式のURL true
を使用して接続する必要があります。
ここでのアイデアは、次のようなことをしています。
- 上記の種類のURLを使用してサーバーに接続してみてください。
- 接続できない場合は、サーバーが起動していないことを意味します。プログラムでサーバーを起動してください。
- 再度接続すると、次の3つのいずれかが発生します。
- データベースファイルが存在しない場合は、指定されたファイルパスにデータベースファイルが作成され、サーバーはURLエイリアスからファイルの提供を開始します。
- データベースファイルが存在し、それが提供されていない場合、サーバーは指定されたパスからファイルを開き、提供を開始します。
- データベースファイルが存在し、それが提供されている場合、サーバーは単に接続を返します。
短期間のプロセスを多数生成する場合に、この種のパターンを使用しても安全かどうかはわかりません(特に、HSQLDBコードを調べて、データベース/作成/複数の同時リクエストのオープンを処理する方法を確認していません)。が設定されている場合remote_open
)。それでも、私はこの種のパターンを使用してWebアプリケーション間で開発データベースを共有してきましたが、単一のデータベース破損の問題に遭遇することはありませんでした。
ここでの主な制限は、サーバーとして機能するアプリケーションが閉じられると、開いている接続が機能しなくなり、例外がスローされることです...これは私の開発環境の問題ではありません。サーバーが起動し、接続プールがその接続を検出して更新します。
HSQLDBはそのようなモードをサポートしていません。