Database Connection Resource

15.12.2006 von Martin Kuppinger
Mit der Database Connection Resource kann eine gemeinsam nutzbare Ressource erstellt werden, über die auf Datenbanken zugegriffen wird. Da es sich um eine standardisierte Ressource handelt, wird der Zugriff auf Datenbanken aus Anwendungen heraus stark vereinfacht.

Mit dem Konzept der Shared Resources hat Lotus die Möglichkeit geschaffen, immer wieder benötigte Elemente für Anwendungen einmal zu erstellen und mehrfach zu verwenden. Es gibt einerseits den Bereich Shared Code mit wiederverwendbaren Skripts und anderen Code-Fragmenten und zum anderen die Shared Resources, mit denen man Ressourcen wie Bilder, Dateien oder Style Sheets verwalten kann – und eben die Verbindungen zu Datenbanken über Data Connections. Dort werden die Database Connection Resources erstellt.

Voraussetzungen

Für die Nutzung ist eine wichtige Voraussetzung zu erfüllen: Die DCRs (Database Connection Resources) können nur auf einem Server mit installiertem DECS verwendet werden. Auch die Clientanwendungen für den Zugriff auf die Datenbank müssen dort installiert sein. Das bedeutet, dass man die Technologie nur auf dem Weg über den Server nutzen kann. Wenn man rein lokal entwickelt, kann man wesentliche Funktionen nicht nutzen.

Das Problem dabei ist, dass man beim Zugriff auf die Informationen einerseits DECS benötigt. Bis zu diesem Punkt kommt man bei lokaler Nutzung aber nicht einmal, da schon vorher eine Fehlermeldung angezeigt wird, wenn man versucht, beispielsweise Daten zu importieren. Der Name Local für das lokale System kann nicht aufgelöst werden. Und auch andere Funktionen wie der Zugriff auf die Struktur der Datenbank stehen nicht zur Verfügung.

Kurz gesagt, braucht man für die DCRs also eine Entwicklungsumgebung, in der man die Datenbank auf einem Server mit installierten DECs betreibt.

Die Datenquelle

Der erste Schritt bei der Konfiguration von DCR ist die Einrichtung der Verbindung zu dem Server. Direkt unterstützt wird der Zugriff auf die IBM DB2 sowie auf Oracle- und Sybase-Server. Falls weitere Connectoren installiert sind, werden natürlich auch noch andere Systeme unterstützt. Ansonsten muss man den Weg über ODBC gehen. Da dies ein relativ häufiger Ansatz ist, wird darauf nachfolgend noch näher eingegangen.

Die Konfiguration der Datenquelle erfolgt bei einem Windows-Server über Verwaltung/Datenquellen (ODBC). Dort muss eine Systemdatenquelle im Register System-DSN erstellt werden (Bild 1). Der erste Schritt ist die Auswahl des ODBC-Treibers. Davon hängen auch die weiteren Einstellungen ab, die nachfolgend exemplarisch für eine Access-Datenbank erläutert werden. Für eine solche Verbindung müssen der Name der Datenquelle und eine Beschreibung angegeben werden, bevor die Datenbank ausgewählt wird. Eine Systemdatenbank ist nicht erforderlich, wenn einfachere Access-Datenbanken zum Einsatz kommen.

Bild 1: Die Einstellungen für einen ODBC-Treiber.

Über die Optionen im unteren Bereich können weitere Festlegungen für den Treiber von der Puffergröße bis hin zur Aktivierung eines exklusiven oder schreibgeschützten Zugriffs gesetzt werden. Zu den Optionen über die Schaltfläche Erweitert gehören auch ein Anmeldename und Kennwort auf entsprechend geschützte Datenbanken sowie speziellere Optionen bis hin zur Anzahl der Threads. Die meisten davon lassen sich aber auch an anderer Stelle setzen.

Die Erstellung einer Datenverbindung

Nachdem die ODBC-System-DSN erstellt wurde, kann die DCR konfiguriert werden. Im Domino- Designer bei shared Resources/Data Connections wird dazu New Data Connection Resource ausgewählt. Als Ergebnis wird ein Dialogfeld angezeigt, in dem die entsprechenden Einstellungen vorgenommen werden können (Bild 2).

Bild 2: Die Einstellungen für eine Data Connection Resource.

Neben den allgemeinen Informationen wie Name, Alias und Beschreibung muss die Klasse ausgewählt werden. Bei einer Standardinstallation der Connectoren steht hier nur RDBMS für relationale Datenbanksysteme zur Auswahl. Anschließend muss die Art der Datenquelle bei Type festgelegt werden. Hier wird im Beispiel ODBC ausgewählt.

