|
Was ist zu tun, damit die BDE in Peer-To-Peer-Netzen problemlos läuft?
| Frage |
|
Die BDE läuft prinzipiell unter Peer-To-Peer-Netzen wie den nachfolgenden:
- Windows 95
- Windows NT
- Lantastic
- Netware Lite
| Lösung |
|
Die BDE erkennt automatisch, wenn sich eine Tabelle auf einem Netzlaufwerk befindet. Allerdings ist es der BDE nicht möglich zu erkennen, ob es sich dabei um einen dedizierten Server oder einen Peer-To-Peer-Anschluß handelt.
| Netzwerkerkennung |
|
Obwohl es sich in beiden Fällen um ein Server-Laufwerk handelt, stellt die Server-Art prinzipiell einen Unterschied dar. Ein dedizierter Server informiert Client-Anwendungen, wenn eine Datei verändert oder gesperrt wurde. In Peer-To-Peer-Netzen gibt es diese automatische Funktionalität nicht.
Um diese Möglichkeiten trotzdem auch in Peer-To-Peer-Netzen nutzen zu können, muß über die BDE-Konfiguration (Seite „System“) „LOCAL SHARE“ auf TRUE gesetzt werden. Dies ist für alle BDE-Clients erforderlich, die auf Tabellen zugreifen, die auf Peer-To-Peer-Server-Laufwerken liegen. Für Novel File Server Netzwerke ist es hingegen nicht erforderlich.
| Server-Services |
|
Handelt es sich um Paradox-Tabellen, so muß zusätzlich ein Verzeichnis für die Netzwerk-Kontrolle vorhanden sein. Dieses Verzeichnis muß auf dem Netzwerk für alle Client-Anwendungen verfügbar sein. Üblicherweise trennt man die Anwendung von den Daten und dem Netzwerk-Kontroll-Verzeichnis, so daß Verzeichnisse anfallen:
Shared Directory
|
|--- [ Verzeichnis mit Tabellen ]
|--- [ Verzeichnis mit Anwendung(en) ]
|--- [ Verzeichnis für Netzwerk-Kontrolle ]
Bedingt durch die unterschiedlichen Betriebssystemarchitekturen sind für die BDE zwei Umgebungen zu berücksichtigen:
- alleiniger Einsatz von 32-Bit BDE Anwendungen
- gleichzeitiger Einsatz sowohl von 32-Bit BDE- als auch 16-Bit BDE-Anwendungen
Alleiniger Einsatz von 32-Bit BDE-Anwendungen
| Sonderbehandlung für Paradox |
|
Die 32-Bit BDE unterstützt die UNC Benennungskonventionen ebenso wie lange Dateinamen. Es wird empfohlen, die UNC-Konventionen auch für alle BDE Netzwerk-Verbindungen zu beachten. Damit entfällt auch die Notwendigkeit gemappter Laufwerke. UNC erlaubt den Zugriff auf Tabellen und Netzwerk-Verzeichnis ohne daß der Anwender auf das Laufwerk gemappt sein muß. UNC besitzt die folgende grundlegende Syntax:
\\(Servername)\(Sharename)\(Pfad)+(Dateiname)
Ein einfaches Beispiel für einen Standard BDE Alias unter Verwendung von UNC wäre:
| UNC |
|
Alias: MyUNCAlias
Typ: STANDARD
Path: \\FooServer\FooShare\Sharedir\Tables
Treiber: Paradox
Das Netzwerk-Verzeichnis kann in der gleichen Art spezifiziert werden:
Treiber: Paradox
Net Dir: \\FooServer\FooShare\Sharedir\NetDir
Das Netzwerk-Verzeichnis läßt sich auch zur Laufzeit festlegen. Dies erfolgt je nach eingesetzter Entwicklungsumgebung anders.
C++Builder: Property session.netfiledir
C++ 4.5x/5.x: Funktion DbiSetProp
Kann – aus welchen Gründen auch immer – UNC nicht mit 32-Bit-Anwendungen verwendet werden, so sind die Anmerkungen für die 16/32-Bit-Variante zu beachten.
Gleichzeitiger Einsatz sowohl von 32-Bit BDE als auch 16-Bit BDE-Anwendungen
Da 16-Bit Windows UNC nicht unterstützt, kann dies auch die 16-Bit BDE nicht leisten. Damit Tabellen für mehrere Benutzer zugänglich sind, müssen alle Clients auf das gleiche Server-Verzeichnis gemappt werden. Wird der Server auch als Client verwendet, sind alle anderen Clients auf das Hauptverzeichnis des Laufwerks zu mappen. Die Laufwerksbuchstaben hingegen müssen nicht übereinstimmen.
| Beispiel |
|
Das nachfolgende Beispiel zeigt einmal, was geht und einmal, was nicht:
Korrektes Mapping:
Client1: Path: C:\ShareDir\Tables
Client2: Path: X:\ShareDir\Tables
Client3: Path: R:\ShareDir\Tables
Unkorrektes Mapping:
Client1: Path: X:\ShareDir\Tables
Client2: Path: X:\Tables
Das zweite Beispiel funktioniert auch dann nicht, wenn X:\Tables tatsächlich das Verzeichnis X:\ShareDir\Tables ist. Die BDE muß jederzeit in der Lage sein, das Verzeichnis unter den gleichen Pfadnamen im Netzwerk Kontroll File anzusprechen.
Zusammenfassung
Zusammenfassend noch mal die Checkliste für das Vorgehen unter 16/32-Bit:
| Beispiele |
- "LOCAL SHARE" über die BDE-Konfiguration auf TRUE setzen
- keine UNC-Benennungskonventionen verwenden
- keine Tabellen mit langen Namen verwenden
- sicherstellen, daß alle Clients auf das gleiche Verzeichnis gemappt sind
Sowie für die 32-Bit-Umgebung:
| 16- und/oder 32-Bit- Applikationen |
- "LOCAL SHARE" über die BDE-Konfiguration auf TRUE setzen
- UNC-Benennungskonventionen für Netzwerk- und Tabellen-Verzeichnisse verwenden
Werden diese Schritte nicht eingehalten, kann der Zugriff auf die Tabellen fehlschlagen und folgende Fehlermeldung resultieren:
"Directory is controlled by other .NET file. File: (Path1) PDOXUSRS.LCK".
oder
"Multiple .NET files in use. File: (Path) PDOXUSRS.LCK"
| Nur 32-Bit- Applikationen
|