HSQLDB эквивалент H2 смешанного автоматического режима - PullRequest
1 голос
/ 22 февраля 2011

Есть один?Очевидно нет.Автоматический смешанный режим H2 описан здесь .

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Возрождение для дальнейшего использования.

Как сказал @fredt, насколько мне известно, нет никакого официального магического параметра для достижения смешанного режима. Тем не менее, вы всегда можете запустить сервер программно , используя объект Сервер , чтобы другие процессы могли подключиться к вашей базе данных.

Я обнаружил уловку, чтобы выполнить что-то очень похожее на смешанный режим Для этого вам нужно установить для свойства remote_open значение true и подключиться, используя этот URL-адрес.

Идея в том, чтобы сделать что-то вроде этого:

  • Попробуйте подключиться к серверу, используя URL-адрес, указанный выше.
  • Если вы не можете подключиться, это означает, что сервер не был запущен, поэтому продолжайте и запустите сервер программно.
  • Когда вы снова подключитесь, произойдет одно из трех.
    • Если файл базы данных не существует, он будет создан по указанному пути к файлу, и сервер начнет обслуживать его с псевдонима URL.
    • Если файл базы данных существует и не обслуживается, сервер откроет файл по указанному пути и начнет обслуживать его.
    • Если файл базы данных существует и он обслуживается, сервер просто вернет соединение.

Я не уверен, безопасно ли использовать такой тип паттерна, когда вы планируете порождать много недолговечных процессов (в частности, я не углублялся в код HSQLDB, чтобы проверить, как он обрабатывает базу данных / создание / открытие для несколько одновременных запросов, когда установлено remote_open). Тем не менее, я некоторое время использовал этот шаблон для совместного использования баз данных разработки между веб-приложениями и никогда не сталкивался ни с одной проблемой повреждения базы данных.

Основным ограничением здесь является то, что когда приложение, действующее как сервер, закрывается, открытые соединения перестают работать и выдают исключения ... Что не является проблемой для моей среды разработки, здесь это обычно означает только один или два поврежденных запрашивает, пока другой сервер не будет запущен и пул соединений обнаружит и возобновит свои соединения.

0 голосов
/ 22 февраля 2011

Нет HSQLDB не поддерживает такой режим.

...