Installation MEDISTAR Software
Info:
Grundlagen zu den MEDISTAR Diensten
MEDISTAR ISAM
Der Zugriff auf die indexsequentiellen Daten, den ISAM-Dateien, erfolgt über einen Dienst namens MEDISTAR ISAM.
Ein Zugriff durch den Dienst ist nur auf lokale Dateien möglich.
Der Dienst muss unter einem Benutzerkonto (defaultBenutzer: IsamService) laufen.
Der Benutzer benötigt mindestens Hauptbenutzerrechte.
32Bit-Systeme: Die Datei ISAM.EXE in das Verzeichnis %systemroot%\system32 kopieren.
64Bit-Systeme: Die Datei ISAM.EXE in das Verzeichnis %systemroot%\SysWOW64 kopieren.
Command: sc create "MEDISTAR ISAM" binPath= %systemroot%\system32\isam.exe start= auto obj= .\IsamService
password= isam
MEDISTAR RPCI
Der Zugriff von einer Workstation aus erfolgt über ein RPC-Call (Remote Procedure Call).
Dieser kann als Anfrage über NamedPipe, TCP oder UDP erfolgen.
Diese Anfrage wird auf dem Server vom Dienst “MEDISTAR RPCI” entgegengenommen und an dem ISAM weitergeleitet.
Die erforderlichen TCP-Ports, die eingehend geöffnet sein müssen, sind die Ports 137, 138, 139 und 4445.
Zusätzlich muss für die Kommunikation via TCP/UDP der konfigurierbare Port eingehend geöffnet sein (default: 16000).
Command: sc create "MEDISTAR RPCI" binPath= %systemroot%\system32\rpci.exe start= auto
MEDISTAR ISMON
Der “MEDISTAR ISMON” ist der WatchDog vom ISAM. Bei Fehlern schreibt dieser die Informationen in das Windows-Ereignisprotokoll.
Command: sc create "MEDISTAR ISMON" binPath= %systemroot%\system32\ismon.exe start= auto
Einrichtung mit Zugriff über TCP
Ohne weitere Parameter bei der Installation erfolgt der RPC-Zugriff auf die ISAM-Datenbanken per NamedPipes.
Dieser Zugriff ist sehr empfindlich gegen Netzwerkstörungen. Kleinste Aussetzer führen zum sofortigen Abbruch der Datenbankverbindung.
Ein Neustart des Task ist die Folge. Der Zugriff über TCP/UDP hingegen ist an der Stelle unempfindlicher.
Achtung: Der Zugriff über TCP ist mit den Diensten 3.4.0.0 erheblich verbessert worden.
Je nach aufgerufener Prozedure konnte es zu unerklärlichen Fehler 2005 kommen.
Im Fehlerfall ist auf jeden Fall zu prüfen, ob die Dienste 3.4.0.0 oder neuer verwendet werden.
Die Verwendungsart wird über die Registry eingestellt. Ohne Regschlüssel ist der Zugriff ausschließlich per NamedPipes möglich.
Mit dem Regschlüssel kann per NamedPipes oder TCP/UDP zugegriffen werden.
Die Einstellung erfolgt dann über die Sysconf der jeweiligen Workstation.
Ein Mischbetrieb aus NamedPipes und TCP/UDP ist innerhalb des Netzwerkes möglich.
Parameter in der Registry für den Zugriff über TCP
Um auf den RPCI per TCP/UDP zugreifen zu können, muss in der Registry folgender Schlüssel angelegt werden:
- 32Bit: [HKEY_LOCAL_MACHINE\SOFTWARE\MEDISTAR\SERVICES\RPCI\Parameter]
- 64Bit: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MEDISTAR\SERVICES\RPCI\Parameter]
Die Parameter bedeuten:
NamedPipe = „[ON Ι OFF]“
ON = Zugriff über NamedPipes und TCP/UDP möglich.
OFF=Zugriff nur über TCP/UDP möglich. NamedPipes geht nicht mehr.
Port = „n“
n = Portangabe [1..65535]
default: 16000
Protseq = „[TCP Ι UDP]“
TCP = Zugriff erfolgt via TCP.
UDP = Zugriff erfolgt via UDP.
Sysconf
Der Eintrag in der Sektion System der Sysconf entscheidet darüber, ob per NamedPipes oder per TCP zugegriffen wird.
Folgende Parameter sind möglich:
RPCI = PIPE
Zugriff erfolgt über NamedPipe
(wenn die Sektion [System] nicht existiert, dann ist dies der default-Wert)
RPCI = TCP(n)
Zugriff erfolgt über TCP-Port n
RPCI = UDP(n)
Zugriff erfolgt über UDP-Port n
Der verwendete sysconf-Eintrag muss passend zur RPCI-Dienst-Konfiguration am Server sein.
Firewall
Um auf MEDISTAR zugreifen zu können, müssen eingehend immer die Ports 137-139 geöffnet sein.
Zusätzlich muss bei Verwendung TCP/UDP der Port eingetragen sein.
Dabei ist zu beachten, dass bei Server-Betriebssystemen auch bei abgeschalteter Firewall die eingehenden Ports geöffnet werden müssen.
Vorgaben zur Installation/Fehlerbehebung der MEDISTAR Dienste
Die Vorgabe zur Installation der MEDISTAR-Dienste ist als Standard anzusehen.
D.h. im Fehlerfall ist zunächst dafür zu sorgen, dass die MEDISTAR-Anlage mit folgenden Bedingungen installiert ist:
- Es sind die Dienste der Version 3.4.0.0 oder neuer im Einsatz
- Der Dienst ISAM läuft unter einem eigenen Benutzerkonto „IsamService“ mit mindestens Hauptbenutzer-Rechten.
- Auf den RPCI wird über TCP-Port 16000 zugegriffen.
- Die Namensgebung sollte MEDISTAR ISAM / MEDISTAR ISMON / MEDISTAR RPCI sein
Warum muss der ISAM unter einem Benutzerkonto laufen?
Mit Freigabe der Nicht-Rootfreigabe für MEDISTAR vom 22.04.2002 hat sich der Zugriff auf den ISAM-Dienst geändert.
Vorher musste grundsätzlich das gesamte Laufwerk mit einer %-Freigabe versehen werden.
Also Laufwerk D: wurde als D% freigegeben. In der Sysconf.s wurde dann eine Nicht-UNC-Angabe eingetragen, nach dem Schema \\SERVER\d:\medistar.
Für den Filezugriff wurde nun der Doppelpunkt durch das Prozentzeichen getauscht, um damit eine gültige UNC-Angabe zu erhalten.
ISAM-intern war jedoch für alle Rechner der Zugriff gleich; immer auf d:\medistar.
Mit der UNC-Freigabe war es nun möglich, gezielt ein Verzeichnis anzusprechen. Da nun eine Freigabe auch unterschiedlich(mehrfach) genutzt werden kann (z.B. \\server\d%\medistar und \\server\ms$),
muss der ISAM intern für jeden Workstation-Zugriff (jeder Task) sich den Weg (UNC-Pfad) merken.
Dies geschieht in einer internen Zugriffstabelle.
Da aber zum Schreiben der internen Zugriffstabelle die Rechte des Benutzers „lokales System“ nicht ausreichen,
muss der Dienst unter einem Benutzerkonto laufen, der mindestens der Gruppe Hauptbenutzer angehört, damit die Tabelle geschrieben werden kann.
Was passiert, wenn der Dienst trotzdem unter „lokales System“ läuft?
Da der Wert nicht gespeichert werden kann, wird bei jedem Zugriff einer Workstation der Wert neu aufgerechnet und versucht, in der Tabelle zu schreiben.
Dies verringert den Netzwerkdurchsatz erheblich.
Weiterhin kann es zu sporadischen Fehlern (z.B. unerklärliche Fehler 62) kommen.