यह post से संबंधित है।
मुझे लगता है कि मुझे H2
के साथ समस्या है जिसका अर्थ है कि यह ठीक से बंद नहीं होता है।
मुझे संदेह है क्योंकि मैं myDB.lock.db
देखता हूं जब मैं टोमकैट बंद करता हूं और प्रक्रिया बंद नहीं होती है।
मैं उपयोग बिलाव के कनेक्शन पूलिंग और डेटाबेस के लिए यूआरएल है:
url="jdbc:h2:file:/opt/myOrg/tomcat/webapps/MyApplication/db/myDatabase;SCHEMA=myschema"
एच 2 बंद करने का सही तरीका क्या है?
डॉक close H2 से:
आमतौर पर, एक डेटाबेस बंद कर दिया है जब यह करने के लिए पिछले कनेक्शन बंद कर दिया है .. .. डिफ़ॉल्ट रूप से, अंतिम कनेक्शन बंद होने पर डेटाबेस बंद हो जाता है। हालांकि, अगर इसे बंद कर दिया कभी नहीं है, डेटाबेस बंद कर दिया जब आभासी मशीन सामान्य रूप से बाहर निकल जाता है, बंद हुक
का उपयोग कर अगर मैं कुछ गलत कर रहा हूँ मैं नहीं समझ सकता है।
क्या मुझे डेटाबेस को कमांड के माध्यम से बंद करने के लिए मजबूर होना चाहिए? क्या यह शट डाउन हुक का अर्थ है?
मैं यहाँ क्या गलत कर रहा हूं?
नोट:
मैं गूगल में कैसे H2
बंद करने के लिए ठीक से (बयान है कि यह पिछले कनेक्शन शटडाउन होने पर स्वत: बंद हो के अलावा) का एक उदाहरण नहीं मिल सकता है। क्या मुझे खुद को SHUTDOWN
पर कॉल करना चाहिए? क्या यह उचित दृष्टिकोण है?
मैं पहले से ही सवाल बंद करने के लिए वोट देखना लेकिन वहाँ एक कारण या मैं क्या कर रहा हूँ की जांच का एक उदाहरण पर लिंक नहीं किया गया है
अद्यतन:
बाद Joonas Pulakka कुछ अतिरिक्त जानकारी का जवाब:
से
"एच 2 के लिए लॉग लेखक MYAPPLICATION" J9VMThread: 0x08DC6F00, j9thread_t: 0x08C9B790, जावा/लैंग/गु
javacore
मैं का उपयोग कर एकkill -3
मैं धागे को देखने मिला पढ़ें: 0xE7206CC8, राज्य: सीडब्ल्यू, prio = 5 3XMTHREADINFO1 (देशी धागा ID: 0xA32, देशी प्राथमिकता: 0x5, देशी नीति: अज्ञात) 3XMTHREADINFO2
(देशी ढेर पता श्रेणी से: 0xE5E26000, करने के लिए: 0xE5E67000, का आकार: 0x41000) 3XMTHREADINFO3 जावा callstack: जावा में
4XESTACKTRACE/लैंग/Object.wait (मूल निवासी विधि) जावा/लैंग/Object.wait (Object.java:196 (संकलित कोड में
4XESTACKTRACE) ऑर्ग/h2 पर) 4XESTACKTRACE /store/WriterThread.run(WriterThread.java:102)
जावा/लैंग/थ्रेड.रुन (थ्रेड) पर 4XESTACKTRACE।जावा: 736)3XMTHREADINFO "पूल-8-धागा -1" J9VMThread: 0x087C0200, j9thread_t: 0x0840566C, जावा/लैंग/थ्रेड: 0xE79BFC80, राज्य: पी, prio = 5
3XMTHREADINFO1 (देशी धागा ID: 0xE1A, देशी प्राथमिकता: 0x5, देशी नीति: अज्ञात) 3XMTHREADINFO2
(देशी ढेर पता श्रेणी से: 0xE5F69000, करने के लिए: 0xE5FAA000, का आकार: 0x41000) 3XMTHREADINFO3 जावा callstack: सूर्य/विविध/Unsafe.park पर
4XESTACKTRACE (मूल विधि)
4Xजावा/उपयोग/समवर्ती/ताले/LockSupport.park (LockSupport.java:184 (संकलित) पर 4XESTACKTRACEकोड)) जावा/util/समवर्ती/LinkedBlockingQueue.take (LinkedBlockingQueue.java:413 पर जावा/util/समवर्ती/ताले/AbstractQueuedSynchronizer $ ConditionObject.await (AbstractQueuedSynchronizer.java:1998 (संकलित कोड)) 4XESTACKTRACE पर 4XESTACKTRACE (संकलित कोड)) जावा/util/समवर्ती/ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:958 (संकलित कोड)) 4XESTACKTRACE पर जावा/util/समवर्ती/ThreadPoolExecutor $ Worker.run (कम से 4XESTACKTRACE ThreadPoolExecutor.java:918) जावा/लैंग/Thread.run (Thread.java:736 पर 4XESTACKTRACE)3XMTHREADINFO "एच 2 फ़ाइल ताला निगरानी opt/myOrg/बिल्ला/webapps/MyApplication/db/myDatabase.lock.db " J9VMThread: 0x08DC6900, j9thread_t: 0x08C9BA24, ja
va/लैंग/थ्रेड: 0xE71E9018, राज्य: सीडब्ल्यू, prio = 9 3XMTHREADINFO1
(देशी धागा ID: 0xA30, देशी प्राथमिकता: 0x9, देशी नीति: अज्ञात)
3XMTHREADINFO2 (देशी ढेर पता श्रेणी से: 0xE5DBA000, रहे हैं: 0xE5DFB000, आकार: 0x41000) 3XMTHREADINFO3 जावा callstack: 4XESTACKTRACE जावा में/लैंग/धागा । नींद (मूल विधि) 4XESTACKTRACE
जावा/लैंग/थ्रेड.sleep (थ्रेड.जावा:851 (संकलित कोड))
4XESTACKTRACE संगठन/एच 2/स्टोर/फाइल पर eLock.run (FileLock.java:490) 4XESTACKTRACE
जावा में/लैंग/Thread.run (Thread.java:736)3XMTHREADINFO "FileWatchdog" J9VMThread: 0x087C0800, j9thread_t: 0x08C9B4FC, जावा/लैंग/धागा : 0xE715D878, राज्य: सीडब्ल्यू, prio = 5
3XMTHREADINFO1 (देशी धागा ID: 0xA2C, देशी प्राथमिकता: 0x5, देशी नीति: अज्ञात) 3XMTHREADINFO2
(देशी ढेर पता श्रेणी से: 0xE5E67000, करने के लिए: 0xE5EA8000, का आकार: 0x41000) 3XMTHREADINFO3 जावा कॉलस्टैक:
जावा/लैंग/थ्रेड.sleep (मूल विधि) पर 4XESTACKTRACE 4X35ACK64AC61 पर 4XESTACKTRACEजावा/लैंग/Thread.Sleep (Thread.java:851 (संकलित कोड)) 4XESTACKTRACE org/अपाचे/log4j/सहायकों/FileWatchdog.run (FileWatchdog.java:104)
[संभवतः डुप्लिकेट [प्ले! एच 2 को सही तरीके से बंद नहीं करना] (http://stackoverflow.com/questions/7182515/play-not-shutting-down-h2- सही ढंग से) –
@ मोहम्मद मैन्सोर: मैंने उस धागे को पढ़ा है लेकिन मदद नहीं करता है .1) मैंने टॉमकैट को बंद कर दिया और आवेदन नहीं। तो कोई कनेक्शन खुला नहीं होना चाहिए 2) जवाब एक काम-आसपास का प्रतीत होता है और मैं समझने की कोशिश कर रहा हूं कि एक हुक से SQL कमांड के माध्यम से 'शटडाउन' की शक्ति वास्तव में अनुशंसित दृष्टिकोण है या नहीं।मैं दस्तावेज़ – Jim
एच 2 से नहीं बता सकता ['addShutdownHook() '] (http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#addShutdownHook%28java.lang 'Org.h2.engine.DatabaseCloser' के उदाहरण का उपयोग करके, आपके लिए।% 2 9)। – trashgod