GALSync Server Version History ------------------------------ 1.0.0 Initial release. 1.0.1 Changes to minimal (0), detailed (1) and verbose (2) logging. Clear button in Service Manager console tab now enables/disables correctly. Changes to Sync Interval and Polling Interval are now saved correctly. 1.0.2 Fixed problem where sync might fail if mailbox contains zero existing Contacts. 1.0.3 Fixed problem with incorrectly formatted registry key which could cause GALSync server/manager to fail on start-up. 1.0.4 Fixed problem where Service Manager stopped server from being Restarted/Logged Off. 1.0.5 Improved synchronisation for various different formats of display name: 'First, Last', 'Last, First' etc 1.0.6 Fixed bug where Enterprise licences above Entry might be incorrectly limited to 50 users. 1.1.0 Enhanced 'Scheduling'. Scheduling configuration has now been moved to the new Scheduling tab. The Polling Interval feature has been removed (though the default 5 second setting can still be changed by using the 'PollingInterval' registry value). New Scheduling feature allows a Sync to at a specified time per day. The 'Sync Every' control has been expanded to allow minutes, hours or days to be specified. Added new 'Logfile' feature. There is a new 'Save to Logfile' checkbox on the console tab. When enabled information displayed in the console window will also be copied to a date-time stamped logfile in the Program Files folder where GALSync Server was installed (for example: C:\Program Files\Slipstream Solutions Ltd\GALSync Server\GALSyncServer_2007-09-03_17-15-24.log). There are also a new 'Save to logfile' button and a new item on the console screen context menu to allow a copy of the console to be saved into a logfile. Added 'Pause/Continue' button to Console tab. There is a new pause/continue button which can be used to pause output to the console to allow for easier viewing. Note: Information will continue to be be logged to the Event Application Log even whilst the console is paused. Added new 'Console Size' control. There is a new 'Maximum console size' field which can be used to control the maximum number of rows displayed in the console window. Once the maximum number of rows is reached oldest items will be removed from the top of the console window as new items are added at the bottom. Added context menu to console window. Right-clicking the console window will reveal a new menu offering two options: 'Clear Console' and 'Save to Logfile...'. Added new 'Sync User Mailbox' button. Selecting a user and clicking this button will trigger a sync for the selected user. Added new 'Delete Sync'ed GAL from User's Mailbox' button. Selecting a user and clicking this button will cause all the GAL contacts that have been previously sync'ed to that user's Contacts folder to be deleted. Added new 'Delete Sync'ed GAL from all users mailboxes' menu item. Clicking this menu option will cause all GAL contacts that have been sync'ed to users' mailboxes to be deleted. Auto-Refresh. The User tab now automatically refreshes when the application starts. Added 'Clear' button and item on context menu. Removed 'Default' button from Console tab. 1.1.1 Fixed a bug where the user server text field on the User tab was not saving to registry. Fixed a bug where entering text into the server field against a user that had not been ticked would cause a crash. The 'Last Sync' label field will now display when a Sync is in progress. Various minor bug fixes to the console and user tabs to improve usability and reduce lock-ups/crashes. Additional 'debug' verbose setting added. 1.1.2 Improved general code safety. Improved code safety of user list refresh. Refresh now cannot take place whilst a Sync is in progress. Added hidden Registry value: NoRefreshOnLoad. When this DWORD value is set to a value of 1 the GALSync Server Manager will not refresh the user list when the program first loads - instead the user must click the Refresh button. 1.1.3 Fixed a regression bug where mailbox, server and address list combo values were not being saved to registry. Fixed a bug where Clear menu/button and Save to logfile menu/buttons would not enable properly if user list did not contain items. 1.1.4 Added a new option to allow sync'ed GAL contacts to be saved to a sub-folder instead of the main Contacts folder. 1.1.5 Added a new option to allow sync'ed GAL contacts to replace existing Contacts (i.e. if GALSync finds a contact with a matching name and email address it will change the existing Contact into a sync'ed GAL Contact). Fixed a bug where a new GAL Contact was not created if a Contact with the same name already exists. 1.1.6 Enhancement: This version includes a change to the default behaviour when a blank GAL field is checked against a populated Contacts field. This is often the case when users populate GAL Contact fields themselves, for example the Notes field or phone number or address fields. In previous versions these fields would be over- written with a blank field from the GAL but in this version these fields (by default) are not over-written if already populated. There is however a new product option to 'allow blank GAL fields to overwrite populated fields' which will reverse this default behaviour to the original. 1.1.7 Fixed a bug where the 'Save Contacts with Category equal to...' option did not work on a 2nd sync. 1.1.8 Enhancement: Added a new optional feature 'Only update existing contacts, don't add new ones'. Selecting this item will only update information from the GAL (e.g. business phone number) to existing contacts already added or previously sync'ed using GALSync. New GAL contacts will NOT be added. Manager program stability improved. The GALSync Server Manager program should now refresh the user list in a much more stable manner. Duplicate contacts issue resolved. There is a case where multiple duplicate GAL Contacts could be created if an existing Contact with a matching full name but a different email existed. 1.1.9 Beta enhancement: Session logoff temporarily removed from syncs and deletes to test for fix for possible hanging. 1.1.10 Testing version: Logging improvements and minor variable changes to the event that handles the changing of server text for a user in the GALSync Server Manager mailbox listview. Added optional Registry Key value 'boLogoffEachSync' to force a log-off of the admin mailbox at the end of each sync cycle. 1.1.11 Enhancement/bug fix: If GALSync Server attempts to report information to a full Application Event Log then it will no longer halt the service. 1.1.12 Improved error reporting when catching an exception during GetMessageFromID in 'NEW' part of Sync loop. Improved error handling (try/catch) when creating a NEW GAL Contact. An exception could occur in this part of the loop if the GetMessageFromID above has failed. If you create Filters you must also now set 'Sync Information' to 'Full Details'. If you attempt to create filters when 'Sync Information' is set to 'No Details' a warning dialogue box will now appear. 1.1.13 Added debugging to Manager program OnLoad event. Logon with local profile for 'Sync All Users' changed to be brought in line with single mailbox sync. 1.1.14 Bug fix: Fixed regression bug which would cause an error when a server name was entered against a mailbox name in the Manager program. 1.1.15 Minor: Exchange mail profile prompt will no longer appear when Service Manager program is started for the first time or when the mailbox and server text fields are empty. Minor: New tickbox option on Configuration tab in Service Manager program 'Logoff Each Sync'. Bug fix: Fixed a bug where a 'missing object reference' error could occur in the Server Manager program when either the User List was refreshed or the Address List drop-down menu was used and an Outlook mail profile was not present. Minor: Increased default Address List size warning to 5000. 1.1.16 Minor: Extra debugging added. Minor: Changed default GAL size warning to 5000. Minor: Improved licence handling for 'Tick All' button and adding new users. Also added graceful handling where more users may have been previously created than are licenced for. 1.2.0 Beta Major: This version of GALSync Server features a completely over-hauled synchronisation mechanism. Sync speed has been significantly improved (~80% reduction for large GALs). This has been accomplished by an increase in the amount of data stored in RAM and a reduction in the number of MAPI calls used. Logging has also been improved with 'Detailed' logging now providing more consistent reporting of progress whilst scanning the GAL and Contacts in each user's mailbox. 1.2.1 Beta Bug fix / enhancement: Improved name handling. The Sync mechanism now uses just 'email address' instead of 'display name' or 'first name, last name' combinations to search for matching entries in the GAL. This overcomes problems with ambiguous names stored by Exchange, for example display names containing multiple splaces between first/last names or where multiple hits could cause a WSAECONNRESET MAPI error. 1.2.2 Public Beta Varous fixes to improved sync reliability. 1.2.3 Major: New 'Heartbeat' date/time registry value tracks server activity (to monitor lock-ups). If the server fails to heartbeat for 60 seconds then the service will be automatically re-started (this 60 second value can be over-ridden by setting a DWORD 'DefaultHeartbeatWaitTime' registry value to the number of seconds required, i.e. '60', '120' etc). Also, if GALSync detects a number of errors during synchronisation of a mailbox it will again restart the service (the number of errors at which this will occur is equal to 10 by default, but this can be over-ridden by setting a DWORD 'ErrorsAllowedPerMailbox' value to the number of errors allowed, i.e. '20', '30' etc). Note: If the GALSync service is stopped and restarted (either manually or automatically) GALSync will now resume Sync'ing from the last user mailbox that it was last sync'ing before the restart. Minor: The GALSync Server Manager now features a new menu option 'Cancel any pending Syncs'. This new feature will cancel any pending syncs including 'Sync All', 'Sync Mailbox', 'Delete All' and 'Delete Mailbox'. 1.2.4 Enhancement: A flashing 'heart' icon is now displayed against the GALSync picture on the main Service Manager screen. This icon will only flash when server activity is detected (i.e. the 'Heartbeat' registry value is changed). Frequency is as follows: - Every 5 seconds during normal polling outside of a Sync. - Every 1-2 seconds during an active Sync. Minor: Consistent logging added to New/Update part of the Sync loop. The change in version 1.2.0 for more consistent logging (for 'Detailed' logging) only affected the Remove part of the loop - this has now been added to the New/Update part of the loop as well. Minor: Some of the error handling (heartbeat and service restart) included in version 1.2.3 was missed from the "Sync User's Mailbox" feature. This has now been corrected. Minor: The 'Cancel any pending Syncs' menu option is now correctly disabled whilst the Service is running and is only enabled when the Service has been stopped. 1.2.5 Enhancement: The 'Filtering' screen now has a new preview feature which allows you to preview rules as you create them. Bug Fixes: A number of minor bug fixes have been applied to the Sync to improve reliability. 1.2.6 Bug: Fixed bug where 'QueryRows' error could occur in certain situations. Bug: The 'Replace matching name Contacts' option has been improved to catch more exceptions than were previously handled. Enhancement: Added Global Collection after sync'ing each mailbox in main Sync. 1.2.7 Bug: Fixed a bug where an exception during the very first part of a Sync could cause a repeated Tick/Tock with no auto restart. The service will now be auto-restarted. 1.2.8 Added local profile support for displaying the Address List on the Manager Configuration tab. 1.2.9 Minor change: Registry key added (Saving) to help with a possible issue with remote desktop usage removing all selected users. Bug fix: Change to heartbeat to avoid re-start looping from beginning again (clearing of CurrentlySyncing registry key moved to later in Sync loop). Bug fix: Change to heartbeat to avoid re-start failing if heartbeat lock-up happens at the start of the Sync loop (changed the saving of LastSync and NextSync to end of the loop instead of at the beginning). 1.3.0 Enhancement: New 'Export Configuration' menu option allows the server configuration to be saved as a REG file. This REG file is a standard Windows registry file which can be run to restore the server configuration. The logging level will now be reset from 'Debug' down to 'Verbose' when the manager program is restarted. Enhancement: New 'Support and Maintenance' controls introduced. Registration keys for expired 'Support and Maintenance' contracts will no longer work for new versions of the software. For example, if a key expires in June 2009 then software versions published after this date (from July 2009 onwards) will no longer work with the expired registration key. Customers can continue using previously purchased/downloaded copies of GALSync Server. 1.3.1 Enhancement: Because a small number of our customers have been experiencing problems with saving the user list we have decided to change the automatic saving of users to a manual 'Save' button. Bug: Fixed a bug where corruption of the users list (see above) could cause problems when subsequently selecting 'Untick All' and Saving. 1.3.2 Minor bug: Fixed a bug where manually typing a value into the 'Address List' field did not save the value to the registry. 1.3.3 Enhancement: Made improvements to the algorithms that check for existing matching contacts (email address is now used instead of various first name / last name combinations). Also, 'Replace matching Contacts' now only matches for existing email addresses, not names (this was causing too many false postives). Enhancement: Improved error handling for stopping/starting service from Manager program (no more exceptions if the service can't be stopped/started). Improved manager program handling of Service information (no more incorrect information about whether the service is, or is not, running). 1.3.4 Enhancement: If the GALSync service is stopped and restarted (either manually or automatically) during the deletion of sync'ed GAL entries, GALSync will now resume deleting from the last user mailbox that it was last deleting from before the restart. Enhancement: Error handling of the deletion of GALSync entries has also been improved. Multiple errors will now result in a service restart as per the normal Sync. Bug: Logging messages during the deletion of sync'ed GAL entries now consistently read [Delete] instead of [Sync].