2013-04-23 3 views
5

से कनेक्ट करते समय डेटाबेस लॉक अधिग्रहण मैं एक hsqldb (संस्करण 2.2.9 का उपयोग कर) से कनेक्ट करने का प्रयास कर रहा हूं।hsqldb: फ़ाइल डीबी

java -cp hsqldb-2.2.9.jar org/hsqldb/util/DatabaseManagerSwing 

जब मेरे ui मैं निम्नलिखित अपवाद हो रही है के माध्यम से डाटाबेस से कनेक्ट करने की कोशिश कर रहा:

Exception occured : java.sql.SQLException: Database lock acquisition failure: lockFile: [email protected][file =/rhel5pdi/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2013-04-23 10:35:22 heartbeat - read: -8403 ms. 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) 
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) 
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) 
    at java.sql.DriverManager.getConnection(DriverManager.java:582) 
    at java.sql.DriverManager.getConnection(DriverManager.java:185) 

मैं प्रकल्पित db क्योंकि लॉक किया गया है

मैं का उपयोग कर के बाद एक बनाया DatabaseManagerSwing ने मेरे यूई से पहले एक कनेक्शन स्थापित किया, इसलिए मैंने उसे बंद कर दिया। यह निम्न अपवाद के कारण होता है:

Exception occured : java.sql.SQLException: Database lock acquisition failure: lockFile: [email protected][file =/rhel5pdi/home/mgnyp/workspace/src/PmtMetricsUI2/webapp/WEB-INF/lib/testDataBase.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: /rhel5pdi/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase.lck (Permission denied) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) 
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) 
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) 
    at java.sql.DriverManager.getConnection(DriverManager.java:582) 
    at java.sql.DriverManager.getConnection(DriverManager.java:185) 

मैं वसंत MVC और c3p0 उपयोग कर रहा हूँ। कनेक्शन का विवरण (db का निरपेक्ष पथ प्रदान की गई):

Connection con = DriverManager.getConnection("jdbc:hsqldb:file:/home/mgnyp/workspace/src/Project/webapp/WEB-INF/lib/testDataBase", "SA", ""); 

मैं इस दृष्टिकोण की कोशिश की है, असफल दुर्भाग्य: Database lock acquisition failure and hsqldb

मैं भी ऊपर डॉक्स hsql.org

क्षमा याचना को देखा यदि मुद्दा स्पष्ट है, तो मैंने कभी पहले एचएसक्यूएल का उपयोग नहीं किया है।

मैं किसी भी मदद या संकेत की सराहना करता हूं।

धन्यवाद।

+1

क्या आप ऐसे डेटाबेस को खोलने का प्रयास कर रहे हैं जिसका पहले से ही वेबपैड द्वारा उपयोग किया जा रहा है? – shyam

+1

हाय श्याम, उत्तर के लिए धन्यवाद। मैं बस उस डेटाबेस के लिए एक लटकता कनेक्शन खोजता हूं जिसे मुझे पता नहीं था, इसलिए लॉक। यह अब काम कर रहा है, कनेक्शन स्थापित करने के लिए जिम्मेदार कोड एक डिजाइन प्रवाह था। मुझे यह महसूस करने में कई घंटे लगे कि (यही कारण है कि मैंने इसे एक प्रश्न के रूप में पोस्ट किया) – monika

+0

@mgnyp मुझे एक ही समस्या है। क्या आप कृपया इसे ठीक करने का तरीका बताएं? – nawara

उत्तर

11

मैं अतिरिक्त कनेक्शन स्ट्रिंग पर एक संपत्ति के रूप में, readonly = true सहित लॉक फ़ाइल को अक्षम करने में सक्षम था। अन्यथा मुझे पता चला है कि लॉक हमेशा फाइल डेटाबेस के लिए आयोजित किया जाता है। मेरे लिए काम करने वाला नमूना कनेक्शन स्ट्रिंग jdbc था: hsqldb: फ़ाइल: मेरी/फ़ाइल/स्थान; readonly = true

0

मुझे एक ही समस्या थी। बस .lck (लॉक) फ़ाइल को हटा दिया और पुनः कनेक्ट किया गया। अब यह ठीक काम करता है।

संबंधित मुद्दे