Entwickler-Ecke

Internet / Netzwerk - Programm im Netzwerk - Zugriff mehrerer PCs auf gleiche exe


dalpers - Mo 05.09.05 08:54
Titel: Programm im Netzwerk - Zugriff mehrerer PCs auf gleiche exe
Hi,

Ich möchte mein Programm im Netzwerk ablegen, damit ich es bei Updates nur an einer Stelle austauschen muß.

Muss ich da was besonderes beachten?

Ich arbeite mit einer Paradox-Datenbank und habe schon das PrivateDir der Tabellen und Querys auf das jeweilige tmp-Verzeichnis gelegt.

Das war jetzt ein Problem, was einem gleich auffällt, aber ich möchte ungerne Überraschungen erleben und in einer Woche in Panik geraten weil nichts mehr geht ;-)

Wäre nett, wenn ihr mir sagen könntet, was ich da beachten muß.

Danke und Gruß

Denise


laserflor - Mo 05.09.05 09:57
Titel: Re: Programm im Netzwerk - Zugriff mehrerer PCs auf gleiche
user profile icondalpers hat folgendes geschrieben:
Hi,

Ich möchte mein Programm im Netzwerk ablegen, damit ich es bei Updates nur an einer Stelle austauschen muß.

Muss ich da was besonderes beachten?

Ich arbeite mit einer Paradox-Datenbank und habe schon das PrivateDir der Tabellen und Querys auf das jeweilige tmp-Verzeichnis gelegt.

Das war jetzt ein Problem, was einem gleich auffällt, aber ich möchte ungerne Überraschungen erleben und in einer Woche in Panik geraten weil nichts mehr geht ;-)

Wäre nett, wenn ihr mir sagen könntet, was ich da beachten muß.

Danke und Gruß

Denise


Hallo Denise,
was mir ganz spontan einfällt ist die Tatsache, dass eine .exe nicht geändert werden kann, während das Programm auf irgendeinem PC im Netzwerk läuft. Das geht übrigens auch lokal nicht, was du überprüfen kannst, wenn du ein Programm außerhalb von Delphi startest und dann versuchst, dieses neu zu kompilieren. Wenn du also sicherstellen willst, dass die neue Version aktiv wird, musst du vor dem Starten im Fall einer Änderung eine Kopie (u.U. sogar lokal) ablegen und nur die Kopie starten.

Aus dem Text geht hervor, dass du anscheinend die Daten nicht gemeinsam nutzen willst. Falls das doch der Fall sein sollte, muss bei allen PC der Ordner Session.NetFileDir auf denselben Ordner zeigen. Sieh dir mal die Hilfe zu Session, TSession und TSession.NetFileDir an. Du kannst den Ordner auch mit Hilfe der BDE-Verwaltung einstellen: Konfiguration -> Treiber -> Native -> PARADOX -> NET DIR
Des weiteren musst du dann beachten, dass ein Datensatz gesperrt wird, während ein Nutzer ihn bearbeitet, wodurch Edit fehlschlägt.

Quelltext
1:
try TBL.Edit except {Datensatz ist gesperrt} end                    

Ich denke, dass es noch die eine oder andere Sache gibt, die mir jetzt spontan nicht einfällt, also gibt es bestimmt noch Ergänzungen von andern oder mir :lol:
Gruß Rolf


dalpers - Mo 05.09.05 10:18

Hi Rolf,

Danke für deine Antwort.

Im Moment nutzen wir schon von mehreren Pcs aus die gleiche Datenbank. Die exe liegt aber auf jedem PC lokal und ich will mir die Arbeit erleichtern, indem ich nicht überall das Update einspielen will.

Desswegen ist das Net-Dir schon überall gleich eingestellt (auf ein Verzeichnis im Netzwerk) und das PrivateDir auf jedem PC lokal.

Was gibt es denn für Gründe, dass sich die EXE ändert außer einem Update. Also beim Update dafür zu sorgen, dass keiner darauf zugreift ist kein Problem, aber verändert sich die exe auch beim "normalen" Programmaufruf? unter welchen Umständen?

Vielen Dank und LG

Denise


jaenicke - Mo 05.09.05 10:29

Bei einem normalen Programmaufruf KANN sich die Exe gar nicht mehr ändern, weil da Windows (manchmal leider...) was dagegen hat.
Da besteht also kein Problem...

Lediglich die Geschwindigkeit des Programmablaufs kann sich verschlechtern, wenn mehrere gleichzeitig mit dem Programm arbeiten und also gleichzeitig auf die Exe zugreifen.
Es gibt da auch sehr einfach zu nutzende Lösungen für automatische Updates, von denen der End-User gar nix merkt, obwohl die Exe lokal ist.
Zum Beispiel indem ein Loader benutzt wird, der automatisch die aktuellste Version holt, falls notwendig.

Für meine Zwecke war dies fast immer die sinnvollere Möglichkeit, vor allem, weil ein solcher Loader sehr einfach zu schreiben ist.


dalpers - Mo 05.09.05 11:17

Hi jaenicke,

an so eine Art automatisches Update habe ich auch schon gedacht, aber ohne Admin-Rechte kann man nicht so einfach im Programme-Verzeichnis Dateien durchtauschen. Ok, ich konnte es in ein anderes Verzeichnis installieren, aber das halte ich nciht für sinnvoll. gibt es denn außer der Geschwindikeit noch irgendwelche Probleme mit denen ich rechnen muß?

VLG

Denise


jaenicke - Mo 05.09.05 11:26

Also zu erstens: Man muss ja nur die Benutzerrechte entsprechend ändern, wie ich es auch getan habe. Die Verzeichnisse, in die in Programme nicht von normalen Usern geschrieben werden soll (Zubehör, etc.), werden so eingestellt, dass einfach zum Schreiben die Rechte vom Admin benötigt werden, und fertig.

Und zu zweitens:
Nur ein Problem hatte ich. Manchmal, wenn das Programm auf einem der Rechner abgestürzt ist, hat dies der Server nicht mitbekommen, und dachte also, die Exe wird noch benutzt.
Und dann konnte ich diese nicht mit der neuen Version überschreiben bis der Server neu gestartet war.
Das war auch der Hauptgrund für mich, das Programm wieder lokal abzulegen...

Ansonsten sollte eigentlich alles genauso wie lokal gehen.