>> 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).

Reply via email to