hi giota On 3/14/06, Giota Karadimitriou <[EMAIL PROTECTED]> wrote: > Hello, > > We have re-deployed our web application (ear) and have run across the > following problem: > > Probably because of the forced shutdown and even though we use > transactional PM (SimpleDBPersistenceManager) > with <param name="externalBLOBs" value="false"/> > and jackrabbit as RAR (using the JCA package)--all these in order to > enforce transactional behaviour which will be handled by the > application-server and not the application explicitly, the resource > nodes(nt:resource) we had under certain files seem to be corrupted. > > When we try to access a file with such a resource we get an exception > > > Caused by: javax.jcr.RepositoryException: file backing binary value not > found: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\1\bin14955.tmp (The system > cannot find the file specified): > C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\1\bin14955.tmp (The system cannot > find the file specified) > at > org.apache.jackrabbit.core.value.BLOBFileValue.getStream(BLOBFileValue.j > ava:453) > at > org.apache.jackrabbit.core.value.InternalValue.toJCRValue(InternalValue. > java:325) > at > org.apache.jackrabbit.core.PropertyImpl.getValue(PropertyImpl.java:500) > at > org.apache.jackrabbit.core.PropertyImpl.getStream(PropertyImpl.java:540) > . > > Indeed this tmp file that the application is referring to, does not > exist. > > I can fix this situation for the time being by cleaning up the > repository however this could never be done in a production environment. > > Could someone please provide me with some more insight on how the binary > values are exactly stored and what could go wrong with forced shutdown?
binary values are immediately streamed to a temp file when they are set (e.g. using node.setProperty("bin", stream)). this 'internal' value will be persisted on save(). a forced shutdown should not affect the repository integrity provided that the binaries are stored in the db. > Why does jackrabbit search for this temp file when it has already stored > the binary value in DEFAULT_BINVAL table? when a binary value is read from the db it is streamed to a temp file to allow for caching and repeatable reads. > Is there any way to overcome a problem such as the described one? personally i am not aware of any such issue. please file a jira bug and provide a simple test case & configuration if you can easily reproduce this issue. cheers stefan > > regards > Giota > >