Threading Models

Threading Models

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release. This topic provides information about how the different technologies compare with regard to Threading Models.

Technology What threading models are supported?
Active Directory Services Interfaces (ADSI) This information is not yet available here.
Collaboration Data Objects for Windows 2000 (CDOSYS) No specific threading prohibitions. However, applications that use free-threading should never share CDO object instances among asynchronously operating threads.
CDOSYS SMTP/NNTP Event Sinks For better performance, the COM classes created as event sinks should be set to support apartment-style multithreading.
Collaboration Data Objects for Exchange 2000 Server (CDOEX) No specific threading prohibitions. However, applications that use free-threading should never share CDOEX object instances among asynchronously operating threads.
Collaboration Data Objects for Exchange Management (CDOEXM) No specific threading prohibitions. However, applications that use free-threading should never share CDOEX object instances among asynchronously operating threads.
Collaboration Data Objects for Exchange Workflow (CDOWF) No specific threading prohibitions. However, applications that use free-threading should never share CDOEX object instances among asynchronously operating threads. Multithreading should not be used within Workflow events.
Exchange OLE DB Provider (ExOLEDB) Applications that use ExOLEDB do not directly access it, and so threading restrictions are determined by the application and ADO (or WebDAV).
Exchange Store Event Sinks Event processes should not spawn any additional threads.
Exchange Web Forms Exchange Web forms are scripts, and do not have threading capabilities.
HTTP/Web Distributed Authoring and Versioning (WebDAV) Application threading is entirely dependent on the client, and does not affect WebDAV. WebDAV is an extension of HTTP, so no connection state information is retained between transactions. However, item status is retained in the Exchange server, for example in response to a WebDAV resource lock command.
WebDAV Notifications Application threading is entirely dependent on the client, and does not affect WebDAV. WebDAV is an extension of HTTP, so no connection state information is retained between transactions. However, item status is retained in the Exchange server, for example in response to a WebDAV resource lock command.
Incremental Change Synchronization (ICS) Because the ICS system provides information about incremental changes that have been made to the Exchange store, only one thread at a time should be allowed to retrieve or send data to Exchange by using the ICS interfaces.
Lightweight Directory Access Protocol (LDAP) Not applicable.
Messaging Application Programming Interface (MAPI) No specific threading prohibitions. However, applications that use free-threading should avoid sharing MAPI object instances among threads due to the high costs of marshalling the object. MAPI and MAPI service providers use free-threading.
Outlook Object Model (OOM) Information about this is not available at this time.
Outlook Web Access Not applicable.
Exchange Rules Rules are defined by applications that can be multi-threaded. The resulting rules run within Exchange (server-side rules) or within Outlook (client-side rules).
SMTP Event Sinks Multi-threading can be used in event sinks.
Windows Management Instrumentation (WMI) providers for Exchange No specific threading prohibitions. However, applications that use free-threading should never share WMI object instances among asynchronously operating threads. WMI is most frequently used in scripted applications, where threading is not an issue.
Exchange Backup and Restore API To speed the backup and restore operation, it is possible to open multiple storage groups by using multiple threads. Only one database in a storage group can be backed up at a time. Multiple threads are therefore only useful when you are backing up multiple storage groups.
Exchange writer for the Windows Volume Shadow Copy Service Single threading only. When an application uses VSS and the Exchange writer to back up or restore data, the code that accesses VSS and the Writer should be single-threaded. Applications should not use multiple threads to access the VSS COM objects.

Send us your feedback about the Microsoft Exchange Server 2003 SDK.

This topic last updated: June 2006

Build: June 2007 (2007.618.1)

© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.