Die weiteren Einstellungen im Abschnitt Connectivity hängen von dem gewählten Connector ab. Bei ODBC-Verbindungen lassen sich optional der Benutzername und das Kennwort angeben. In jedem Fall erforderlich ist aber der Name der Datenquelle, der dem der System-DSN entsprechen muss.

Abschließend muss noch konfiguriert werden, auf welches Objekt innerhalb der Datenbank der Zugriff erfolgen soll. Hier kann zwischen Tabellen, Ansichten und Prozeduren unterschieden werden. Der einfachste Fall ist die Verwendung einer Tabelle, deren Name angegeben wird. Der Owner muss nur angegeben werden, wenn eine entsprechende Steuerung der Zugriffsberechtigungen erfolgt.

Bild 3: Über eine DCR können externe Datenquellen durchsucht werden.

Ob alles funktioniert hat, kann man anschließend direkt durch Anklicken von Browse metadata testen. In diesem Fall muss ein Dialogfeld angezeigt werden, das die Tabellen und anderen Objekte und beispielsweise die in Tabellen enthaltenen Felder anzeigt (Bild 3). Wenn die Schaltfläche nicht angeklickt werden kann, ist DECS nicht korrekt installiert.

Die Nutzung der DCR

DCRs sind ein wichtiges Hilfsmittel bei der Erstellung von Masken. Felder in Masken können auf die externe Datenquelle verweisen. Dazu wird bei der Definition des Felds die Option External Data Source gesetzt. Im unteren Bereich des Dialogfelds werden dadurch weitere Optionen angezeigt (Bild 4). Mit Browse durchsucht man die definierte Datenquelle und greift auf einzelne Felder zu. Diese Felder werden dadurch auf Felder der Datenquelle abgebildet (Bild 5).

Bild 4: Die Eigenschaften eines Felds mit Zugriff auf eine externe Datenquelle.
Bild 5: Der Zugriff auf eine externe Datenquelle.

Damit können Teile oder die gesamte Struktur einer Tabelle in einer externen Datenbank auf eine Notes-Maske umgesetzt werden. Der Aufwand ist relativ gering.

Um die Datenbank gleich mit Werten zu füllen, wählt man im nächsten Schritt bei Shared Resources/Data Connections die DCR aus und dann die Schaltfläche Import external records. Danach gibt man die Maske an, die für den Import verwendet werden soll. Es werden nur Masken angezeigt, die auch externe Felder enthalten. Anschließend lässt sich der Import durchführen, was noch eine Bestätigung erfordert, dass der Import mit den definierten Schlüsselfelderndurchgeführt werden soll.

Die Aktivierung der DCRs

Ein weiterer wichtiger Schritt ist die Aktivierung der DCRs in einer Datenbank. Bei den Eigenschaften einer Datenbank findet sich die Option Allow connections to external databases using DCRs, die zu aktivieren ist. Die Änderung wird allerdings erst wirksam, wenn man die Datenbank das nächste Mal öffnet.

Im Zusammenhang mit dem Import von Informationen ist dabei zu beachten, dass dieser nur funktioniert, wenn die Option deaktiviert ist. Nun lassen sich beispielsweise auch neue Dokumente in Notes erstellen. Sie werden bei der Speicherung an die externe Datenbank übergeben. Damit das sauber funktioniert, muss man – wie bei allen Schnittstellen zu Datenbanken – vorher einen genauen Überblick über die Primärund Fremdschlüssel in der Datenbank haben.

Weitere Optionen für DCRs

Neben den weiter oben genannten Standardoptionenfür DCRs steht ein zweites Register Options (Bild 6) zur Eingabe zusätzlicher Konfigurationsparameter zur Verfügung.

Bild 6: Die erweiterten Optionen für eine Data Connection Resource.

Dazu zählen die Anzahl der gleichzeitigen Verbindungen, die (standardmäßige) Sperre für die Veränderung von Schlüsselfeldern und die mögliche Erkennung von Konflikten. Mit Enable conflict detection wird überprüft, dass vor Änderungen zunächst kontrolliert wird, dass sich die Daten in der externen Datenbank nicht verändert haben. Ist das der Fall, können die Änderungen von Notes nicht übernommen werden. Außerdem kann man festlegen, wie bei unterschiedlichen Datentypen verfahren werden soll.

Insgesamt sind die DCRs ein sehr nützliches Instrument, um auf Datenbanken zuzugreifen, ohne sich mit den Details beispielsweise der Ansteuerung über LotusScript beschäftigen zu müssen. Sie sind einfach nutzbar und decken viele der typischen Aufgabenstellungen gut ab.