[ 
https://issues.apache.org/jira/browse/DERBY-3650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12595680#action_12595680
 ] 

Kathey Marsden commented on DERBY-3650:
---------------------------------------

I am really quite stuck on this issue.  Somehow we will need to defer the 
freeing of the lob until the result set is closed when it is used in a join if 
free or commit are called.  I tried simply nulling out the InternalClob in 
EmbedClob and adding a finalize method to StoreStreamClob to close the stream, 
thinking that in this way we could perhaps rely on garbage collection to close 
the stream after it is no longer referenced, but even with a forced gc() after 
closing the result set,  I saw failures in ClobTest.testLockingAfterFree, which 
indicates that there is still a reference to the stream until the end of the 
transaction.

Perhaps this method would still work if I could figure out where the reference 
to the stream is and I could null that out too on free().  Then we could force 
a gc() on result set close.  Perhaps I am off track all together.  Does anyone 
know where else the stream is referenced or have any other ideas on this issue?

Thanks

Kathey







> Derby + Hibernate JPA 3.2.1 problem on entity with Blob/Clob
> ------------------------------------------------------------
>
>                 Key: DERBY-3650
>                 URL: https://issues.apache.org/jira/browse/DERBY-3650
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.4.1.3
>         Environment: Mac OSX 10.4
> JDK 1.5.0_13
> Hibernate EntityManager 3.2.1
>            Reporter: Golgoth 14
>         Attachments: Derby3650EmbeddedRepro.java, Derby3650FullRepro.java, 
> Derby3650Repro.java, DerbyHibernateTest.zip, testdb.zip, 
> traces_on_FormatIdStream_alloc.txt, UnionAll.java
>
>
> Hi,
> I'm using Derby in Client - Server mode with Hibernate JPA EJB 3.0.
> When a query on an entity containing a Clob and some joins on other entites 
> is executed, an exception with the following message is thrown:
>   XJ073: The data in this BLOB or CLOB is no longer available.  The 
> BLOB/CLOB's transaction may be committed, or its connection is closed.
> This problem occurs when the property "hibernate.max_fetch_depth" is greater 
> than 0.
> When hibernate.max_fetch_depth=0, the query works.
> If Derby is configured in embedded mode, the query works independently of the 
> value of hibernate.max_fetch_depth.
> On the Hibernate's documentation, the advised value of 
> hibernate.max_fetch_depth is 3.
> Could you explain me if I made something wrong ?
> Thank you.
> Stephane

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to