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.

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 ?

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to