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:01Moderatör
-
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 …
- Hits by user/Device ID (users/devices with maximum number of requests sent to server)
- Hits per hour/day (helps in determining the frequency of requests sent by user/device, time value is entered in seconds)
- 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.)
- CSV export of results
- HTML report of results
- 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.SwitchParameterCreates 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.SwitchParameterDisables 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.SwitchParameterOutputs switch descriptions
ReportBySeconds
Optional
System.Int32
Generates the report bases in the value entered in seconds
Hourly
Optional
System.Management.
Automation.SwitchParameterGenerates the report on a per hourly basis
HTMLReport
Optional
System.Management.
Automation.SwitchParameterCreates 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.SwitchParameterEnable 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 ReportBySecondsHow 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:
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.aspxMartina Miskovic
-
04 Mayıs 2012 Cuma 19:22
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
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