Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TSession und Anzahl der Mehrnutzer im Netzwerk (https://www.delphipraxis.net/31177-tsession-und-anzahl-der-mehrnutzer-im-netzwerk.html)

TypusMensch 5. Okt 2004 17:35


TSession und Anzahl der Mehrnutzer im Netzwerk
 
Hallo,

Folgendes Problem. Ich habe ein Programm. Das Programm wird jetzt auf einen Rechner installiert und der Ordner dieses Programmes wird als neues Netzwerklaufwerk geshart (z.B. M:\). Darin befindet sich der Unterordner 'data' in dem die Tabellen stecken (Paradox). Nun sind alle Querys und Tables meines Programm mit einer TSession verbunden und diese hat nun als NetFileDir den Ordner M:\data. Kam leider nicht dazu das alles zu testen. Alle Rechner (im Netzwerk), auf denen nun das Programm installiert wird, geben als TSession - NetFileDir auch M:\data an. Funktioniert das dann so richtig??? Zu beachten ist dabei natürlich, dass M: an den Server geshart wird auf dem sich die eigentlich zu benutzende Datenbank befindet.

1. Und vor allem: Wieviel Nutzer könnten dann gleichzeitig auf die Datenbank zugreifen, sowie auch Änderungen vornehmen?

2.Weiterhin die Frage, ob das alles so in einem Peer-To-Peer-Netzwerk und/oder auch beim Client/Server-Prinzip funktioniert...

3. Ich kann leider mit PrivateDir nichts genaues anfangen? Jaja OH...

"Mit der Eigenschaft PrivateDir können Sie das Verzeichnis festlegen, in dem die temporären Dateien gespeichert werden, die von der Borland Database Engine (BDE) für die einer Sitzung zugeordneten Datenbankkomponenten erstellt werden."

Muss dieser Ordner auch auf M: laufen oder ist das egal. Kann dieser leer gelassen werden oder muss der auf ein lokales Verzeichnis der jeweiligen Rechner stehen?

Ich weiß, Fragen zu TSession kamen schon oft vor. Möchte hiermit nur eine Bestätigung, das es alles so auch sein sollte... *oftmals nur sehr pauschale Antworten nur zu diesem Thema gefunden :-?*

Thx im vorraus...

TypusMensch 5. Okt 2004 18:06

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Habe das jetzt alles mal ausprobiert. Versuche nun mit der TSession - NetFileDir auf 'M:\data' zuzugreifen. Nun kommt folg. Fehler:

... 'Verzeichnis wird von einer anderen .NET-Datei kontrolliert.
Verzeichnis: M:\DATA\
Datei M:\DATA\PDOXUSRS.LCK'.
Prozess wurde angehalten. ...


Was hat es denn nun schon wieder mit diesem Fehler auf sich...

NetFileDir: M:\data
PrivateDir: leer gelassen

Ich hoffe mir kann da jemand helfen...

PS: Bei einem Ordner lokal auf dem Rechner funktioniert es aber (z.B. C:\data)

MfG Marcus

TypusMensch 6. Okt 2004 11:09

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Hat echt keiner ne Ahnung??? :(

ipworks 6. Okt 2004 11:27

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Ich habe zwar kaum noch Ahnung davon aber

Setze in BDE-Administration:
SYSTEMINIT
LOCAL SHARE: TRUE


TREIBER-NATIVE-PARADOX
LEVEL 7

Ohne Gewähr...müsste zum einem Kunden fahren, der so ein altes System von C&S im Einsatz hat und nachschauen.

c u
Peter

TypusMensch 6. Okt 2004 15:39

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Zitat:

Zitat von ipworks
Setze in BDE-Administration:
SYSTEMINIT
LOCAL SHARE: TRUE

OK. Erledigt...

Zitat:

Zitat von ipworks
TREIBER-NATIVE-PARADOX
LEVEL 7

War bei mir schon als Voreinstellung...

Leider tritt der Fehler immernoch auf. Ich verstehe das nicht. Bin auch als Admin mit allen Rechten angemeldet. Dem Ordner wurde auch folg. zugewiesen: "Netzwerkbenutzer dürfen Dateien verändern".

Letztendlich ist doch egal, ob ich als NetFileDir "C:\Programme\Testprogramm\data" oder "M:\data\" stehen habe. Es verweist doch darauf..?!?!? :? :wiejetzt:

INC-Man 6. Okt 2004 16:18

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Hallo TypusMensch,

Du bist schon auf dem richtigen Weg.
1. Ich denke du hast durch die Einstellung des Net-Dirs in deinem Programm die Vorraussetzung geschaffen, um gemeinsam auf die daten zuzugreifen.
Um das ganze abzusichern würde ich bei der BDE-Einstellung (BDE-Admin) auch das Net-Dir auf m:\ setzen. In vielen Abhandlungen dazu wird empfolen nitcg unbedingt auf Root-Verzeichnisse zu gehen mit dem Netdir-Verzeichnis. Aber das kann man auch noch später ändern.
2. Was die Verwendung einer anderen Net-Datei betrifft ist es auch nicht weiter wild.
Lösche bitte alle p*.lck und alle p*.net auf deinem M- Laufwerk. Danach wirst du wieder arbeiten können. Solte sich das Problem in kurzer Zeit wiederholen, dann ist ein PC mit einem falschen Net-Dir unterwegs. (Hinweis: Problem kann auch nach installation von anderer Software z.B. DInfo auftreten)
3. Anmerkungen zu BDE-Einstellungen. Für Paradox würde ich dir den Trieber pdoxAnsiintl850 empfehlen, der Unterstützt auch die Umlaute.
4. Systemeinschränkungen:
Nach aussagen von Borland können bis zu 255 Useer auf die daten zugreifen. Was in der Praxis völlig unrealistisch ist. Ich würde maximal bis 100 User gehen. Bedenke je mehr User auf Deine Daten Arbeiten, desto mehr wird die Datei pdoxusers.net und die anderen lck-Dateien beschrieben.

Ach ja, mir fällt da noch was ein in der BDE spielt die SharedMemoryLocation eine große Rolle, wenn diese nicht entsprechend des Betriebssystems gesetzt wird, dann komt meißt nach 5 Usern das aus für die Anwendung.

So ich hoffe die Infos und die Rechtschreibfehler haben Dich nicht erschalgen.
Vieleicht kommst Du damit ja weiter. Wenn nicht, melden! :-)

mfg INC-Man

jensw_2000 6. Okt 2004 16:40

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Hi,

Paradox in LAN... Das waren noch Zeiten :stupid:

So bekommst du das ganze zum Laufen ...

1. Bei jedem Client, der auf die DB zugreift:
BDE Verwaltung -> Konfiguration -> Treiber -> Native -> Paradox
- "NetDir" auf M:\DATA\ setzen (auch auf dem Rechner auf dem die DB liegt. Falls nicht vorhanden Laufwerk M: mit der DATA Freigabe verbinden ...)

2. Alle Anwendungen, die auf deine DB zugreifen beenden und auf allen Rechnern nach
den Dateien "PDOXUSRS.LCK" und "PDOXUSRS.NET" suchen und diese löschen.
Die Dateien werden automatisch neu angelegt.

3. Überprüfen, ob der DB Alias auf allen Rechnern M:\DATA\ heist und ob M:\DATA bei allen Rechnern auf das selbe Verzeichnis zeigt (incl. "DB-Server" falls deine Anwendung dort auch gestartet wird ..). Der DB Server darf nicht auf den lokalen Pfad (z.B. c:\Programme\1234\Data) zugreifen. Falls die Anwendung auch auf dem "DB-Server" gestartet wird, musst du ebenfalls ein Laufwerk M: zuweisen, welches das selbe Ziel wie auf den "Clients" hat.

4. PrivateDir ist eher unwichtig. Dort muss ein existierender Pfad mit vorhandenen Schreibrechten eingetragen sein. PrivateDir darf nicht auf M:\DATA\ gesetzt werden. Alles Andere ist egal ...

5. Jetzt kannst du das Programm wieder auf allen PC's starten.

Alle Clients haben standardmäßig Schreib+Leserechte in der DB.

Wenn ich mich recht erinnere gibt es standardmäßig auch Datensatzsperren.

Im PeerToPeer Bebrieb funktioniert das ganze super ... Es gibt ja keinen DB Server sondern nur ein geneinsam genutztes DB Verzeichnis


Schöne Grüße,
Jens

TypusMensch 6. Okt 2004 18:31

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Okay, okay. Das ist alles super, hab ich auch getestet...

Mit dem Löschen der .LCK und .NET habe ich jedoch immernoch der Fehler? Warum? Ganz einfach:
Beim Starten des Programms erstellt er automatisch immer wieder diese .LCK und .NET - Dateien. Deshalb kommt auch immer wieder dieser dumme Fehler.

Ich kann diese so oft wie ich will löschen, die werden immer wieder neu erstellt, automatisch...
Hat jemand eine Idee, warum das so ist?!??!

Edit: Hinzufügen möchte ich noch, dass ich gar kein BDE-Alias erstelle... Ich lade die Tabellen sowie Abfragen generell aus den Pfaden nicht aus Alias-Verzeichnissen. Ist das von Bedeutung? Sprich bei "DataBaseName" der einzelnen Querys und Tables sind nicht (wie evl. gewönhlich) Datenbanknamen, sondern die konkrete Pfadangabe eingegeben... Also habe ich in der BDE-Einstellung unter Datenbanken auch keine Datenbank für das Programm selbst. Muss das ggf. damit realisiert werden?

Danke für eure Hilfe.

jensw_2000 6. Okt 2004 19:35

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Hi,

klar werden die pdoxusrs.net und .lck neu erstellt.
Sie enthalten die dynamischen Informationen für den Mehrbenutzer-Zugriff (Datensatzsperren, aktive Sessions usw.)

Du solltest die alten löschen, um sicherzustellen, das es keine offenen Bezüge gibt, bzw. um auszuschließen, das
irgendeine PDOXUSRS.NET Datei auf eine andere PDOXUSRS.LCK verweist, als die in M:\DATA\.
Genau das bedeutet deine Fehlermeldung!!!

Zitat:

... 'Verzeichnis wird von einer anderen .NET-Datei kontrolliert.
Verzeichnis: M:\DATA\
Datei M:\DATA\PDOXUSRS.LCK'
Das kann nur passieren wenn entweder im BDE Admin -> Konfiguration -> Treiber -> Native -> Paradox bei irgendeinem Rechner (Arbeitsstation oder Server) nicht NetDir = M:\DATA\ steht oder das der "Server" über einen lokalen Pfad auf die DB zugreift und nicht über ein Netzwerklaufwerk M: das auf den lokalen Pfad gemappt ist.

Die NetDir Einstellung im BDE Admin ist absolutes muss, übrigens unabhängid davon, ob du per Pfad oder Alias auf das DB Verzeichnis zugreifst.


Kontrolliere bitte noch mal die Einstellungen auf allen Rechnern, lösche nochmal die pdoxusrs.net und pdosusrs.lck Dateien und dann wirds funktionieren wenn du nichts übersehen hast.

Es ist der einzige Weg eine Paradox DB im MultiUserMode zu verwenden.


Gruß,
Jens

TypusMensch 14. Okt 2004 14:37

Re: TSession und Anzahl der Mehrnutzer im Netzwerk
 
Ich werd verrückt... Danke für eure Hilfe, aber nun stehe ich vor folg. Problem:

"Datei oder Verzeichnis nicht gefunden: M:\DATA\artikel.db"

Diese ist aber eindeutig vorhanden, ich kann diese doch unterm Explorer (oder WinCommander, etc.) eindeutig sehen...

Wieso das jetzt?

Ich danke euch für eure Hilfe...

MfG Marcus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz