Exchange Server TechCenter > Exchange Server Forums > Development > EWS, CCR Cluster, and appointments duplicated on failover
Ask a questionAsk a question
 

QuestionEWS, CCR Cluster, and appointments duplicated on failover

  • Thursday, November 05, 2009 12:26 PMgkriggs Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hello,

    We are testing our Exchange Web Services (EWS) application using an Exchange 2007 SP1 with Cluster continuous replication (CCR).  Our testing environment has two cluster node machines (node1 and node2) and another machine running HUB and Client Access Services (CAS).

    When we power off the active node1 machine to force a fail over to node2, all of the appointments created by our application are duplicated on the user's calendar in Outlook.  Also, the accept/decline meeting emails that were previously deleted show back up in the user's inbox.  The duplicates of the appointments don't have the data we put onto the appointments as extended properties.  And also, appointments that were previously deleted show back up on the user's calendar.

    Any ideas why this is happening? 
    Is there any way we can avoid getting these duplicate appointments?
    Or, is this just the way CCR clustering works?
    Or, could there be a misconfiguration in our testing environment?

    Thanks!
    Greg

All Replies

  • Thursday, November 05, 2009 9:14 PMgkriggs Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I'm wondering if, because of the transport dumpster queue, the meeting request messages are being resent.  Our application automatically accepts the appointments and deletes the meeting request emails.  Maybe it doesn't know the meeting request email was deleted, so it thinks it was never delivered, so re-sends the meeting request email.  Then for some reason, it doesn't detect that appointment is already on the calendar, thus creates a duplicate appointment.  If this is the cause, I'm wondering why it doesn't detect the appointment is already on the calendar?
    --Greg
  • Tuesday, November 10, 2009 9:51 AMNewbieNik Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    First off, check your clustering (As your symptoms are NOT how clustering works) Which OS is Exchange cluster on? (2008 has more clustering tools than 2003 and may help)

    run "test-replicationhealth" and "get-clusteredmailboxserverstatus"  on either cluster node to see what errors appear.

    I think you might find the cluster nodes are not replicating properly and the passive node retains the information from its last replication until failover and then it imports the data in your clients Cache and any new data created after failover.

    If we can't solve the issue then you can always remove and re-add the faulty node.....WORST CASE...Do not do this unless no other options exist.
  • Wednesday, November 11, 2009 9:44 PMgkriggs Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Has Code

    NewbieNik, thanks for the suggestions.  I don't see any indication of replication errors, the copy status is healthy.
    Our domain controller, CAS/HUB, Node1, and Node2 machines are all on Server 2008 Enterprise.

    I've discovered I've got two different kinds of duplicate appointment problems going on:

    (1) sometimes shortly after creating an appointment via Exchange Web Services (before I was planning to force a failover), two appointments show up on the calendar.  These duplicates do appear to be located in the Exchange store, because I see them in Outlook Web Access also.  This is very troubling because it seems like this could happen at anytime, not just when a failover occurs.  I'm not able to reproduce this problem in a non-clustered enviornment.  I logged all my calls to Exchange Web Services, and it does not appear my application is accidently calling EWS create appointment twice.  We are considering maybe making our application search for and delete duplicates shortly after creating an appointment...

    (2) sometimes shortly after forcing a failover (by powering off the active node), a duplicate apointment shows up in Outlook.  This duplicate does not appear to be located in the Exchange store; it appears to only be located in the Outlook cache.  I do not see the duplicate when I use Outlook Web Access.  If I delete the Outlook.OST file, and restart Outlook, the duplicate goes away.  So it seems that maybe Outlook's cache is getting out of sync.

    [PS] C:\Windows\System32>get-clusteredmailboxserverstatus
    
    
    Identity                        : MAIL
    ClusteredMailboxServerName      : MAIL.QA02.local
    State                           : Online
    OperationalMachines             : {NODE01 <Active>, NODE02 <Quorum Owner>}
    FailedResources                 : {}
    OperationalReplicationHostNames : {node01, node02}
    FailedReplicationHostNames      : {}
    InUseReplicationHostNames       : {node01, node02}
    IsValid                         : True
    ObjectState                     : Unchanged
    
    
    
    [PS] C:\Windows\System32>test-replicationhealth
    
    Server          Check                      Result     Error
    ------          -----                      ------     -----
    NODE01          PassiveNodeUp              Passed
    NODE01          ClusterNetwork             Passed
    NODE01          QuorumGroup                Passed
    NODE01          FileShareQuorum            Passed
    NODE01          CmsGroup                   Passed
    NODE01          NodePaused                 Passed
    NODE01          DnsRegistrationStatus      Passed
    NODE01          ReplayService              Passed
    NODE01          DBMountedFailover          Passed
    NODE01          SGCopySuspended            Passed
    NODE01          SGCopyFailed               Passed
    NODE01          SGInitializing             Passed
    NODE01          SGCopyQueueLength          Passed
    NODE01          SGReplayQueueLength        Passed
    
    
    [PS] C:\Windows\System32>test-replicationhealth
    
    Server          Check                      Result     Error
    ------          -----                      ------     -----
    NODE02          ClusterNetwork             Passed
    NODE02          QuorumGroup                Passed
    NODE02          FileShareQuorum            Passed
    NODE02          CmsGroup                   Passed
    NODE02          NodePaused                 Passed
    NODE02          DnsRegistrationStatus      Passed
    NODE02          ReplayService              Passed
    NODE02          DBMountedFailover          Passed
    NODE02          SGCopySuspended            Passed
    NODE02          SGCopyFailed               Passed
    NODE02          SGInitializing             Passed
    NODE02          SGCopyQueueLength          Passed
    NODE02          SGReplayQueueLength        Passed
    
    
    [PS] C:\Windows\System32>