>> We recently noticed that during heavy load temp >> files (e.g. - dbRecord12345.tmp) are not getting cleaned up. > > Could you post a list of temp files (file name and file sizes)? > dbRecord...temp doesn't look like a file from the data store (I might be > wrong).
Unfortunately I do not have a directory listing of the temp directory when the problem occurred - I was in fire-fighting mode :P We were serving a 280 MB video file. As I recall, there were what appeared to be 4 or 5 complete copies of the video file (based on file size match) along with a partially complete file and about a dozen zero byte files. They were all named dbRecordXXXXX.tmp where XXXXX seems to be a sequential unique number. I can only replicate the issue exactly by filling up the temp filesystem, so it's kind of a pain. However, I can see the dbRecordXXXXX.tmp files during the process of downloading a file that completes successfully. Perhaps I should have mentioned we're using Oracle 10g? Maybe there is behavior specific to this DB? >> This occurs >> when the temp filesystem fills up > > How much space is available on the temp filesystem? The temp filesystem generally has about 1.5 GB free at any given time during normal use. > It seems at this point that Jackrabbit abandons the files and does not make >> any attempt to remove them from the temp directory. Obviously, this leaves >> the system in an unusable state until we manually purge the temp files. > > Maybe they are deleted, but too late (when the program exits). At JVM exit is definitely too late for transient files that naturally expire at the end of the transaction - especially in an app-server environment. I'll dig into our code and make sure we're ending the transaction properly, but I think Jackrabbit should be aggressive about cleaning up these files in the event of an exception. >> 1 - Can I configure the temp directory used by Jackrabbit? I don't want to >> set the temp directory globally, just for Jackrabbit. > > I don't think you can configure it at the moment. > >> 4 - If I switch to a filesystem-based datastore instead of a DB-based one, >> will Jackrabbit still create these transient temp files, or will it simply >> stream from the existing filesystem? > > The file data store creates less temp files (but let's see first if the > problem is really the data store).
