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

Reply via email to