On Tue, Dec 20, 2011 at 7:11 PM, Pierre-Arnaud Marcelot 
<p...@marcelot.net>wrote:

> Hi Alex,
>
> I just discussed this with Emmanuel, and like you, I think the transaction
> does not belong in shared.
> It's really meant to be placed between the piece of code which captures
> LDAP requests on the server and the various partition back-end
> implementations.
>
>
Glad you both feel this way.


> I haven't looked at the code closely, but I think a simple class extending
> our cursor implementation in shared, with the close() method overridden,
> should probably do the trick.
> This would leave most of the cursor behavior implementation in shared
> where we need "basic" cursor, while letting us do additional stuff on the
> server side by overriding methods and calling super.methodName() to inherit
> the default behavior.
>
>
Sure this is yet another simpler way to do it. However it's done we can
give it a try and see how well it holds.

Best,
Alex


> Regards,
> Pierre-Arnaud
>
> On 20 déc. 2011, at 18:01, Alex Karasulu wrote:
>
> I am saying this because clearly TxnManager does not belong in shared if
> we just step back and think about it. Yes the mechanics of the code is
> making us consider this but we should resist and see what we can do with
> some pattern to decouple this.
>
> On Tue, Dec 20, 2011 at 7:00 PM, Alex Karasulu <akaras...@apache.org>wrote:
>
>>
>> On Tue, Dec 20, 2011 at 5:41 PM, Emmanuel Lecharny 
>> <elecha...@gmail.com>wrote:
>>
>>> Hi,
>>>
>>> if we want to make the search operation part of the transaction, then we
>>> may need to move the Txnmanager to the shared-ldap library, as we don't see
>>> this class from any cursor.
>>>
>>>
>> I see what you mean. But there are ways in which we can decouple things
>> without having to have TxnManager moved. This can be done by registering
>> for Cursor close notification and there the transaction manager can be
>> called within an Observer type object.
>>
>> First of all I was wondering if we can use the Java Transaction API here
>> at all to prevent re-inventing these interfaces. Have not looked at the
>> overlap.
>>
>>
>>> The need is to be able to commit or rollback the txn when the
>>> cursor.close() is done (or if we've got an exception).
>>>
>>>
>> Again I think we can decouple this with notifications/callbacks.
>>
>> --
>> Best Regards,
>> -- Alex
>>
>>
>
>
> --
> Best Regards,
> -- Alex
>
>
>


-- 
Best Regards,
-- Alex

Reply via email to