Un grand MERCI Thomas !!!!!!!!!!! :-)
Les évènements se synchronisent.

Ci-dessous le résultat des commandes qui se sont déroulées en moins d'une seconde (notre base est d'environ 150 utilisateurs et quelques smartphones)

Pour l'utilisateur qui avait le problème :
obm=# DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT MAX(deletedevent_id) FROM DeletedEvent WHERE deletedevent_user_id = 94 GROUP BY deletedevent_event_ext_id,deletedevent_user_id) AND deletedevent_user_id = 94;
DELETE 137

Pour tout le monde :
obm=# DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT MAX(deletedevent_id) FROM DeletedEvent GROUP BY deletedevent_event_ext_id,deletedevent_user_id);
DELETE 5430


Par contre, j'ai encore un message d'erreur dans le fichier opush.log et toujours pour le même utilisateur :

10:26:53.102 [ERROR] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$d4576bb3} [t16/cSync/r378/sbar...@cire.fr]:null
java.util.NoSuchElementException: null
at java.util.LinkedList$ListItr.next(LinkedList.java:698) ~[na:1.6.0_26] at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) ~[guava-12.0.jar:na] at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) ~[guava-12.0.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetchBodyStructure(ImapMailboxService.java:628) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.getMimeMessage(EmailViewPartsFetcherImpl.java:130) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.fetch(EmailViewPartsFetcherImpl.java:97) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetch(ImapMailboxService.java:174) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.fetchMails(MailBackendImpl.java:320) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getDataDelta(MailBackendImpl.java:309) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getChanged(MailBackendImpl.java:287) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.ContentsExporter.getChanged(ContentsExporter.java:69) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doUpdates(SyncHandler.java:250) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.handleDataSync(SyncHandler.java:417) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.computeSyncState(SyncHandler.java:400) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doTheJob(SyncHandler.java:384) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.process(SyncHandler.java:166) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.WbxmlRequestHandler.process(WbxmlRequestHandler.java:125) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.processActiveSyncMethod(ActiveSyncServlet.java:235) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.service(ActiveSyncServlet.java:153) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet$$EnhancerByGuice$$d4576bb3.CGLIB$service$1(<generated>) [guice-3.0.jar:na] at org.obm.push.ActiveSyncServlet$$EnhancerByGuice$$d4576bb3$$FastClassByGuice$$e7be8c23.invoke(<generated>) [guice-3.0.jar:na] at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) [guice-3.0.jar:na] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) [guice-3.0.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.managerTransaction(TransactionalInterceptor.java:88) [annotations-2.4.1.2.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.invoke(TransactionalInterceptor.java:74) [annotations-2.4.1.2.jar:na] at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72) [guice-3.0.jar:na] at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52) [guice-3.0.jar:na] at org.obm.push.ActiveSyncServlet$$EnhancerByGuice$$d4576bb3.service(<generated>) [guice-3.0.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api-2.5.jar:na] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) [guice-servlet-3.0.jar:na] at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:99) [jetty-continuation-7.4.2.v20110526.jar:7.4.2.v20110526] at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [guice-servlet-3.0.jar:na] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.24.jar:6.1.24] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.24.jar:6.1.24] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.24.jar:6.1.24]
10:26:53.105 [ERROR] {o.o.a.t.TransactionalInterceptor} [t/c/r/]:null
java.util.NoSuchElementException: null
at java.util.LinkedList$ListItr.next(LinkedList.java:698) ~[na:1.6.0_26] at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) ~[guava-12.0.jar:na] at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) ~[guava-12.0.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetchBodyStructure(ImapMailboxService.java:628) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.getMimeMessage(EmailViewPartsFetcherImpl.java:130) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.fetch(EmailViewPartsFetcherImpl.java:97) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetch(ImapMailboxService.java:174) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.fetchMails(MailBackendImpl.java:320) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getDataDelta(MailBackendImpl.java:309) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getChanged(MailBackendImpl.java:287) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.ContentsExporter.getChanged(ContentsExporter.java:69) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doUpdates(SyncHandler.java:250) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.handleDataSync(SyncHandler.java:417) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.computeSyncState(SyncHandler.java:400) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doTheJob(SyncHandler.java:384) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.process(SyncHandler.java:166) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.WbxmlRequestHandler.process(WbxmlRequestHandler.java:125) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.processActiveSyncMethod(ActiveSyncServlet.java:235) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.service(ActiveSyncServlet.java:153) ~[push-module-2.4.1.2.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.managerTransaction(TransactionalInterceptor.java:88) ~[annotations-2.4.1.2.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.invoke(TransactionalInterceptor.java:74) ~[annotations-2.4.1.2.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api-2.5.jar:na] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) [guice-servlet-3.0.jar:na] at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:99) [jetty-continuation-7.4.2.v20110526.jar:7.4.2.v20110526] at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [guice-servlet-3.0.jar:na] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.24.jar:6.1.24] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.24.jar:6.1.24] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.24.jar:6.1.24] 10:26:53.108 [ERROR] {o.o.a.t.TransactionalInterceptor} [t/c/r/]:transaction was rollback
java.util.NoSuchElementException: null
at java.util.LinkedList$ListItr.next(LinkedList.java:698) ~[na:1.6.0_26] at com.google.common.collect.Iterators.getOnlyElement(Iterators.java:337) ~[guava-12.0.jar:na] at com.google.common.collect.Iterables.getOnlyElement(Iterables.java:272) ~[guava-12.0.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetchBodyStructure(ImapMailboxService.java:628) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.getMimeMessage(EmailViewPartsFetcherImpl.java:130) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.EmailViewPartsFetcherImpl.fetch(EmailViewPartsFetcherImpl.java:97) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.imap.ImapMailboxService.fetch(ImapMailboxService.java:174) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.fetchMails(MailBackendImpl.java:320) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getDataDelta(MailBackendImpl.java:309) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.mail.MailBackendImpl.getChanged(MailBackendImpl.java:287) ~[push-mail-2.4.1.2.jar:na] at org.obm.push.ContentsExporter.getChanged(ContentsExporter.java:69) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doUpdates(SyncHandler.java:250) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.handleDataSync(SyncHandler.java:417) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.computeSyncState(SyncHandler.java:400) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.doTheJob(SyncHandler.java:384) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.SyncHandler.process(SyncHandler.java:166) ~[push-module-2.4.1.2.jar:na] at org.obm.push.handler.WbxmlRequestHandler.process(WbxmlRequestHandler.java:125) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.processActiveSyncMethod(ActiveSyncServlet.java:235) ~[push-module-2.4.1.2.jar:na] at org.obm.push.ActiveSyncServlet.service(ActiveSyncServlet.java:153) ~[push-module-2.4.1.2.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.managerTransaction(TransactionalInterceptor.java:88) ~[annotations-2.4.1.2.jar:na] at org.obm.annotations.transactional.TransactionalInterceptor.invoke(TransactionalInterceptor.java:74) ~[annotations-2.4.1.2.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api-2.5.jar:na] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) [guice-servlet-3.0.jar:na] at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:99) [jetty-continuation-7.4.2.v20110526.jar:7.4.2.v20110526] at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) [guice-servlet-3.0.jar:na] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [guice-servlet-3.0.jar:na] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.24.jar:6.1.24] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.24.jar:6.1.24] at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.24.jar:6.1.24] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.24.jar:6.1.24]


