Hi,
I am trying to use replication for this first time - so most likely I am doing something wrong.
I have a server on which I run my master DB server
java -cp objectdb.jar com.objectdb.Server start -conf objectdbMASTER.conf
on the same server I run a java program - which is writing objects every second a database KAKI.odb - here is the code:
EntityManagerFactory EMF = Persistence.createEntityManagerFactory("objectdb://localhost:6001/KAKI.odb;user=admin;password=admin");
EntityManager em = EMF.createEntityManager();
int count = 0;
while( true )
{
DummyEntity x = new DummyEntity(String.valueOf(count));
em.getTransaction().begin();
em.persist(x);
em.getTransaction().commit();
System.out.println(count +":" +x.toString());
Thread.sleep(1000);
count++;
}
Then locally on my machine I run a slave DB server with the following command
java -cp objectdb.jar com.objectdb.Server start -conf objectdb.conf
Here is the config for the slave DB
<!-- ObjectDB Configuration -->
<objectdb>
<general>
<temp path="$temp" threshold="64mb" />
<network inactivity-timeout="0" />
<url-history size="50" user="true" password="true" />
<log path="$objectdb/log/" max="8mb" stdout="false" stderr="false" />
<log-archive path="$objectdb/log/archive/" retain="90" />
<logger name="*" level="info" />
</general>
<database>
<size initial="256kb" resize="256kb" page="2kb" />
<recovery enabled="false" sync="false" path="." max="128mb" />
<recording enabled="false" sync="false" path="." mode="write" />
<locking version-check="true" />
<processing cache="64mb" max-threads="10" />
<query-cache results="32mb" programs="500" />
<extensions drop="temp,tmp" />
</database>
<entities>
<enhancement agent="false" reflection="warning" />
<cache ref="weak" level2="0" />
<persist serialization="false" />
<cascade-persist always="auto" on-persist="false" on-commit="true" />
<dirty-tracking arrays="false" />
</entities>
<schema>
</schema>
<server>
<connection port="6000" max="100" />
<data path="$objectdb/db" />
<replication url="objectdb://12.345.678.910:6001/KAKI.odb;user=admin;password=admin" />
</server>
<users>
<user username="admin" password="admin">
<dir path="/" permissions="access,modify,create,delete" />
</user>
<user username="$default" password="$$$###">
<dir path="/$user/" permissions="access,modify,create,delete">
<quota directories="5" files="20" disk-space="5mb" />
</dir>
</user>
<user username="user1" password="user1" />
</users>
<ssl enabled="false">
<server-keystore path="$objectdb/ssl/server-kstore" password="pwd" />
<client-truststore path="$objectdb/ssl/client-tstore" password="pwd" />
</ssl>
</objectdb>
The slave DB server complains with the following error every second (every time an object is added on the master DB)
com.objectdb.o.UserException: Failed to synchronize replicated database at com.objectdb.o.MSG.d(MSG.java:61) at com.objectdb.o.RPT.d(RPT.java:99) at com.objectdb.o.RPT.<init>(RPT.java:66) at com.objectdb.o.SHN.aw(SHN.java:703) at com.objectdb.o.SHN.K(SHN.java:202) at com.objectdb.o.HND.run(HND.java:133) at java.lang.Thread.run(Thread.java:722)
Thanks for your help
EKK