java .vm h2_java-H2服务器在调试时挂起
由于正在創(chuàng)建內(nèi)存數(shù)據(jù)庫,因此啟動tcp服務(wù)器將無濟(jì)于事.
我建議改為在線程中啟動控制臺,并在同一段代碼(例如,使用jdbc)中打開與此數(shù)據(jù)庫的連接,但不要關(guān)閉/釋放它.
使用此代碼段執(zhí)行此操作:請根據(jù)H2文檔添加其他選項(xiàng),例如允許其他人使用(我建議暫時(shí)將其保留)
org.h2.tools.Server.createWebServer().start();
使用jdbc / jooq在第二個(gè)線程中打開數(shù)據(jù)庫將如下所示(這是在Nashorn javascript中,但可以輕松地適應(yīng)Java):
var conn = (new org.h2.Driver()).connect('jdbc:h2:mem:sampledb',new java.util.Properties());
var DB = org.jooq.impl.DSL.using(conn, org.jooq.SQLDialect.H2);
這樣,基于內(nèi)存的數(shù)據(jù)庫將不會意外關(guān)閉,您將能夠遠(yuǎn)程訪問它.希望將其放在線程中可以保護(hù)您免受斷點(diǎn)的影響.
更新:根據(jù)與該問題原始作者的討論,最佳解決方案是在單獨(dú)的過程中打開基于內(nèi)存的H2,并在其上提供一個(gè)tcp服務(wù)器.這解決了問題,但是在一個(gè)單獨(dú)的過程中.
這是開始單獨(dú)過程的方法:
java -jar h2-1.4.188.jar -tcp -tcpPort 9092 -baseDir mem:mydb
這是要使用的JDBC網(wǎng)址:jdbc:h2:tcp:// localhost:9092 / mem:mydb
重要說明:如果該基于內(nèi)存的數(shù)據(jù)庫上的所有連接均已關(guān)閉,則內(nèi)容將消失.因此,應(yīng)謹(jǐn)慎使用此方法.如果您需要在測試中保持持久性,請使用基于文件的標(biāo)準(zhǔn)H2 DB.
總結(jié)
以上是生活随笔為你收集整理的java .vm h2_java-H2服务器在调试时挂起的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++求n的几次方_14.八年级数学:若
- 下一篇: minitab怎么算西格玛水平_16:三