Le 22/11/2012 10:07, Hilaire Thomas a écrit :
Alors il semble que vous rencontrez bien là un bug.
Votre base de donnée contient des doublons sur les évènements, voici comment les effacer :

1) Trouver l'identifiant  de votre utilisateur :
SELECT userobm_id FROM UserObm WHERE userobm_login = '*USER_LOGIN*'; -- 
remplacer USER_LOGIN par celui de votre utilisateur

2) Effacer les doublons pour un utilisateur :
DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT 
MAX(deletedevent_id) FROM DeletedEvent WHERE deletedevent_user_id =*  USER_ID*  
GROUP BY deletedevent_event_ext_id,deletedevent_user_id) AND 
deletedevent_user_id =*USER_ID*;  -- remplacer USER_ID par l'entier trouvé à la 
requête précédente

La synchronisation devrait alors fonctionner de nouveau pour cet utilisateur. Une version de la requête permet de nettoyer ces doublons pour tous les utilisateurs, mais celle ci peut malheureusement être très longue à s'exécuter. La voici :
DELETE FROM DeletedEvent WHERE deletedevent_id NOT IN (SELECT 
MAX(deletedevent_id) FROM DeletedEvent GROUP BY 
deletedevent_event_ext_id,deletedevent_user_id);

Est-ce que cela corrige votre problème ?

Cordialement,
Thomas

On 11/21/2012 04:32 PM, Vince wrote:
Bonjour Thomas,

Ci-joint le fichier opush.log avec plus de log.
Je ne l'envoi qu'à vous car il peut y avoir des données confidentielles.

Le contenu de ce fichier log se répète à chaque fois que je lance la synchro !!

Et oui, j'ai bien fait le tour des options. J'ai créé son compte sur mon Android. Le problème n'est donc pas lié au smartphone mais bien à son compte. Surement quelque chose qui ne vas pas dans son agenda. Sachant qu'après la mise à jour de notre serveur OBM, il s'était retrouvé avec environ dix doublons par évènements sur toute la durée de l'utilisation de son agenda.

En espérant que vous mettrez le doigt dessus ;)))

Cordialement

Vincent.



--
Thomas Hilaire
Développeur LGS/OBM/R&D
+33 6 43 65 66 03

------------------

GROUPE LINAGORA
74-80 rue Roque de Fillol
92800 Puteaux

+33 (0)8 10 25 12 51
+33 (0)6 79 60 12 91
thila...@linagora.com

------------------

La présente transmission contient des informations confidentielles
appartenant à Linagora, exclusivement destinées au(x) destinataire(s)
identifié(s) ci-dessus. Si vous n'en faites pas partie, toute
reproduction, distribution ou divulgation de tout ou partie des
informations de cette transmission, ou toute action effectuée sur la
base de celles-ci vous sont formellement interdites.
Si vous avez reçu cette transmission par erreur, nous vous remercions de
nous en avertir et de la détruire de votre système d'information.

The present transmission contains privileged and confidential
information belonging to Linagora, exclusively intended for the
recipient(s) thereabove identified. If you are not one of these
aforementioned recipients, any reproduction, distribution, disclosure of
said information in whole or in part, as well as any action undertaken
on the basis of said information are strictly prohbited. If you received
the present transmission by mistake, please inform us and destroy it
from your messenging and information systems.

_______________________________________________
Obm mailing list
Obm@list.obm.org
http://list.obm.org/mailman/listinfo/obm

Répondre à