मैं एक सर्वलेट के अंदर एक HSQLDB चला रहा हूं। जब मैं वेब सर्वर पर एप्लिकेशन को पुन: नियोजित करता हूं तो .lck फ़ाइल ठीक से रिलीज़ नहीं होती है और HSQL सर्वर फ़ाइल लोड नहीं कर सकता है।सर्वलेट में एचएसक्यूएल डीबी: लॉक फ़ाइल जारी नहीं की गई
वेब सर्वर बिलाव 7.0.22 NetBeans के साथ भेज दिया है ...
कोई भी विचार क्यों यह हो रहा है?
यहाँ init कोड है:
@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 क्या दिखता है? और यदि मैं संसाधन को परिभाषित करता हूं और यह बताना चाहता हूं कि वास्तविक एचएसक्यूएल फ़ाइल कहां होगी। मुझे अभी भी फ़ाइल पथ को गतिशील रूप से सेट करने की समस्या है ... –
संसाधनों के रूप में संग्रहीत HSQLDB डेटाबेस केवल पढ़ने के लिए हैं। देखें http://www.hsqldb.org/doc/1.8/src/org/hsqldb/jdbc/jdbcConnection.html –