Esto está relacionado con mi anterior question. Como dice la pregunta anterior, tengo una aplicación de escritorio que usa un método Principal diferente que iniciará un proceso en particular. Tanto la aplicación de escritorio como el método principal independiente accederán a la misma base de datos HSQLDB.Varias aplicaciones Java que acceden a un HSQLDB hace que la aplicación cuelgue
Antes de llegar hasta aquí, mi aplicación de escritorio acababan de ser de acceder a una base de datos HSQLDB usando una dirección URL de conexión como ésta:
jdbc:hsqldb:file:/some/path/myDatabase
Ahora bien, esto funciona bien en un entorno de usuario único. Ahora que tengo un entorno multiusuario con la aplicación de escritorio y el proceso Main separado que desea leer/escribir en/desde esta base de datos, quería hacer de esta base de datos un recurso compartido.
He echado un vistazo al HSQLDB documentation y esta publicación sobre Creating a shared HSQLDB database pero fue en vano.
En la publicación se habla sobre la puesta en marcha del servidor a través del código. No creo que esto sea lo que quiero hacer, ya que me gustaría tener la base de datos HSQLDB funcionando todo el tiempo, ya que podría haber múltiples usuarios de la aplicación de escritorio.
En cuanto a la documentación oficial HSQLDB, se establece que se puede iniciar un servidor HSQLDB como esto:
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
Si funciono con el comando anterior con mi propio archivo de base de datos y el nombre, parece que la puesta en marcha de acuerdo :
[[email protected]]: [Thread[main,5,main]]: checkRunning(false) entered
[[email protected]]: [Thread[main,5,main]]: checkRunning(false) exited
[[email protected]]: Startup sequence initiated from main() method
[[email protected]]: Loaded properties from [/some/path/myDatabase/server.properties]
[[email protected]]: Initiating startup sequence...
[[email protected]]: Server socket opened successfully in 16 ms.
entonces me cambió la dirección URL de conexión a lo siguiente:
jdbc:hsqldb:hsql://localhost/xdb
Esto no parece funcionar para mí. ¿Alguna idea sobre lo que hice mal o sobre lo que podría extrañar?
Además, cuando la aplicación de escritorio se desconecta del método Main externo, la aplicación de escritorio simplemente se cuelga cuando el método Main externo advierte que la aplicación de escritorio parece tener un bloqueo en la base de datos. Tan pronto como apago la aplicación de escritorio, el método Principal externo realmente hace lo que esperaba que hiciera.
eso es lo que yo ya estoy tratando de hacer. Estoy tratando de iniciar la base de datos en un jvm por separado, pero parece que todavía no funciona ... – digiarnie
He actualizado la respuesta para incluir un ejemplo, a ver si eso ayuda. – kunal
Los mensajes que aparecen cuando inicio son como se muestran en mi publicación original. No parece tener una línea que diga el alias como el tuyo. ¿Cómo puedo obtener ese bit de alias para aparecer? – digiarnie