Hello, I have a situation with a very strange behavior which I cannot explain by myself:
I have 3 different applications, all running in different Java processes, but all on the same computer. Whenever I update an existing record with Jena TDB then these updates are only recognized by the same application. The other applications either do not recognize the update at all, or only sporadically. Here is a detailed description: - Process A is a very simple unit test. I read the Jena record TDB dataset (TDBFactory.createDataset(directory), and the current values. Let's say the field 'A.b' of record 'A' has the value 'xxx'. I update the value to 'yyy' and persist the change with a commit() followed by end(). During the same run I re-read the record and as supposed the value of 'A.b' = 'yyy'. - When I restart Process A the value of 'A.b' is still 'yyy'. - However, when I start the second application (let's say B), which is a Wicket-Webapp running with Jetty, the value is still 'xxx'. I tried quite a lot of things: Besides using TDB transactions properly, I also take care that after each commit() the transaction is ended with end(). Also, read-transactions are opened with .begin(ReadWrite.READ). Additionally, I added TDB.sync(tdbDataSet); although I am not sure if this is necessary when using transactions properly. I am quite confused how this behaviour can appear. A little explanation of the underlying transaction handling would be very helpful. Maybe any of you has an idea what the reason may be? I also checked the Jena TDB files and can tell you that after updating the single record, the following files are updated (I don't know if this is helpful): * journal.jrnl * node2id * nodes.dat * nodes.dat-jrnl (0 bytes) * prefixes.dat-jrnl (0 bytes) I apprechiate any help. Best, Andreas
