サーブレット内でHSQLDBを実行しています。アプリケーションをWebサーバーに再デプロイすると、.lckファイルが正しく解放されず、HSQLサーバーはファイルをロードできません。HSQL DB in Servlet:ロックファイルが公開されていません
のTomcat 7.0.22は、NetBeansでWebサーバー出荷されています...
なぜこれが起こっているすべてのアイデア?ここで
は、initコードです:私はJPAを使用しています
@Override
public void destroy() {
super.destroy();
server.setNoSystemExit(true);
server.stop();
server.shutdown();
controller.shutdown();
}
:ここ
@Override public void init() throws ServletException {
HsqlProperties p = new HsqlProperties();
p.setProperty("server.database.0", dbPath);
p.setProperty("server.dbname.0", Environment.PERSISTENCE_HSQL_DB_NAME);
p.setProperty("server.port", Environment.PERSISTENCE_HSQL_PORT);
server = new Server();
server.setProperties(p);
server.setSilent(false);
server.setTrace(true);
server.setLogWriter(new PrintWriter(System.out));
server.setErrWriter(null);
server.start();
server.checkRunning(true);
/* Exception handling */
}
は私のシャットダウンである/メソッドを破壊します。データベースが読み込まれると(最初の起動時)、アプリケーションは正常に動作しています。ここに私のpersistence.xmlがあります:
<persistence-unit name="embedded_hsql" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- Entities -->
<properties>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost:9001/fst_db;hsqldb.lock_file=false"/>
<property name="hibernate.connection.username" value="SA"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.connection.SetBigStringTryClob" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="current_session_context_class" value="thread" />
<property name="cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
</properties>
</persistence-unit>
"hsqldb.lock_file = false"をテスト目的で追加しましたが、これはまったく効果がありません。一般に私はファイルのロックを無効にしたくない...
ありがとう!
解決策の詳細を教えていただけますか?私のpersistence.xmlはどのように見えますか?私がリソースを定義し、実際のHSQLファイルがどこにあるかを伝えなければならない場合。私はまだファイルパスを動的に設定するという問題に... –
リソースとして保存されたHSQLDBデータベースは読み取り専用です。 http://www.hsqldb.org/doc/1.8/src/org/hsqldb/jdbc/jdbcConnection.htmlを参照してください。 –