java - 如何将 derby 更改为 READ/WRITE 模式

标签 java derby

我有一个 Derby 数据库,它给我一个只读错误。数据库运行良好,直到上周磁盘空间不足:

Caused by: java.io.IOException: No space left on device
        at java.io.RandomAccessFile.writeBytes0(Native Method)
        at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:520)
        at java.io.RandomAccessFile.write(RandomAccessFile.java:550)
        at org.apache.derby.impl.store.raw.log.LogAccessFile.writeToLog(Unknown Source)
        at org.apache.derby.impl.store.raw.log.LogAccessFile.flushDirtyBuffers(Unknown Source)
        ... 23 more

我清理了磁盘,有 80% 的磁盘被释放用于 Derby 。但是 Derby 仍然处于只读模式:

java.sql.SQLException: An SQL data change is not permitted for a read-only connection, user or database.
org.apache.derby.impl.jdbc.EmbedSQLException: An SQL data change is not permitted for a read-only connection, user or database.
org.apache.derby.iapi.error.StandardException: An SQL data change is not permitted for a read-only connection, user or database.

我发现那里有一个 db.lck 文件(文件大小为 0),我可以删除那个文件吗?有没有其他方法可以更改它的读/写模式? 谢谢!

最佳答案

我得到 SQL 错误的原因是由于 root 拥有的锁定文件。我在 .artifactory/derby 目录中找到了它,它被称为 db.lck,删除它让 artifactory 再次启动就好了。

我们在Tomcat下运行artifactory,.artifactory目录在启动Tomcat的用户家目录下。

关于java - 如何将 derby 更改为 READ/WRITE 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747227/

相关文章:

java - setDefaultHostnameVerifier 中 verify 方法的用途

java - Java "new Type[]{...}"数组文字初始化是什么类型的语法?

java - java和android上的socket编程

java - jdbc创建表时出错

java - 服务器 Derby 数据库远程到客户端 Java

java - 大整数、平方根、Java 和 C : What does this line do?

java - 嵌套方法调用的工作原理

Java Derby 表不是持久的

java - 在 Derby 中将变量转换为用户定义类型

java - 无法转换为 [Ljava.lang.Object;