Re: [Obm] Plus de synchronisation suite mise à jour en 2.4.1.2
Bonjour Vince, Les erreurs que présente votre fichier //var/log/apache/obm-error.log /doivent datées d'une synchronisation faite lorsque le votre fichier de configuration d'apache était encore invalide. Les traces que vous avez envoyées par rapport l'utilisateur qui ne voit pas son agenda n'ont pas de problème. Pour avoir plus de détails, veuillez recréer le compte sur le téléphone qui pose problème après avoir activé les logs dans le fichier //etc/opush/logback.xml/ comme ceci : included logger name=AUTHENTICATION level=DEBUG / logger name=REQUEST.FULL level=DEBUG / logger name=OBM-SYNC level=DEBUG / logger level=DEBUG name=org.obm.push.impl.ResponderImpl / /included Pouvez-vous aussi vérifier que le l'application calendrier du téléphone de l'utilisateur est bien configuré pour afficher les informations relatives au compte opush. Merci, Thomas On 11/20/2012 04:07 PM, Vince wrote: J'ai également ça dans le fichier /var/log/apache/obm-error.log : [Tue Nov 20 16:00:00 2012] [error] [client 93.28.85.198] (70007)The timeout specified has expired: proxy: error reading status line from remote server localhost [Tue Nov 20 16:00:00 2012] [error] [client 93.28.85.198] proxy: Error reading from remote server returned by /Microsoft-Server-ActiveSync Et toujours pour le fichier /var/log/opush/opush.log, la partie correspondante à l'utilisateur qui n'a pas son agenda : 16:04:00.046 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t/c/r/]:query = User=sbarreyDeviceId=Appl8500586C3NPDeviceType=iPhoneCmd=Ping, initial = true, resume = false, m = POST, num = 807 16:04:00.056 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t/c/r/]:Login success sbar...@cire.fr ! 16:04:00.059 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t15/cPing/r807/sbar...@cire.fr]:policy used = 220132048 16:04:00.061 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t15/cPing/r807/sbar...@cire.fr]:incoming query 16:04:00.063 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t/c/r/]:query = User=sbarreyDeviceId=Appl8500586C3NPDeviceType=iPhoneCmd=Ping, initial = false, resume = true, m = POST, num = 805 16:04:00.064 [DEBUG] {o.o.p.ActiveSyncServlet$$EnhancerByGuice$$ed365877} [t14/cPing/r805/sbar...@cire.fr]:continuation 16:04:00.064 [DEBUG] {org.obm.push.impl.ResponderImpl} [t14/cPing/r805/sbar...@cire.fr]:response: send response Et autre information : les contacts se synchronisent bien, mais pas l'agenda !!! Le 19/11/2012 17:01, Vince a écrit : Thomas, En fait, il y a des comptes qui ne se synchronisent pas, que ce soit avec un iphone ou un android. La synchro avec le connecteur fonctionne bien. J'avais même un utilisateur qui avait énormément de doublons. J'ai du faire le ménage et supprimer plus de 1600 évènements redondants. Cela m'était déjà arrivé avec la migration en 2.4 et j'avais déjà fait du ménage. Dans le log ci-dessous, à quoi correspond col1 ??? Merci pour votre aide. Vincent * Anglais - détecté * Français * Français -- Thomas Hilaire Développeur LGS/OBM/RD +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
Re: [Obm] Plus de synchronisation suite mise à jour en 2.4.1.2
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. Le 21/11/2012 15:25, Hilaire Thomas a écrit : Bonjour Vince, Les erreurs que présente votre fichier //var/log/apache/obm-error.log /doivent datées d'une synchronisation faite lorsque le votre fichier de configuration d'apache était encore invalide. Les traces que vous avez envoyées par rapport l'utilisateur qui ne voit pas son agenda n'ont pas de problème. Pour avoir plus de détails, veuillez recréer le compte sur le téléphone qui pose problème après avoir activé les logs dans le fichier //etc/opush/logback.xml/ comme ceci : included logger name=AUTHENTICATION level=DEBUG / logger name=REQUEST.FULL level=DEBUG / logger name=OBM-SYNC level=DEBUG / logger level=DEBUG name=org.obm.push.impl.ResponderImpl / /included Pouvez-vous aussi vérifier que le l'application calendrier du téléphone de l'utilisateur est bien configuré pour afficher les informations relatives au compte opush. Merci, Thomas -- Thomas Hilaire Développeur LGS/OBM/RD +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
Re: [Obm] Plus de synchronisation suite mise à jour en 2.4.1.2
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
Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3
Le mardi 27 novembre 2012 à 10:36 +0100, Francois Goudal a écrit : Bonjour Matthieu, [...] De plus, Si j'essaie de connecter un iPhone avec ActiveSync, je le vois bien faire des requetes autodiscover dans les logs Apache, mais pour autant, l'iPhone n'obtient pas l'information necessaire, puisqu'il finit par me demander l'adresse du serveur (ce qu'il est justement normalement cense recevoir via autodiscover). Donc cela confirme que l'autodiscover ne fonctionne pas. J'aimerais bien continuer a debugguer cela, mais je ne sais plus vraiment ou regarder. - Je ne peux pas vraiment sniffer le traffic pour voir la requete et la reponse, puisque c'est du SSL Le lien entre le serveur apache et le serveur opush ne doit pas être en SSL, vous pouvez faire un tcpdump à ce niveau. - Je ne trouve pas d'exemple de requete POST que je pourrais eventuellement envoyer moi meme Vous pouvez essayer avec ce morceau de XML : Autodiscover xmlns=http://schemas.microsoft.com/exchange/autodiscover/mobilesync/requestschema/2006; Request EMailAddressVOTRE_ADRESSE_EMAIL/EMailAddress AcceptableResponseSchemahttp://schemas.microsoft.com/exchange/autodiscover/mobilesync/responseschema/2006/AcceptableResponseSchema /Request /Autodiscover - Je ne vois pas ou trouver des logs qui pourraient m'interesser sur le serveur OBM Voir la page : http://www.obm.org/wiki/logs Vous pouvez activer REQUEST.FULL et vous devriez avoir les logs de l'autodiscover. Auriez-vous une idee de comment je peux essayer de progresser pour faire fonctionner cela ? N'hésitez pas à nous communiquer plus d'infos si vous êtes toujours bloqué. -- Matthieu Baechler matthieu.baech...@linagora.com ___ Obm mailing list Obm@list.obm.org http://list.obm.org/mailman/listinfo/obm
Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3
Le mardi 27 novembre 2012 à 11:16 +0100, Francois Goudal a écrit : Re-bonjour, Merci pour ces informations, qui m'ont permis de progresser dans mes tests. [...] On voit donc bien la reponse ici. Par rapport au message d'erreur retourne par l'outil de microsoft, il semblerait que : Autodiscover ne soit pas valide, et qu'il s'attende en fait a avoir un xmlns qui soit specifie. C'est peut-être un problème, effectivement. Quel périphérique utilisez-vous ? Nous avions testé plusieurs téléphone avec succès dans cette version. Cette page web de microsoft semble egalement indiquer cela : http://blogs.msdn.com/b/exchangedev/archive/2011/07/08/autodiscover-for-exchange-activesync-developers.aspx Si je voulais faire des modifs dans le code d'opush pour adapter le format de la reponse XML afin qu'elle soit consideree valide par l'outil, par ou me conseillez-vous de commencer a regarder ? C'est relativement simple : - la classe AutodiscoverHandler prend en charge les requêtes d'autodiscover - la classe AutodiscoverProtocol prend en charge la partie XML des requêtes et réponses, dans encodeResponse, vous verrez la ligne suivante : Document autodiscover = DOMUtils.createDoc(null, Autodiscover); Le premier paramètre est le namespace à utiliser. - enfin, je vous conseille de mettre également à jour le code de test dans AutodiscoverHandlerTest. Attention, ces tests sont annotés comme étant @Slow, ils ne s'exécutent que lors de la phase integration-test de maven N'hésitez pas à nous solliciter si vous avez besoin d'aide pour cette modification, nous nous efforcerons de vous guider et de l'intégrer au plus vite. Cordialement, -- Matthieu Baechler matthieu.baech...@linagora.com ___ Obm mailing list Obm@list.obm.org http://list.obm.org/mailman/listinfo/obm
Re: [Obm] ActiveSync autodiscover - Opush - OBM 2.3
On 27/11/12 11:54, Matthieu Baechler wrote: [...] On voit donc bien la reponse ici. Par rapport au message d'erreur retourne par l'outil de microsoft, il semblerait que : Autodiscover ne soit pas valide, et qu'il s'attende en fait a avoir un xmlns qui soit specifie. C'est peut-être un problème, effectivement. Quel périphérique utilisez-vous ? Nous avions testé plusieurs téléphone avec succès dans cette version. Ce test a ete fait en utilisant l'outil de microsoft qui permet de tester le bon fonctionnement du service autodiscover d'un serveur exchange. https://www.testexchangeconnectivity.com Il ne s'agit donc pas d'un vrai client, mais d'un outil de test officiel, donc j'en conclus que si lui ne fonctionne pas, il y a de fortes chances que certains autres clients echouent egalement pour la meme raison. Mon objectif ultime, derriere ces tests, serait d'utiliser Outlook 2013 comme client. Une des nouveautes d'Outlook 2013 est l'ajout du support du protocole ActiveSync. J'ai donc voulu tenter de le faire synchroniser avec mon OBM via OPush. En faisant quelques traces wireshark, j'ai pu voir que ce client essaie systematiquement de faire un Autodiscover, et si jamais il n'y arrive pas, il n'essaie meme pas de se connecter a un serveur via ActiveSync, c'est donc pour cela que j'essaie de faire en sort que l'Autodiscover fonctionne correctement sur mon serveur OBM (et que l'implementation de microsoft fonctionne avec, ce qui pour le moment, ne semble pas etre le cas, d'apres leur outil de test). Cette page web de microsoft semble egalement indiquer cela : http://blogs.msdn.com/b/exchangedev/archive/2011/07/08/autodiscover-for-exchange-activesync-developers.aspx Si je voulais faire des modifs dans le code d'opush pour adapter le format de la reponse XML afin qu'elle soit consideree valide par l'outil, par ou me conseillez-vous de commencer a regarder ? C'est relativement simple : - la classe AutodiscoverHandler prend en charge les requêtes d'autodiscover - la classe AutodiscoverProtocol prend en charge la partie XML des requêtes et réponses, dans encodeResponse, vous verrez la ligne suivante : Document autodiscover = DOMUtils.createDoc(null, Autodiscover); Le premier paramètre est le namespace à utiliser. - enfin, je vous conseille de mettre également à jour le code de test dans AutodiscoverHandlerTest. Attention, ces tests sont annotés comme étant @Slow, ils ne s'exécutent que lors de la phase integration-test de maven N'hésitez pas à nous solliciter si vous avez besoin d'aide pour cette modification, nous nous efforcerons de vous guider et de l'intégrer au plus vite. Cordialement, La ou j'aurai effectivement besoin d'un peu d'aide, c'est pour etre capable de recompiler opush et le deployer sur mon serveur. Modifier le code ne devrait pas etre un probleme, mais je ne suis pas familier avec le java, et en particulier son environnement de compilation et le deploiement de servlets. Dommage que ca ne soit pas ecrit en C/C++ ;) En gros, pour resumer, voila ce que j'ai fait pour l'instant : Sur ma machine j'ai recupere le paquet source pour obm-opush : apt-get source obm-opush Cela m'a donc recupere l'ensemble des sources du paquet obm-java. J'ai ensuite installe les build dependancies : apt-get build-dep obm-java Puis j'ai essaye, sans modifier le code, pour le moment, de generer les paquets debs (donc, entre autres, obm-opush) : dpkg-buildpackage -us -uc -rfakeroot Malheureusement, cela ne fonctionne pas : Tests in error: testClosedSession(com.linagora.obm.sync.TestQueueManager): Server not started testDurableSubscription(com.linagora.obm.sync.TestQueueManager): Server not started testDurableSubscription2(com.linagora.obm.sync.TestQueueManager): Server not started testConsumeLater(com.linagora.obm.sync.TestQueueManager): Server not started testTwoConsumers(com.linagora.obm.sync.TestQueueManager): Server not started Tests run: 6, Failures: 0, Errors: 5, Skipped: 0 [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] There are test failures. Please refer to /root/obm-java-2.4.1.2/message-queue/target/surefire-reports for the individual test results. [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 58 seconds [INFO] Finished at: Tue Nov 27 15:03:03 CET 2012 [INFO] Final Memory: 25M/60M [INFO] make: *** [build] Error 1 dpkg-buildpackage: error: debian/rules build gave error exit status 2 De plus, cette solution n'est pas ideale pour tester facilement des modifications, car on recompile tout a chaque fois, donc ca prend