서블릿 내부에서 HSQLDB를 실행하고 있습니다. 애플리케이션을 웹 서버에 재배포 할 때 .lck 파일이 제대로 해제되지 않아 HSQL 서버가 파일을로드 할 수 없습니다.서블릿의 HSQL DB : 잠금 파일이 해제되지 않았습니다.
웹 서버는 톰캣 7.0.22 왜 이런 일이
어떤 아이디어를 ... 넷빈즈와 함께 제공됩니다? 여기
는 초기화 코드 : 나는 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-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이다. 일반적으로 파일 잠금을 해제하고 싶지 않습니다 ...
고마워!
해당 솔루션에 대해 자세히 설명해 주시겠습니까? 내 persistence.xml은 어떻게 생겼을까요? 그리고 리소스를 정의하고 실제 HSQL 파일이 어디에 있는지 알려야 만합니다. 파일 경로를 동적으로 설정하는 문제는 여전히 남아 있습니다 ... –
리소스로 저장된 HSQLDB 데이터베이스는 읽기 전용입니다. http://www.hsqldb.org/doc/1.8/src/org/hsqldb/jdbc/jdbcConnection.html을 참조하십시오. –