Issue #422 has been updated by Clément OUDOT.
The first thing to know is if we are able to correctly detect that the source directory connection has been lost. If we achieve this, I think we should relaunch a full synchronization automatically (we can check the @synchronizingAllWhenStarting@ parameter to do it or not). For the next major version, we can maybe work on the code to manage syncrepl cookie, but let's try to be as simple as possible for the 2.0 release. ---------------------------------------- Bug #422: Service asynchronousLdapSourceService not fault tolerant http://tools.lsc-project.org/issues/422 Author: Clément OUDOT Status: Assigned Priority: Normal Assigned to: Sébastien Bahloul Category: Core Target version: 2.0 Problem in version: I made some tests with the new service asynchronousLdapSourceService. In my mind, this service is dedicated to be used in a daemon mode, and so, should run even if source or destination is unreachable. * Test 1: LDAP source or destination nos started: in this case, LSC daemon do not want to start: <pre> avr. 05 10:12:20 - ERROR - Error opening the LDAP connection to the destination! (javax.naming.CommunicationException: localhost:3389 [Root exception is java.net.ConnectException: Connection refused]) avr. 05 10:12:20 - ERROR - org.lsc.exception.LscConfigurationException: java.lang.reflect.InvocationTargetException Last log file line: avr. 05 10:12:20 - ERROR - org.lsc.exception.LscConfigurationException: java.lang.reflect.InvocationTargetException </pre> * Test 2: LDAP source stopped and restarted while LSC daemon is running: in this case, the new modifications are never seen in LSC, we have to restart it to get them. * Test 3: LDAP destination stopped while LSC daemon is running: LSC throw an error but continue its execution. When LSC daemon is restarted, the modifications are propagated. <pre> avr. 05 10:21:04 - ERROR - Error while looking for (&(objectClass=person)(uid=agent.test)) in ou=people,ou=xxx: javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]; remaining name 'ou=people' avr. 05 10:21:04 - ERROR - Error while synchronizing ID uid=agent.test,ou=xxx: org.lsc.exception.LscServiceException: javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]; remaining name 'ou=people' </pre> So, the expected behavior for me would be: * Allow LSC in daemon mode to start even in source or destination is not available, we could just log a warning in this case * Set a retry feature in asynchronousLdapSourceService so LSC can open a new connection if the current was closed. The parameter would be the same as the retry in OpenLDAP syncrepl configuration (for example retry="5 5 300 +") -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://tools.lsc-project.org/my/account
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-dev mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-dev

