Ich führe H2 im Auto-Server-Modus aus, so dass mehrere Prozesse darauf zugreifen können. Aber ich kann org.h2.tools.Script nicht über die Befehlszeile ausführen, wenn TOMEE es bereits verwendet. Wenn ich TOMEE herunterfahre, funktioniert org.h2.tools.Script einwandfrei. HierKann org.h2.tools.Script über die Befehlszeile im AUTOSERVER-Modus nicht ausführen
ist die commnad I
java -cp h2-1.4.188.jar org.h2.tools.Script -url ‚jdbc bin mit: h2: ~/test; FILE_LOCK = FILE; AUTO_SERVER = TRUE '-user sa -password sa -script test.sql
Ausnahme ich, wenn ich den Befehl, wenn Tomcat bis
Exception in thread "main" org.h2.jdbc.JdbcSQLException: IO Exception: "java.io.FileNotFoundException: /var/lib/test.sql (Permission denied)"; SQL statement:
SCRIPT TO '/var/lib/test.sql' [90028-188]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.message.DbException.convertIOException(DbException.java:328)
at org.h2.command.dml.ScriptBase.openOutput(ScriptBase.java:146)
at org.h2.command.dml.ScriptCommand.query(ScriptCommand.java:159)
at org.h2.command.CommandContainer.query(CommandContainer.java:90)
at org.h2.command.Command.executeQuery(Command.java:197)
at org.h2.server.TcpServerThread.process(TcpServerThread.java:320)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:159)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: /var/lib/test.sql (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
at org.h2.store.fs.FilePathDisk.newOutputStream(FilePathDisk.java:290)
at org.h2.store.fs.FileUtils.newOutputStream(FileUtils.java:233)
at org.h2.command.dml.ScriptBase.openOutput(ScriptBase.java:144)
... 6 more
at org.h2.engine.SessionRemote.done(SessionRemote.java:624)
at org.h2.command.CommandRemote.executeQuery(CommandRemote.java:158)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:179)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158)
at org.h2.tools.Script.process(Script.java:141)
at org.h2.tools.Script.process(Script.java:120)
at org.h2.tools.Script.runTool(Script.java:101)
at org.h2.tools.Script.main(Script.java:46)
ich bin nicht sicher, warum ich FileNotFoundException sehen. Denken Sie daran, das geht weg, wenn TOMEE nicht läuft.
Irgendwelche Ideen? Ich bin in einem Docker-Container. Ich habe sichergestellt, dass die URL zwischen TOMEE und Script übereinstimmt.