WSO2 Governance Registry锁定错误

时间:2014-01-08 15:43:32

标签: java wso2 wso2greg

安装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源代码,但没有找到对此错误的引用。在WSO2 Jira(https://wso2.org/jira/browse/REGISTRY-1863)上报告了一个错误,但这也没有帮助。

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

2 个答案:

答案 0 :(得分:7)

我们发现这是Java安装手册中的错误。似乎JVM需要对/etc/.java/.systemPrefs目录的写访问权限,当以非root用户身份运行时,它无法访问该目录,请参阅: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

答案 1 :(得分:0)

或者看到以下链接:

https://groups.google.com/forum/#!topic/xnat_discussion/uOd-YyuBhCQ

并使用root用户设置一次文件...