java - WSO2 治理注册表锁定错误

标签 java wso2 wso2-governance-registry

安装并启动 WSO2 Governance Registry 后,我在 wso2carbon.log 中收到以下错误:

TID: [0] [Greg] [2014-01-08 10:39:08,625]  WARN {java.util.prefs.FileSystemPreferences} -  Could not lock System prefs.Unix error code 0. {java.util.prefs.FileSystemPreferences}
TID: [0] [Greg] [2014-01-08 10:39:08,625]  WARN {java.util.prefs.FileSystemPreferences} -  Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock. {java.util.prefs.FileSystemPreferences}

这些错误每 30 秒重复一次。不幸的是,日志没有指定它试图锁定哪个文件。

我尝试使用 find/opt/wso2 -type f -exec lsof {}\; 查找文件系统上所有具有独占锁的文件; | grep W 但我找不到。我还尝试通过 WSO2 GR 源代码进行 grepping,但没有在哪里可以找到对此错误的引用。 WSO2 Jira ( https://wso2.org/jira/browse/REGISTRY-1863 ) 上报告了一个错误,但这也没有帮助。

任何人都可以指出正确的方向或提供有关从何处获取更多信息的任何线索吗?

最佳答案

我们发现这是 Java 安装手册中的错误。似乎 JVM 需要对 /etc/.java/.systemPrefs 目录的写入权限,当以非根用户身份运行时它无法访问该目录,请参阅:http://bugs.java.com/view_bug.do?bug_id=4838770

我通过使用

/etc/.java/.systemPrefs 目录的所有权更改为 wso2:wso2 解决了这个问题
sudo chown -R wso2:wso2 /etc/.java/.systemPrefs

该文件仍可由 root 写入(因为 root 可以写入任何文件),但如果您需要多个用户能够写入该文件,您也可以使用以下方式设置文件 ACL:

sudo setfacl -R -m u:wso2:rw /etc/.java/.systemPrefs

关于java - WSO2 治理注册表锁定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000145/

相关文章:

wso2:esb: call mediator 和 send mediator 的基本区别是什么

wso2 - API 管理器插件 - 使用带有 @ 的用户名登录(例如 username@somewhere.com)

WSO2:Greg 和 ESB 存在共享注册表问题

java - 使用反射使用子类获取父类(super class)字段

java - 我正在寻找一些帮助,以使用 Play 框架将 Polymer 与服务器端 Scala/java 结合使用

java - 在 Macintosh 上缺少 ant-javamail.jar 文件

oauth - 访问 token 没有 openid 范围

java - HttpUtil、记录器.debug

WSO2 身份服务器 REST 和 SOAP 调用

java - 从 java 程序访问 WSO2 治理注册表