Hi, > It's a long procedure. So there are many possible points of failure.
Yes, it would be great if this can be simplified. It is the same algorithm used in the FileDataStore: 1) create a temp file, 2) insert the data, 3) try to rename it. It may be a good idea to wrap this in a transaction, otherwise it could theoretically leak a temporary file if there is a problem (connection lost after 1 and before 3). Also, instead of the 'random number' at step 1 it may be better to use a database side sequence (autoincrement) if possible, but that would make it more database dependent. > the uploaded code has a working version of a GC that collects on repository > startup. Yes, I saw that. I think it feels a bit strange having to change the repository.xml to run the garbage collection (and then back). Jackrabbit does not yet have a 'management API', maybe supporting JMX would be a better option (not only for data store)... > mark the nodes of all the workspaces, and then do a single delete > operation for the entire data store > I don't know if this was always your idea Yes, that was the idea. Theoretically, multiple repositories could use the same data store. Therefore, there must be a way to run the the mark and the delete step separately. > who has the hard reference to the data identifier The chain is: PropertyImpl -> InternalValue -> BLOBInDataStore -> DataIdentifier Thomas
