ExOLEDB
ExOLEDB ist seit Exchange 2007 "abgekündigt", d.h. es
funktioniert noch mit Exchange 2007 und die folgenden 10 Jahre aber
darüber hinaus gibt es keine Zusicherung mehr.
http://blogs.technet.com/b/exchange/archive/2005/09/15/410941.aspx
Exchange 2000 und höher erlauben auf dem Server selbst auch den Zugriff über eine datenbankähnliche Schnittstelle. Die Schnittstelle ist also per Default installiert und auch erreichbar. Allerdings eben nur direkt auf dem Server. Ist nicht möglich, diese Schnittstelle über ein Netzwerk direkt anzusprechen. Auch wenn es "datenbankähnlich" ist, so fehlen ExOLEDB die entsprechenden Routinen, um die Exchange Datenbank wie ein SQL-Server anzusprechen oder per SQLDTS auf die Daten zuzugreifen.
Administratoren haben mit dieser Schnittstelle in den seltensten Fällen direkt Kontakt. Nur Exchange 2000 Administratoren können Sich vielleicht noch an das Laufwerk M: erinnern, welches den Exchange Informationsspeicher als Festplatte bereitgestellt hat. Sie finden ExOLEDB z.B.: auch noch bei den virtuellen Verzeichnissen im IIS und bei allen anderen Meldungen die "\\.\backofficestorage" enthalten.
Viel mehr sehen Sie von EXOLE über grafische Schnittstellen nicht. Es ist ein Zugang für Entwickler.
Beispiel
Folgendes kleines Beispiel soll zeigen, wie man auf dem Server per EXOLE auf Postfächer oder öffentliche Ordner per VSCript zugreifen kann:
const adOpenIfExists = 33554432 ' 0x2000000 const adReadWrite= 3 Set oConnection = CreateObject("ADODB.Connection") Set oTempRecord = CreateObject("ADODB.Record") oTempRecord.Open = "http://localhost/public/" Set oConnection = oTempRecord.ActiveConnection oConnection.Provider = "EXOLEDB.DataSource" set oRecords = CreateObject("ADODB.Record") oRecords.Open "http://localhost/public/testordner", oConnection,adReadWrite, adOpenIfExists wscript.echp "Neue Elemente in diesem Monat: "& oRecords.Count
EXOLEDB unterstützt keine Authentifizierung, d.h. der Zugriff erfolgt immer mit dem Benutzer, welcher das Skript startet.
Monitoring
ExOLEDB lässt sich, wie jede ordentliche Windows Anwendung, über das Eventlog und Performance Counter überwachen.
Im Eventlog sieht man eigentlich immer nur die "Gestartet" und "beendet" Events
Eine Suche nach EXOLEDB als Quelle liefert in der Regel wenige Events, so dass Fehler schnell gefunden werden können.
Event Type: Error Event Source: EXOLEDB Event Category: Events Event ID: 116 Computer: SRV01 Description: Microsoft Exchange OLEDB was unable to initialize event system correctly. Support für store event may have been disabled. HRESULT = 0x8000ffff.
So eine Meldung ist natürlich eine mittlere Katastrophe für einen Exchange Server bzw. die E200x Storesinks. Die laufen dann nämlich nicht, was aber nicht automatisch auch die "Nichtfunktion" von EXOLEDB bedeutet.
Weitere Links
- Understanding Exoledb’s default folders
http://blogs.technet.com/b/exchange/archive/2005/05/11/404826.aspx - Grundlagen zu EXOLEDB-Standardordnern
http://www.microsoft.com/germany/technet/prodtechnol/exchange/2003/insider/EXOLEDB.mspx - Exchange 2003 SDK Exchange OLE DB Provider (ExOLEDB)
http://msdn2.microsoft.com/en-us/library/aa142634.aspx - Exchange OLE Database Provider (ExOLEDB)
http://msdn.microsoft.com/en-us/library/aa579226(EXCHG.140).aspx - Accessing Data using the ##SCHEMAURI## Macro
http://msdn.microsoft.com/en-us/library/ms879320(EXCHG.65).aspx - 260771 ExOLEDB Provider Does Not Support Authentication
- 287534 PRB: ExOLEDB Provider Cannot Access or Create Items Remotely
- 287753 PRB: ExOleDB Provider Doesn't Work with SQL Server 2000 DTS Tool
- 309821 Deep Traversal ExOLEDB Search Requires Administrator Permissions
- 310199 How to create a contact with ADO and the ExOLEDB provider by using Visual C#
- 314362 How to create a contact by using ADO and ExOLEDB in Visual Basic .NET
- 314374 How to use the CDOEX library and the ExOLEDB provider to create an Outlook contact in Visual Basic .NET
- 314378 How to enumerate all fields of an object by using the CDOEX library and the ExOLEDB provider in Visual Basic .NET
- 314380 How to modify a message by using ADO in Visual Basic .NET
- 320071 How to programmatically get the size of mailboxes in Exchange
Beispiel für Extended MAPI, CDO 1.21, ActiveX Data Objects (ADO) und WebDAV - 821735 An "Access Violation" Error Occurs in EXOLEDB!ScEnumerateDLMembers
- SDK - Management Capabilities
http://msdn2.microsoft.com/en-us/library/aa126020.aspx - Updating appointments that are 1 hour out because of the
Commonwealth Games Timezone Changes
http://gsexdev.blogspot.com/2006/03/updating-appointments-that-are-1-hour.html - Creating Summary Emails für Inbox, Sub or Public Folders
http://gsexdev.blogspot.com/2006/01/creating-summary-emails-for-inbox-sub.html - Deleting old email with a Exoledb Script
http://gsexdev.blogspot.com/2004/11/deleting-old-email-with-exoledb-script.html - SQL für Exchange 2000 the Bluffers Guide
http://www.outlookexchange.com/articles/glenscales/sqlexch.asp