>>> - When reading, if the DbDataStore property copyWhenReading is enabled. >> >> We didn't have this property set in our configuration. Looks like the >> default is true. > > Sorry, I didn't notice that... the setting is "Enabled by default to support > concurrent reads".
Does this mean concurrent reads are not possible with the property set to false? Are requests for the content pipelined automatically or will there be threading issues? > The temp file is only deleted when closing the input stream, or when read() > returns -1. Maybe your application doesn't call close()? A workaround would > be to close the input stream using finalize(). I'm not sure if this is the > best solution is however. That sounds like it matches the behavior we noticed. When the reads complete normally, there is no problem - the file is deleted immediately - but when an error occurs the file lingers because the stream was never closed. I think closing the stream in a finally block should be a best practice anyway. Perhaps an enhancement to the datastore code would be to mark the temp file for delete when the JVM terminates as a fail-safe against deficient client code?
