Le Café Central de

                    ... Deva blogs!!

  • Le Café Central de DeVa

    Exchange Store - Experiences (FAQ) - Part 2


    Here are some questions that are frequently asked by my customers whenever they try to access/enumerate Exchange Store: 

    1) Can you name some of the known URL's of users mailbox folders?

    Calendar          file://./backofficestorage/example.com/MBX/UserAlias/Calendar
    Sent Items       

    2) What do you meant by "Public folder replication"?

    Public folder replication is the process by which public folder content and the public folder hierarchy is replicated across multiple servers for efficiency and fault tolerance purposes.

    • When multiple public folder databases that are located on separate servers support a single public folder tree, Microsoft Exchange uses public folder replication to keep the databases synchronized. 
    • Public folder content exists only in Exchange stores that are configured to have a replica of a specific folder.
    • Content and hierarchy information are replicated separately.
    • Each public folder database retains a copy of the hierarchy, which includes lists of the other public folder databases that retain content replicas of each folder.
    • Content replicas exist only on the public folder databases that you specify

    3) What do you mean by "Exchange Store Schema"?

    Exchange store schema consists of properties that define all resources in the store, including e-mail messages, appointments, folders, and contacts. It includes numerous predefined properties you can use in your applications.

    4) Can we extend the "Exchange Store Schema"?

    Yes, you can also extend the Exchange store schema by defining your own custom properties.

    5) What is so called "Namespace" in "Exchange Store Schema"?

    A namespace provides a unique name for every property in the Exchange store schema.

    • For example, the namespaces urn:schemas:httpmail: and urn:schemas:mailheader: both contain properties named From.
    • By prefacing the name of a property with the correct namespace, you can avoid collisions between properties with similar names.

    6) What is "DAV:Namespace"?

    This namespaces defines properties for the WebDAV. It includes properties for general data access (such as DAV:href). Also it can be used for determining hierarchical information such as DAV:isfolder.

  • Le Café Central de DeVa

    Exchange Server - Technologies - FAQ


    Exchange Server - Frequently Asked Questions 

    When we do Exchange programming with client and server versions of the Exchange Server Providers, MAPI32, EMSMDB, EMSABP and MSPST32 almost or always causes confusion. In this article, we'll discuss about the common terminologies: 

  • What is MAPI? 
  • MAPI will generally mean MAPI32.dll, or the APIs contained. It's an API, implemented largely in MAPI32.dll (Messaging Application Programming Interface, 32 bit build). By using this, developers implement a series of Providers. Providers come in three major types, Transport Providers, Message Store Providers, and Address Book Providers. Providers are DLLs that implement a specific pseudo COM API, such as IMessageStore, and the underlying required interfaces, such as IMAPIProp.

  • Then, what is a MAPI Application?
    It means any application that uses the MAPI calls. MAPI applications work against sets of data sources grouped into Profiles. Profiles are created, saved, and deleted by the Profile Provider. The Profile Provider is implemented in MAPI32.dll in two forms:
    • The temporary profile provider, which stores profile data in temp files.
    • The normal profile provider, which stores profile data in the registry.

    An empty profile gives a MAPI application no data access, so MAPI applications add Providers (also called Services) to the profile. A common thing for MAPI applications to do is add services for EMSMDB and EMSABP to a profile, granting the ability to access data from Exchange Server. Providers do all of the actual work in MAPI. When you submit a message, although the call might pass through MAPI32, it is EMSMDB (or your provider) that does the actual work for sending. When saving a message, it is not MAPI32 that saved the message; it's the message store provider (usually EMSMDB for Exchange Server). When you resolve a recipient, it is not MAPI32 that searches for the user in the address book. It is the Address Book Provider, implementing the IAddrBook interface (probably EMSABP). 

  • What do you meant by CDO or Colloboration Data Objects?  Does CDONTS, CDOSRV, CDOSYS, CDOEX, EXCDO, or CDOEXM all are same jargons?
  • Collaboration Data Objects (CDO) refers to CDO.DLL, not CDONTS, CDOSRV, CDOSYS, CDOEX, EXCDO, or CDOEXM. CDO and Outlook are both MAPI applications, meaning that they use MAPI APIs to access their data and, therefore, the underlying providers. CDO and Outlook share a common set of Properties that, when taken together, define different classes of messages and different functionality. This works similar to the schema in a database; however, MAPI32 does not implement the storage. The Message Store Provider does. In the case of Exchange Server, this provider is EMSMDB, and Exchange Server is mostly agnostic about the semantics of the data that applications choose to store. Exchange Server 5.5 has almost no knowledge of individual named property meanings. Exchange 2000 Server and Exchange Server 2003 are considerably more aware of the significance of particular named properties on different message classes, in particular, calendar items. This logic is implemented in EXOLEDB and EXCDO. In general, it is up to users of a particular set of properties to agree on what those properties mean and how they are manipulated.

    CDO implements an API to manipulate sets of properties together to accomplish tasks, such as scheduling a meeting. Outlook also implements APIs to manipulate sets of properties, and does presentation of that data to the end user. If CDO and Outlook don't agree on what particular properties mean, or on the mechanisms used to control processing logic (for instance, when an appointment has been updated), potential for problems interoperating between Outlook and CDO exist. Although Outlook continues to be updated and expanded with every version, CDO.dll is more or less static at the same level of functionality it has possessed for years. Newer libraries for manipulating calendar data, such as CDOEX, are considerably more up to date.

  • What do you meant by EMSMDB or EMSMDB32 or Exchange Transport Provider? 
  • EMSMDB refers to the Exchange transport provider, EMSMDB32. One example of a provider is EMSMDB2, the "Electronic Messaging System Microsoft Data Base, 32 bit build" provider. EMSMDB implements both a transport and a message store and, as such, is a dual provider.
    The transport is the ability to submit messages to Exchange Server; the message store is the ability to read (and possible write) messages to an Exchange store process.

  • What do you meant by EMSABP or EMSABP32 or Exchange Address Book provider? 
  • EMSABP refers to the Exchange address book provider, EMSABP32. The other common provider involved with Exchange Server is EMSABP, which is an Address Book Provider (Electronic Messaging System Address Book Provider, 32 bit build). EMSABP implements IAddrBook and allows access to the Exchange global address list through Name Service Provider Interface (NSPI).

  • Le Café Central de DeVa

    Migrating from Exchange 2000 and Exchange 2003 APIs

    Migrating from Exchange 2000 and Exchange 2003 APIs
    I found the following article, which will help to users who want to migrate from Exchange Server 2000 and 2003 APIs to Exchange Server 2007. This article talks about Exchange 2000 Server and 2003 based several APIs that are not included in Microsoft Exchange Server 2007.
    Also this article talks about the recommended technologies that are recommended to migrate to.
  • Le Café Central de DeVa

    Exchange Store - Experiences (FAQ) - Part 1


    Here are some questions that are frequently asked by my customers whenever they try to access/enumerate Exchange Store: 

    1) In Exchange Store, how to get all properties for a particular item? 

    To get all the properties for a particular item, bind to it directly by using various technologies like Activex Data Objects, Collaboration Data Objects, OLE DB, or through WebDAV.

    2) So, can i get all properties for all items using SELECT * ?

    This is one of the frequently asked questions from our customers whenever they try to access any of the Exchange Store. But we can't get all properties for all items. Because each item in the folder could have different properties in it.

    3) So, what will we get when we make use of SELECT * ?

    When running the SELECT * statement on a folder, we can get only the list of properties. These properties are defined by the schema for the folder.

    4) What're the properties that cannot be searched? 

    The following properties cannot be searched because their values are only calculated when used and are not stored in the Exchange store.

    DAV:getetag, DAV:href, DAV:lockdiscovery, DAV:parentname, DAV:resourcetype, DAV:searchrequest

    All properties that contain URL values, such as DAV:href, are calculated and UTF-8 encoded. Even this list is not comprehensive and is subject to change.

    5) What're the SQL grammar, functions and functionality are not supported?

    AVG, CONVERT (use CAST), COUNT, CREATE VIEW, DATASOURCE, DELETE, DROP INDEX, INSERT, JOINS, MAX, MIN, Revision ID header (ignored), Scope aliases, SELECT DISTINCT, SET, Scope revision numbers, SHAPE, SUM, UNKNOWN, UPDATE, Wildcard expressions (use CONTAINS, FREETEXT, and LIKE)

    This list is not comprehensive and is subject to change.

    6) When i try to search or index certain properties, it throws errors or getting no results?

    In Exchange store calculates some of the properties but does not store those values/entires. But some of these properties are cached, however, and can be searched or indexed.

    7) What is the property needs to set to access hidden items from MAPI Clients?

    To hide items that are accessible to MAPI clients (like Outlook), you must set the http://schemas.microsoft.com/mapi/proptag/x67aa000b property to true when the item is created.

    Note: If the flag is not set when the item is first created, you cannot hide it later from MAPI clients.

  • Page 2 of 2 (29 items) 12