Yanıt calendar does not sync with ActiveSync

  • 01 Mayıs 2012 Salı 21:34
     
     

    I'm having an issue where some iPhone and iPad users in our company are able to sync mail and contacts but not calendar.  This issue started happening after a recent hardware failure that required rebuilding our Exchange server from a backup.  The issue does not affect all users.

    For the affected users, I find the following pattern in the application log on the Exchange server when they try to sync.

    • First, there is a warning with Event ID 1107, Source MSExchange ActiveSync, description "Failed to create a sync state because one already exists with the same name."
    • This is followed by a second warning 1008, also Source MSExchange ActiveSync, description "An exception occurred and was handled by Exchange ActiveSync. This may have been caused by an outdated or corrupted Exchange ActiveSync device partnership. This can occur if a user tries to modify the same item from multiple computers. If this is the case, Exchange ActiveSync will re-create the partnership with the device. Items will be updated at the next synchronization."
    • The 1008 warning is logged multiple times during the synchronization attempt.

    What do we need to do so that the calendars will sync correctly?

Tüm Yanıtlar

  • 01 Mayıs 2012 Salı 21:49
     
     

    The users or you can try using Exchange Control Panel to remove the mobile device partnership, then creating a new one from the device.


    Ed Crowley MVP "There are seldom good technological solutions to behavioral problems."

  • 02 Mayıs 2012 Çarşamba 14:12
     
     

    My first attempt to remove the device partership (prior to your response) seems to have created a separate problem (http://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/a13ad6a8-0fe3-4382-b3bc-045708cb2865).

    Thanks for the suggestion.  Hopefully we'll find a way to remove the partnership to see if that resolves the issue.

  • 03 Mayıs 2012 Perşembe 06:01
    Moderatör
     
     

    Based on my experience, moving the affected mailboxed to a new MBX database could fix the issue. Please take a try.

    Hope it is helpful.


    Fiona Liao

    TechNet Community Support

  • 04 Mayıs 2012 Cuma 14:30
     
     

    I currently don't seem to have an option to move the mailbox.

    I actually tried moving the mailbox earlier this week.  The move failed (Event 1100 - The mailbox exceeded the maximum number of corrupted items that were specified for this move request.)  I ran a New-MailboxRepairRequest on the database; looking at the Event ID 10062 in the Event Log, the repair request appeared to have deleted 7 corrupted views.  However, when I go into EMC the "New Local Move Request..." option is no longer available in the shortcut menu.

    Why would I no longer have the option to move the mailbox?

    On a potentially related side note - All of the mailboxes display an icon in EMC.  In the past I've looked for some kind of documentation that would show me what the difference icons represent, but I haven't found anything.  I'm including an image of some of the different icons I've seen.  Most of our mailboxes, including the one I'm having this issue with, have the icon that has the green arrow in the bottom-right corner of the icon.

  • 04 Mayıs 2012 Cuma 14:51
     
     

    Castwa,

    Some useful troublshooting steps here, see it is good information to catch an issue.

    The Exchange support team relatively frequently receives cases where mobile devices using Exchange ActiveSync (EAS) protocol send too many requests to Exchange server resulting in a situation where server runs out of resources, effectively causing a ‘denial of service’ (DOS) attack. The worst outcome of such a situation is that the server also becomes unavailable to other users, who may not be using EAS protocol to connect to server. We have documented this issue with possible mitigations in the following article:

    KB: 2469722 Unable to connect using Exchange ActiveSync due to Exchange resource consumption

    A recent example of this issue was Apple iOS 4.0 devices retrying a full sync every 30 seconds (link). Another example could be some devices that do not understand how to handle a ‘mailbox full’ response from the Exchange server, resulting in several tries to reconnect. This can cause device to attempt to connect & sync with the mailbox more than 60 times in a minute, killing battery life and causing performance issues on server.

    Managing mobile devices & balancing available server resources among different types of clients can be a daunting challenge for IT administrators. Trying to track down which devices are causing resource depletion issues on Exchange Front-end (FE) or Client Access Server (CAS) is not an easy task. As referenced in the article above, Log Parser can be used to extract useful statistics from IIS (Internet Information Server, see note below) logs, but most administrators do not have time & expertise to draft queries to extract such information from lengthy logs.

    The purpose of this post is to introduce everyone in Exchange community to a new PowerShell script that can be utilized to identify devices causing resource depletion issue, help in spotting trends and automatically generate reports for continuous monitoring. Using this script you can easily & quickly drill into EAS related activity of your users which could be a major task considering the IIS logs can get up to several gigabytes in size. The script makes it easier to identify users with multiple mobile/handheld devices connecting via EAS protocol. For most admins it could be a tool to establish a baseline on a day when you think everything related to EAS is working great and then use that for comparison and reporting later when things sway in other directions. It also provides an auto-monitoring feature via e-mail discussed in the end.

    Note: The script mentioned in this blog post works with Exchange 2003, Exchange 2007 and Exchange 2010 IIS logs.

    Note: All communication between Exchange & mobile devices using EAS protocol is logged in the IIS Logs on Exchange FE/CAS servers, in W3C format. The default W3C fields enabled for logging do vary between IIS 6.0 and 7.0/7.5 (IIS 7.0 has the same fields as 7.5) but this PowerShell script works against both versions.

    IIS Logs

    All EAS requests are web requests and thus are logged in the IIS logs, which is enabled by default. Sometimes administrators may disable IIS logging to save space on servers, you can check whether logging is enabled or not & find the location of log files by following these steps:

    IIS 7
    Under ‘IIS Manager’, click the server name i.e. ExchangeServer (Contoso\Administrator), inside ‘Features View’, double click on ‘Logging’ under ‘IIS’ section.

    IIS 6
    Under ‘IIS Manager’, right click the ‘Web site’ (for most it should be Default Web Site) and choose ‘Properties’, then click on the ‘Web Site’ tab.

    What are mobile devices responsible for in communications with the server?

    Before we delve into the specifics of the script we wanted to remind about some of the important requirements for mobile devices that are using EAS protocol to communicate with Exchange server. When a mobile device is returned an unexpected response from server, it is up to the device to handle the response & retry appropriately at a reasonable frequency. In addition these devices are responsible for handling timeouts that happen outside of IIS/ASP, which may be caused by network latencies. All devices should also report a User-Agent with each request being sent to IIS/Exchange.

    What will you see when you use this script?

    The script utilizes Microsoft Log Parser 2.2 to parse IIS logs & generate results. It creates different SQL queries for Log Parser based on the switches (see table below) used by you. If you’ve followed the Exchange Team blog, you may have seen a post talking about Log Parser that touches on similar points. The information in that post still applies to Exchange 2007 & 2010. Since that blog post, additional EAS commands were added to Exchange (link) which are utilized by this new script while processing the logs.

    Here is a list of the EAS Commands the script will report in results:

    Sync, SendMail, SmartForward, SmartReply, GetAttachment, GetHierarchy, CreateCollection, DeleteCollection, MoveCollection, FolderSync, FolderCreate, FolderDelete, FolderUpdate, MoveItems, GetItemEstimate, MeetingResponse, Search, Settings, Ping, ItemOperations, Provision, ResolveRecipients, ValidateCert

    If you would like to understand each command in more depth, you’ll need to review the ActiveSync HTTP Protocol Specification.

    In addition to these commands, the following parameters are also logged by the script.

    1. User

    2. Total number of requests or Hits by Device ID

    3. Total number of all 4xx status codes

    4. Total number of all 5xx status codes (for more info, see KB: 318380 for IIS 6.0 & KB: 943891)

    5. User Name

    6. Device Type

    7. Device ID

    8. User-Agent

    9. Specifically 409 status codes

    • 409 (Conflict) - A collection cannot be made at the Request-URI until one or more intermediate collections have been created. The server MUST NOT create those intermediate collections automatically (Ref: RFC)

    10. Specifically 500 status codes

    • After device sends OPTIONS command, it’s possible to get a 500 response back from server with ‘MissingCscCacheEntry’ error. This can happen as a result of an issue with the affinity where you have an Internet-facing CAS array proxying a request to an Internal CAS array. When the Internet-facing array sends the request to the Internal array, a CAS server will answer with the first 401. In the next communication, the request is handled by a different CAS server in the Internal array. Resolving the affinity issue with the Internal CAS array is the solution.

    11. Specifically 503 status codes

    • The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. If known, the length of the delay MAY be indicated in a Retry-After header. If no Retry-After is given, the client SHOULD handle the response as it would for a 500 response.
    • Note: The existence of the 503 status code does not imply that a server must use it when becoming overloaded. Some servers may wish to simply refuse the connection. (Ref: RFC)

    12. Specifically 507 status codes

    • The 507 (Insufficient Storage) status code means the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. This condition is considered to be temporary. If the request that received this status code was the result of a user action, the request MUST NOT be repeated until it is requested by a separate user action. (Ref: RFC)

    13. Specifically 451 status codes

    • Exchange 2007/2010 returns an HTTP 451 response to an EAS client when it determines that the device should be using a ‘better’ CAS for EAS connectivity. The logic used to determine ‘better’ CAS is based on Active Directory sites & whether a CAS is considered ‘Internet-facing’. If the ‘ExternalUrl’ property on the Microsoft-Server-ActiveSync virtual directory is specified, then that CAS is considered to be ‘Internet-Facing’ for EAS connectivity. (Ref: TechNet articles 1 & 2)

    14. TooManyJobsQueued errors

    • For more info on ‘TooManyJobsQueued’ please refer to KB: 2469722 referenced above

    15. sc-bytes

    • This is only available if you have enabled this tag in IIS logging.

    16. cs-bytes

    • This is only available if you have enabled this tag in IIS logging.

    17. time-taken (in milliseconds)

    • This is only available if you have enabled this tag in IIS logging.

    18. OverBudget

    • A budget is the amount of access that a user or application may have for a specific setting. A budget represents how many connections a user may have or how much activity a user may be permitted for each one-minute period. (Ref: TechNet article)

    19. Subset of ‘Common Status Codes

    • InvalidContent, ServerError, ServerErrorRetryLater, MailboxQuotaExceeded, DeviceIsBlockedForThisUser, AccessDenied, SyncStateNotFound, DeviceNotFullyProvisionable, DeviceNotProvisioned, ItemNotFound, UserDisabledForSync

    What can you do with this script?

    You can process logs using this script to retrieve …

    1. Hits by user/Device ID (users/devices with maximum number of requests sent to server)
    2. Hits per hour/day (helps in determining the frequency of requests sent by user/device, time value is entered in seconds)
    3. Hits by device with specified threshold limit (here you can specify a limit for hits/requests, i.e. all users who are sending 1000 requests per hour/day, etc.)
    4. CSV export of results
    5. HTML report of results
    6. E-mail reports for monitoring (CSV/HTML formats)

    Please make sure you have Log Parser 2.2 installed on your machine before using this script. You will also need Windows PowerShell 2.0 installed on the same machine, note that it is installed by default on Windows 7 & Windows 2008 R2 machines.

    Where can you get the script?

    You can download the script here.

    Script Parameters

    Parameter

    Required

    Type

    Description

    ActiveSyncOutputFolder

    Required

    System.String

    CSV and HTML output directory

    ActiveSyncOutputPrefix

    Optional

    System.String

    Prefixes string to the output file name

    CreateZip

    Optional

    System.Management.
    Automation.SwitchParameter

    Creates a ZIP file. Can only be used with SendHTMLReport

    CreateZipSize

    Optional

    System.In32

    Threshold file size. The Default is 2MB. Once this has been exceeded the file will be compressed. Requires SendHTMLReport and CreateZip to be true

    Date

    Optional

    System.String

    Specify a date to parse on. Enter date in the format: MM-DD-YYYY

    DeviceId

    Optional

    System.String

    Active Sync Device ID to parse on

    DisableColumnDetect

    Optional

    System.Management.
    Automation.SwitchParameter

    Disables the ability to add additional columns to the report that users may have enabled, Example: time-taken
    Note: If you are running against multiple files that may have different W3C headers this switch should be used.

    Help

    Optional

    System.Management.
    Automation.SwitchParameter

    Outputs switch descriptions

    ReportBySeconds

    Optional

    System.Int32

    Generates the report bases in the value entered in seconds

    Hourly

    Optional

    System.Management.
    Automation.SwitchParameter

    Generates the report on a per hourly basis

    HTMLReport

    Optional

    System.Management.
    Automation.SwitchParameter

    Creates an HTML Report

    HTMLCSVHeaders

    Optional

    System.String

    IIS CSV Headers to Export on in the –HTMLReport.

    Defaults: "DeviceID,Hits,Ping,Sync,FolderSync,DeviceType,User-Agent"

    IISLogs

    Required

    System.Array

    IIS Log Directory.
    Example.- IISLogs D:\Server,'D:\Server 2'

    LogParserExec

    Required

    System.String

    Path to LogParser.exe

    MinimunHits

    Optional

    System.Int32

    Minimum Hit Threshold value where the report will generate on CSV and HTML

    SendEmailReport

    Optional

    System.Management.
    Automation.SwitchParameter

    Enable Email reporting

    SMTPRecipient

    Optional

    System.String

    SMTP Recipient

    SMTPSender

    Optional

    System.String

    SMTP Sender

    SMTPServer

    Optional

    System.String

    SMTP Server

    TopHits

    Optional

    System.Int32

    Top Hits to return.
    Example: TopHits 50, This cannot be used with Hourly or ReportBySeconds

    How do you use the script?

    Below are some examples (with commands) on how you can use the script and why you might use them.

    Hits greater than 1000

    The following command will parse all the IIS Logs in the folder W3SVC1 and only report the hits by users & devices that are greater than 1000.

    .\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1" -LogparserExec “C:\Program Files (x86)\Log Parser 2.2\LogParser.exe” -ActiveSyncOutputFolder c:\EASReports MinimunHits 1000

    [In above command, script ‘ActiveSyncReport.ps1’ is located at the root of C drive, -IISLog switch specifies the default location of IIS logs, -LogparserExec switch points to the location of Log Parser executable application file, -ActiveSyncOutputFolder switch provides the location where output or result file needs to be saved, MinimumHits with a value of ‘1000’ is the script parameter explained in the above table]

    Output:

    Usually if a device is sending over 1000 requests per day, we consider this ‘high usage’. If the hits (requests) are above 1500, there could be an issue on the device or environment. In that case, the device & its user’s activity should be further investigated.

    As a real world example, in one case we noticed there were several users who were hitting their Exchange server via EAS a lot (~25K hits, 1K hits per hour) resulting in depletion of resources on the server. Upon further investigation we saw that all of those users’ requests were resulting in a 507 error on mailbox servers on the back-end. Talking to those EAS users we discovered that during that time period they were hitting their mailbox size limits (25 MB) & were trying to delete mail from different folders to get under the size limit. In such situations, you may also see HTTP 503 (‘TooManyJobsQueued’) responses in IIS logs for EAS requests as described in KB:

    2469722

    Isolating a specific device ID

    Here the following command will parse all the IIS Logs in the folder C:\IISLogs and will look for the Device ID xxxxxx and display its hourly statistics.

    .\ActiveSyncReport.ps1 -IISLog " C:\inetpub\logs\LogFiles\W3SVC1" -LogparserExec “C:\Program Files (x86)\Log Parser 2.2\LogParser.exe” -ActiveSyncOutputFolder c:\EASReports –DeviceID xxxxxx -Hourly

    Output:

    With the above information you can pick a user/device and see the hourly trends. This can help identify if it’s a user action or a programmatic one.

    As a real world example, in one case we had to find out which devices were modifying calendar items. So we looked at the user/device activity and sorted that by different commands they were sending to the server. After that we just concentrated on which users/devices were sending ‘MeetingResponse’ command and its frequency, time period & further related details. That helped us narrowing the issue to related users and their calendar specific activity to better address the underlying calendaring issue.

    Another device related command & error to look for is ‘Options’ command and if it does not succeed for a device then the HTTP 409 error code is returned in IIS log.

    Isolating a single day

    The following command will parse only the files that match the date 12-24-2011 in the folder W3SVC1 and will only report the hits greater than 1000.

    .\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1" -LogparserExec “C:\Program Files (x86)\Log Parser 2.2\LogParser.exe” -ActiveSyncOutputFolder c:\EASReports -MinimunHits 1000 –Date 12-24-2011

    Output:

    With the above information you can identify users sending high number of requests. Also, within the columns, you can see what kind of commands those users are sending. This helps in coming up with more directed & efficient troubleshooting techniques.

    What Should You Look For?

    When analyzing IIS logs with the help of script, you should look for one specific command being sent over and over again. The frequency of particular commands being sent is important, any command failing frequently is also very important & one should further look into that. We should also look & compare the wait times between the executions of certain commands. Generally, commands taking longer time to execute or resulting in delayed response from server will be suspicious & should be further investigated. Keep in mind though, the Ping command is an exception as it takes longer to execute and you will see it frequently in the log as well, which is expected.

    If you notice continuous failures to connect for a device with en error code of 403 that could mean that the device is not enabled for EAS based access. Sometimes mobile device users complain of connectivity issues not realizing that they’re actually not entering their credentials correctly (understandably it’s easy to make such mistakes on mobile devices). When looking thru logs, you can focus on that user & may find that user’s device is failing after issuing the ‘Provision’ command.

    Creating Reports for Monitoring

    You may want to create a report or generate an e-mail with such reports and details of user activity.

    The following command will parse all the IIS Logs in the folder W3SVC1 and will only report the hits greater than 1000. Additionally it will create an HTML report of the results.

    .\ActiveSyncReport.ps1 -IISLog "C:\inetpub\logs\LogFiles\W3SVC1" -LogparserExec “C:\Program Files (x86)\Log Parser 2.2\LogParser.exe” -ActiveSyncOutputFolder c:\EASReports -MinimunHits 1000 -HTMLReport

    The following command will parse all the files in the folders C:\Server1_Logs and D:\Server2_Logs and will also email the generated report to ‘user@contoso.com’.

    .\ActiveSyncReport.ps1 -IISLog "C:\Server1_Logs",”D:\Server2_Logs” -LogparserExec “C:\Program Files (x86)\Log Parser 2.2\LogParser.exe” -ActiveSyncOutputFolder c:\EASReports -SendEmailReport -SMTPRecipient

    user@contoso.com –SMTPSender user2@contoso.com -SMTPServer mail.contoso.com


    Mihir Nayak If a post is helpful, please take a second to hit the green arrow on the left, or mark as answer, thanks

  • 04 Mayıs 2012 Cuma 14:55
     
     

    Hi,
    The green arrow means that a mailbox move request exists for that user.

    You won't be able to move the mailbox again until you clear the previous move request.
    Clear or Remove Move Requests
    http://technet.microsoft.com/en-us/library/dd351276.aspx


    Martina Miskovic

  • 04 Mayıs 2012 Cuma 19:22
     
      Kod İçerir

    Trying to move the mailbox still fails.  I'm inserting the log details below.

    It has also been suggested to me that I export the mailbox to a .pst, remove the mailbox, and then create a new mailbox and load the .pst back into the new mailbox.  I've exported the mailbox, but I question the filesize.  Exchange says the actual mailbox size is 4,038,286 KB.  When I exported the mailbox, it was a 93.2MB .pst, and the archive was a 2.59GB .pst; these two don't add up to the size Exchange reports.

    I tested exporting my own mailbox, and it was 638,865 KB compared to Exchange reporting 483,323 KB.  My understanding is that this is normal for the .pst to be larger than the size reported by Exchange, but I don't understand why the .pst files would be smaller than the size in Exchange.

    Why would the .pst files be smaller than the size in Exchange?  How can I verify that I've succssfully exported the data from Exchange before disabling the mailbox?  What can I do now to move forward with trying to resolve the issue of the calendars not syncing?

    5/4/2012 1:26:49 PM [SERVER] 'DOMAIN.LOCAL/DOMAIN Users/USERNAME' created move request.
    5/4/2012 1:26:52 PM [SERVER] The Microsoft Exchange Mailbox Replication service 'SERVER.DOMAIN.LOCAL' (14.1.218.11 caps:07) is examining the request.
    5/4/2012 1:26:52 PM [SERVER] Connected to target mailbox 'Primary (60e34978-0242-4d5a-a821-39864c56ab29)', database 'ArchiveDB1', Mailbox server 'SERVER.DOMAIN.LOCAL' Version 14.1 (Build 218.0).
    5/4/2012 1:26:52 PM [SERVER] Connected to source mailbox 'Primary (60e34978-0242-4d5a-a821-39864c56ab29)', database 'Mailbox Database 0502362727', Mailbox server 'SERVER.DOMAIN.LOCAL' Version 14.1 (Build 270.0).
    5/4/2012 1:26:52 PM [SERVER] Request processing started.
    5/4/2012 1:26:53 PM [SERVER] Source Mailbox information before the move:
    Regular Items: 33173, 3.851 GB (4,135,144,674 bytes)
    Regular Deleted Items: 2605, 108.5 MB (113,765,622 bytes)
    FAI Items: 77, 0 B (0 bytes)
    FAI Deleted Items: 0, 0 B (0 bytes)
    5/4/2012 1:26:53 PM [SERVER] Initializing folder hierarchy in mailbox 'Primary (60e34978-0242-4d5a-a821-39864c56ab29)': 209 folders total.
    5/4/2012 1:27:02 PM [SERVER] Folder hierarchy initialized for mailbox 'Primary (60e34978-0242-4d5a-a821-39864c56ab29)': 209 folders total.
    5/4/2012 1:27:02 PM [SERVER] Stage: CreatingInitialSyncCheckpoint. Percent complete: 15.
    5/4/2012 1:27:03 PM [SERVER] Stage: LoadingMessages. Percent complete: 20.
    5/4/2012 1:27:05 PM [SERVER] Stage: CopyingMessages. Percent complete: 25.
    5/4/2012 1:27:05 PM [SERVER] Copy progress: 0/35908 messages, 0 B (0 bytes)/3.961 GB (4,253,084,120 bytes).
    5/4/2012 1:27:05 PM [SERVER] Messages have been enumerated successfully. 35908 items loaded. Total size: 3.961 GB (4,253,084,120 bytes).
    5/4/2012 1:27:06 PM [SERVER] A corrupted item was encountered during the move operation. The item wasn't copied to the destination mailbox.
    <baditem errorType="MapiExceptionPartialCompletion" errorCode="0x80070680" flags="0x00000000" id="00000000FBC91AE71A090543ADF5F37A6DA062370700849F81916402884097E35F8E337998BC000000E456DE00006984E0EFE3A42145A9CEE38B1182EF1A00005AC386090000">
      <folder id="00000000FBC91AE71A090543ADF5F37A6DA062370100849F81916402884097E35F8E337998BC000000E456DE0000">Inbox</folder>
      <sender></sender>
      <recipient></recipient>
      <subject>IPM.Configuration.Autocomplete</subject>
      <messageClass>IPM.Configuration.Autocomplete</messageClass>
      <size>346058</size>
      <dateSent />
      <dateReceived />
      <errorMessage>MapiExceptionPartialCompletion: Unable to copy message(s). (hr=0x40680, ec=0)
    Diagnostic context:
        Lid: 55847   EMSMDBPOOL.EcPoolSessionDoRpc called [length=78]
        Lid: 43559   EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=389][latency=0]
        Lid: 23226   --- ROP Parse Start ---
        Lid: 27962   ROP: ropFXSrcCopyMessages [75]
        Lid: 27962   ROP: ropTellVersion [134]
        Lid: 27962   ROP: ropFXSrcGetBufferEx [156]
        Lid: 17082   ROP Error: 0xFFFFF9BF
        Lid: 23137  
        Lid: 21921   StoreEc: 0xFFFFF9BF
        Lid: 27962   ROP: ropExtendedError [250]
        Lid: 1494    ---- Remote Context Beg ----
        Lid: 26426   ROP: ropFXSrcGetBufferEx [156]
        Lid: 23921   StoreEc: 0x3EC     
        Lid: 21970   StoreEc: 0x8004010F PropTag: 0x67A50102
        Lid: 23921   StoreEc: 0x3EC     
        Lid: 21970   StoreEc: 0x8004010F PropTag: 0x65E00102
        Lid: 23921   StoreEc: 0x3EC     
        Lid: 21970   StoreEc: 0x8004010F PropTag: 0x668F0040
        Lid: 21097  
        Lid: 39027   dwParam: 0x119153A
        Lid: 8756    StoreEc: 0xFFFFF9BF
        Lid: 58765   StoreEc: 0xFFFFF9BF
        Lid: 4353    StoreEc: 0xFFFFF9BF
        Lid: 17114  
        Lid: 6153    StoreEc: 0xFFFFF9BF
        Lid: 30170  
        Lid: 24090   StoreEc: 0xFFFFF9BF
        Lid: 21904  
        Lid: 3905    StoreEc: 0xFFFFF9BF
        Lid: 20888  
        Lid: 20888  
        Lid: 24504   StoreEc: 0xFFFFF9BF
        Lid: 24148   StoreEc: 0xFFFFF9BF
        Lid: 23796  
        Lid: 2478    StoreEc: 0xFFFFF9BF
        Lid: 1750    ---- Remote Context End ----
        Lid: 26849  
        Lid: 21817   ROP Failure: 0xFFFFF9BF
        Lid: 32758  
        Lid: 16586   StoreEc: 0xFFFFF9BF
        Lid: 22518  
        Lid: 28874   StoreEc: 0xFFFFF9BF
        Lid: 17654  
        Lid: 18122   StoreEc: 0xFFFFF9BF
        Lid: 25510  
        Lid: 25270   StoreEc: 0xFFFFF9BF
        Lid: 19830  
        Lid: 25290   StoreEc: 0xFFFFF9BF
        Lid: 55847   EMSMDBPOOL.EcPoolSessionDoRpc called [length=45]
        Lid: 43559   EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=118][latency=0]
        Lid: 23226   --- ROP Parse Start ---
        Lid: 31418   --- ROP Parse Done ---
        Lid: 16465  
        Lid: 24657   StoreEc: 0xFFFFF9BF</errorMessage>
      <errorContext>--------
    Operation: LocalSourceFolder.CopyBatch
    EntryIDs: [[len=70, data=00000000FBC91AE71A090543ADF5F37A6DA062370700849F81916402884097E35F8E337998BC000000E456DE00006984E0EFE3A42145A9CEE38B1182EF1A00005AC386090000]]
    --------
    Folder: entryId [len=46, data=00000000FBC91AE71A090543ADF5F37A6DA062370100849F81916402884097E35F8E337998BC000000E456DE0000]
    --------
    Operation: ISourceMailbox.ExportMessages
    OperationSide: Source
    Primary (60e34978-0242-4d5a-a821-39864c56ab29)
    Flags: None
    PropTags: (null)</errorContext>
    </baditem>
    5/4/2012 1:27:06 PM [SERVER] Stage: CopyingMessages. Percent complete: 25.
    5/4/2012 1:27:06 PM [SERVER] Copy progress: 0/35908 messages, 0 B (0 bytes)/3.961 GB (4,253,084,120 bytes).
    5/4/2012 1:27:06 PM [SERVER] Fatal error TooManyBadItemsPermanentException has occurred.
    Error details: This mailbox exceeded the maximum number of corrupted items that were specified for this move request.
       at Microsoft.Exchange.MailboxReplicationService.BaseJob.ReportBadItems(MailboxCopierBase mbxCtx, List`1 badItems)
       at Microsoft.Exchange.MailboxReplicationService.MailboxCopierBase.CopyMessageBatch(List`1 batch, MailboxChanges mailboxChanges, Int32& numberOfUpdates)
       at Microsoft.Exchange.MailboxReplicationService.MailboxCopierBase.CopyMessages(List`1 batch)
       at Microsoft.Exchange.MailboxReplicationService.MoveBaseJob.WriteMessages(Object[] wiParams)
       at Microsoft.Exchange.MailboxReplicationService.CommonUtils.CatchKnownExceptions(GenericCallDelegate del, FailureDelegate failureDelegate)
    Error context: 
    5/4/2012 1:27:06 PM [SERVER] Relinquishing job.
    
    

  • 14 Mayıs 2012 Pazartesi 19:24
     
     Yanıt

    FYI..

    Since the New-MailboxExport requests were not completing successfully, these are the steps I ended up taking to resolve the issue.

    • I used Outlook to manually move (drag and drop) all items (mail, contacts, calendar, tasks, etc.) from the user's mail database to new folders in the user's Exchange archive.
    • I exported the Exchange archive.  This completed successfully.
    • I disabled the mailbox.
    • I created a new mailbox.
    • At this point, I was able to successfully create a calendar entry (using OWA) and it would sync to the mobile device.
    • I imported the .PST into the new mail database.
    • I used Outlook to manually move all items from the new folders I'd created in the archive back to the appropriate folders in Outlook.

    I completed the first step above on my PC (I'd given myself access to the user's mailbox).  When the process was complete, Outlook on the user's PC was not syncing with Exchange.  It turns out this worked in our favor, because there were 10-20 calendar entries and over 300 contacts that were present in the user's Outlook (.ost?) but apparently weren't available for me to copy from Exchange when I was manually backing up items.  I was able to back these items up to a new .pst on the user's desktop.  It turned out I had to delete the users Outlook profile (Control Panel | Mail), and then create a new profile before Outlook would sync with Exchange again.  I was then able to restore to problematic items from the temporary .pst.  Although the calendar was syncing with the phone, mail was not.  I removed the Active Partnerships in Exchange, removed the Exchange account on the device, recreated the Exchange account on the device, then everything was finally working correctly.

    • Yanıt Olarak İşaretleyen castewa 14 Mayıs 2012 Pazartesi 19:25
    •