Le Café Central de Deva
... Deva blogs!!
I changed the way of blogging, developing, designing and assisting my customers. Re-designed the site and started using the latest Windows Live Writer!! Additionally added Microsoft Translator gadget available @ top of page, so that you can change the page in your preferred language!!
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 Contacts file://./backofficestorage/example.com/MBX/UserAlias/Contacts Drafts file://./backofficestorage/example.com/MBX/UserAlias/Drafts Inbox file://./backofficestorage/example.com/MBX/UserAlias/Inbox Journal file://./backofficestorage/example.com/MBX/UserAlias/Journal Notes file://./backofficestorage/example.com/MBX/UserAlias/Notes Outbox file://./backofficestorage/example.com/MBX/UserAlias/Outbox Sent Items file://./backofficestorage/example.com/MBX/UserAlias/Sent%20Items Tasks file://./backofficestorage/example.com/MBX/USerAlias/Tasks
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.
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.
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.
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:
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.
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).
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.
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.
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).
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:searchrequesthttp://schemas.microsoft.com/exchange/content-hrefhttp://schemas.microsoft.com/exchange/ntsecuritydescriptorhttp://schemas.microsoft.com/exchange/oof-statehttp://schemas.microsoft.com/exchange/publicfolderemailaddresshttp://schemas.microsoft.com/repl/repl-uidhttp://schemas.microsoft.com/repl/resourcetagurn:schemas:contacts:proxyaddresses urn:schemas:httpmail:htmldescriptionurn:schemas:httpmail:subjecturn:schemas:mailheader:subjecturn:schemas-microsoft-com:exch-data:baseschemaurn:schemas-microsoft-com:exch-data:schema-collection-refAll 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.