directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel L├ęcharny <elecha...@apache.org>
Subject Re: Transactions and Search/Cursor
Date Tue, 20 Dec 2011 19:30:49 GMT
On 12/20/11 6:04 PM, Alex Karasulu wrote:
> On Tue, Dec 20, 2011 at 4:50 PM, Emmanuel Lecharny<elecharny@gmail.com>wrote:
>
>> Hi,
>>
>> I have added txns support in LdapCoreSessionConnection, but I have some
>> issues with searches : the txn has to remain opened until the cursor is
>> closed. That means the cursor must retain the txns and that the commit is
>> done in the cursor.close() operation.
>>
>>
> We need the connection to register a callback with the cursor. That way
> when it is closed we can have the LCSConnection actually close the txn.
>
>
>> I think we can use the inner ClosureMonitor to do that, but the question
>> is what should we do when we get an exception during the search ? I would
>> suggest that a search is done this way :
>>
>> Cursor cursor = null;
>> try
>> {
>>   cursor = connection.search( blah ) // The txn is started and stored into
>> the ClosureMonitor
>>
>>   while (cursor.next())
>>   {
>>     Entry result = cursor.get();
>>     // do whatever is needed with the entry
>>   }
>> }
>> finally
>> {
>>   cursor.close(); // Here, the cursor holds the current status for the
>> search : successful or failure.
>>    // If successful, do a commit, otherwise, do a rollback
>> }
>>
>> Does it makes sense ?
>>
>>
> How does the ClosureMonitor fit into this code above? This must be a new
> class I guess ... this is the first time I am seeing it. I should take a
> look at this code.`

Forget about this stupid proposal. I must have been sleepy when I wrote 
that...

We discussed with Pierre-Arnaud, and it's clear that the txn must *not* 
be stored into the monitor, not does it hs to be moved to shared : there 
is no reason for the API to expose something which is just for our 
internal use.


I have started to refactor the refactoring to come back with something 
sane.

-- 
Regards,
Cordialement,
Emmanuel L├ęcharny
www.iktek.com


Mime
View raw message