i have an objectdb server running on localhost as user "objectdb", spawned like so:
java -server -cp /usr/local/share/objectdb/objectdb.jar: com.objectdb.Server -conf /etc/objectdb/objectdb.conf start
it has naturally created and taken ownership of /tmp/ObjectDB.
problem: i cannot run a maven test with my own account, or deploy a working webapp running as the tomcat user. for whatever reason the client is attempting to create lockfiles in /tmp/ObjectDB. my account and the tomcat account naturally cannot do this on the same machine where the objectdb server has done it.
a persistence unit is defined in src/main/webapp/META-INF/persistence.xml with a jdbc URL that looks to me as though it ought to connect to the server rather than attempt to start in embedded mode. i have also tried creating the EMF with the explicit URL. when running `mvn test`, the exception is:
java.lang.ExceptionInInitializerError at com.objectdb.o.RCL.<clinit>(RCL.java:33) ... Caused by: com.objectdb.o.UserException: Failed to create a new file '/tmp/ObjectDB/objectdb/1504562258.lck' ... Caused by: java.io.FileNotFoundException: /tmp/ObjectDB/objectdb/1504562258.lck (Permission denied)
have i misconfigured something?
edit: i should note that changing temp= in /etc/objectdb/objectdb.conf does not help. for example,
<temp path="$objectdb/work" threshold="64mb" /> /usr/local/share/objectdb: lrwxrwxrwx 1 root staff 24 Apr 5 16:44 work -> /var/local/objectdb/work /var/local/objectdb/work: drwxr-sr-x 3 objectdb objectdb 4096 Apr 5 16:45 objectdb /tmp: drwxr-xr-x 3 objectdb objectdb 4096 Apr 5 16:45 ObjectDB
it seems to not care about the <temp> setting, and creates lockfiles in both locations. so i still cannot start the client in an unconfigured state that would use /tmp.