Gleichzeitiger Zugriff auf Datenbank von 2 Clients aus. Vorher WS2003, jetzt Win8.1

Palm_Maniac

Cadet 3rd Year
Registriert
Feb. 2004
Beiträge
46
Hallo,

ich brauche mal Hilfe, da ich glaube ich seh den Wald vor lauter Bäumen nicht mehr.

In einem Netzwerk steht seit 7 Jahren ein Server mit Windows Server 2003 R2 SB im 24/7 Betrieb, der eigentlich nur als Datei- und Fileserver genutzt wurde. Auf diesen Server greifen nur 2 Clients auf Windowsfreigaben zu. Das spezielle ist die Nutzung einer Datenbank Software auf SQL Basis mit Rechnungswesen, speziell für die Firma entworfen. Das Programm liegt in einer Windowsfreigabe und wird über diese gestartet. Als SQL-Server kommt Advantage Database Server V9 zum Einsatz. Das Programm hat noch eine DOS-Oberfläche. Die Clients laufen mit Windows XP Pro.

Bisher war es unter dieser Konfig ohne Probleme möglich von allen Clients gleichzeit auf das spezielle Programm zuzugreifen und daran zu arbeiten. Zwar nicht gleichzeitig am gleichen Datensatz, aber gleichzeitig mit dem Programm.

Wegen defekter Hardware im Server und den nicht mehr auffindbaren Windows CDs habe ich eine neue HDD eingebaut und ein Windows 8.1 Pro installiert. Bis dahin alles kein Problem. Alle Freigaben habe ich auch dort eingerichtet und die Dateien zurück kopiert.

Rufe ich nun das Programm auf dem ersten Client auf, startet es ganz normal. Der ADV-Client stellt die Verbindung zum Database Server her und der Zugriff auf die Datanbank ist möglich. Die Arbeitsmaske geht auf. Soweit, so gut.

Starte ich nun vom 2. Client das Programm, versucht der ADV-Client eine Verbindung herzustellen, die aber schief geht und die DOS-Anwendung startet nicht mit der üblichen Maske zu Anmelden sondern mit rohen Datenbank-Oberfläche. Es sieht so aus, als ob ein 2. Aufruf oder eine 2. Verbindung abgeblockt wird.

Da man an dem ADV-Server nicht viel einstellen und verändern kann, weiß ich nicht mehr weiter, wo ich in Windows noch suchen soll oder was ich noch versuchen soll, um das Problem zu lösen. Um eventuelle Rechteprobleme beim Installieren auszuschließen, habe ich den Database Server auch mal unter dem Administrator Konto installiert. Keine Veränderung.

Der Spezi, der damals den Server eingerichtet und konfiguriert hat, hat nur den Administrator Account genutzt und dort ein PW eingerichtet, dass jetzt keiner mehr kennt. Keiner der anderen Nutzer hat die Rechte um sich Lokal anzumelden. Dazu kommt noch, dass er für 2 Benutzer mit den gleichen Zugriffsrechten Active Directory aktiviert hat. Ich komme also nicht mehr ins System, um mir eventuell die Konfiguration anzuschauen.

Liegt es nun an Windows 8.1 oder an dem ADV, dass sich das Programm nun nicht mehr mehrfach starten läßt? Ich hoffe auf einen heissen Tip.

Eventuell bin ich hier im falschen Forenbereich, aber ich denke hier sind die richtigeren Leute unterwegs für dieses Problem.

Vielen Dank im voraus für eure Hilfe.

Palm_Maniac
 
Der Spezi, der damals den Server eingerichtet und konfiguriert hat, hat nur den Administrator Account genutzt und dort ein PW eingerichtet, dass jetzt keiner mehr kennt.
dafür gibt es Anleitungen im Netz wie man dieses PW zurück setzen kann...
Liegt es nun an Windows 8.1 oder an dem ADV, dass sich das Programm nun nicht mehr mehrfach starten läßt?
Liegt eher an Win8.1, da dies ja kein Server OS ist... evtl. hätte ich hier lieber mit Win7 gearbeitet...
Wegen defekter Hardware im Server und den nicht mehr auffindbaren Windows CDs
war die System Platte defekt oder was anderes?

3 Methods to Recover Windows Product Key from Dead or Unbootable Windows
http://www.raymond.cc/blog/easiest-...-product-key-from-dead-or-unbootable-windows/
 
Hallo,

BadBigBen schrieb:
dafür gibt es Anleitungen im Netz wie man dieses PW zurück setzen kann...
Liegt eher an Win8.1, da dies ja kein Server OS ist... evtl. hätte ich hier lieber mit Win7 gearbeitet...
war die System Platte defekt oder was anderes?

3 Methods to Recover Windows Product Key from Dead or Unbootable Windows
http://www.raymond.cc/blog/easiest-...-product-key-from-dead-or-unbootable-windows/

Die Anleitungen im Netz setzen nur alle auf Software die keine Domainname Server Accounts reseten können. Alle schon durch.

In dem Server lief ein Raid1. Eine der HDDs war ein Totalausfall, die andere wurde schon angezählt. Ich habe auf Windows 8.1 gesetzt, weil es erfahrungsgemäß im 24/7 Betrieb als Server bisher das beste Bild aller Windows-Versionen abgab. Windows 7 mußte ich alle 4-6 Wochen neu starten, weil kein einizges Fremdsystem (hauptsächlich Macs) mehr auf die Windows Freigaben zugreifen konnte. Dieses Verhalten habe ich auch nach 4 Monaten Dauerbetrieb von Windows8/8.1 nicht mehr gehabt.

In dem Server wurde vorher nichts weiter genutzt außer Freigaben, und dass sich die Clients an eine Domäne angemeldetet hatten mit einem Mix aus Active Directory und Lokalen Accounts.

Was mir nicht in den Kopf will, ist diese plötzliche Limitierung der Zugriffe auf den ADV, eventuell durch gelockte Datenbank Dateien. Dabei befindet sich das entsprechende Anwenderprogramm mit seinen Datenbanken in einem eigenen Verzeichnis, welches im Intranet als Windowsfreigabe erreichbar ist. Nichts anderes habe ich unter Windows 8.1 Pro gemacht.

Ich verstehs nicht.
 
Schon mal einfach die fw von Windows 8.1 ausgemacht? So wirklich was zum db Server kann ich aber nicht sagen, ist mir nicht bekannt aber Windows 8.1 ist hier recht sicher nicht der limitierende Faktor. Kann auch sein dass die DB aktuell erst mal nur im Single User mode läuft (scheinbar tut ja jeder Client einzeln aber nicht zusammen oder?)...who knows
Es gibt ne öffentliche Dokumentation aber z.B. updatedownloads sind sap typisch nur über Login und Support subscription möglich weshalb die Möglichkeit vermutlich ausfällt

Das mit dem Domainaccount hab ich nicht ganz gerafft, die DB hat mit Sicherheit auch noch den lokalen Admin und nicht nur den Domainaccount...

BadBigBen schrieb:
Liegt eher an Win8.1, da dies ja kein Server OS ist... evtl. hätte ich hier lieber mit Win7 gearbeitet...
diese Argumentation musst du mir näher bringen?! als win 7 "mehr" Server os wäre wie 8.1....
 
die keine Domainname Server Accounts reseten können.
wusste hier nicht das eine Domäne vorhanden ist... ging davon aus das es sich um den Lokalen Admin handelte... war nicht ersichtlich im opening thread...
Was mir nicht in den Kopf will, ist diese plötzliche Limitierung der Zugriffe auf den ADV,
dann hatte es vorher schon funktioniert, mit Windows 8/8.1?

@0711
diese Argumentation musst du mir näher bringen?! als win 7 "mehr" Server os wäre wie 8.1....
mein Fehler, hier hatte ich mich nicht klar genug ausgedrückt...
Anstatt Win8 zu benutzen hätte ich Win7 genutzt, als ersatz zu Win2k3... das es kein Server OS ist, ist mir auch klar... und auch nicht 'mehr' als das andere...
Was ich damit meinte, war ausschließlich die Kompatibilität zu dem verwendetem ADV Programm!
 
BadBigBen schrieb:
dann hatte es vorher schon funktioniert, mit Windows 8/8.1?

Nur im Single Betrieb, also wenn sich nur ein Client damit verbindet. Ein zweiter geht dann nicht mehr. Das Starten und Nutzen der Anwendung von mehreren Clients geht immer nur, wenn ich die Platte mit dem alten Win2K3 SBE boote. Der ADV läuft aber mit einer 1000er Lizenz.
 
Was haben denn die Terminal Services mit Zugriff auf Dateien zu tun? Richtig, nichts! Der Patch macht übrigens direkt die Windows Lizenz ungültig, da damit Features aktiviert werden, die nicht lizensiert sind. Eine wichtige Frage ist aber hiernoch gar nicht gestellt worden: Wie läuft der Datenbankzugriff ab? Wird da eine Datei auf dem einem Freigegeben Netzlaufwerk geöffnet, oder läuft das ganze über eine TCP/UDP-Client-Server Verbindung?
 
Was haben denn die Terminal Services mit Zugriff auf Dateien zu tun? Richtig, nichts!
deshalb auch das "evtl."... duh!

@TE - welche Version von SyBase Advanced Database Server genau ist in betrieb? Evtl. mußt du auch hier updaten, oder gleich die x64 Version testen...

Advantage Database Server X86 64 bit V9.1
http://devzone.advantagedatabase.com/dz/content.aspx?Key=20&Release=13&Product=25&Platform=9

Advantage Database Server X86 64 bit V11.1
http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=19&Product=25&Platform=9
 
Zuletzt bearbeitet:
Im Hintergrund muß der Advantage ADSIPforDOS Client laufen. Ich denke da ist der Name Programm und die Verbindungen laufen über eine TCP Verbindung ab. Diese wird auch nur dann aufgebaut, wenn das Programm läuft oder es auf die Daten zugreift. Im Windows 8.1 Serverfall scheint der 2. Client keine Verbindung zum Server zu bekommen, so als ob dieser nur eine zulässt. Man sieht zwar, dass das Programm die Verbindung beim Start anfordert, es werden aber keine Daten übertragen. Leider gibt es dazu keine Fehlermeldungen seitens des Clients, uahc kein Log-File in dem man sehen könnte wo es hackt.
Ergänzung ()

@BadBigBen: Ich habe es mit V9 und V10 versucht, jeweils in der 64bit Version. Einer ja, zwei oder mehr nein.
 
Dann würde ich mal Wireshark mitlaufen lassen und schauen, was beim Aufbau der zweiten Verbindung passiert. Die Windowsversion schließe ich als Fehlerursache aus, da Windows nicht in die Netzwerkbindungen von Drittanbieterprodukten eingreift.
 
Die Windowsversion schließe ich als Fehlerursache aus,
Windows 8.x sollte hier ja auch nicht das Problem sein, sondern eher die Kompatibilität von dem benutzen SQL Server und Windows 8.x...
da Windows nicht in die Netzwerkbindungen von Drittanbieterprodukten eingreift.
stimmt so nicht...

Habe ein wenig mehr recherche betrieben:

1.) wie wird der Verbindungsaufbau erstellt zu der DB, bzw. wie lautet die 'connections string'?
If the connection string looks as follows, the issue might be caused by user instance.

Data Source=.\SQLEXPRESS;Integrated Security=true; AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;

Please have a look at the Common Issues section in the following document:

SQL Server 2005 Express Edition User Instances

The other main issue with user instances occurs because SQL Server opens database files with exclusive access. This is necessary because SQL Server manages the locking of the database data in its memory. Thus, if more than one SQL Server instance has the same file open, there is the potential for data corruption. If two different user instances use the same database file, one instance must close the file before the other instance can open it. There are two common ways to close database files, as follows.

Alternatively, you can attach the database in SQL Server Management Studio and modify the connection strings as follows so that multiple clients can connect to the same database.

Server=.\ SQLEXPRESS;Database=myDataBase;Trusted_Connection=True;
Quelle: Sql Server Express Multiple Connection



Und 2.): was steht bei dir unter folgendem Registry Key als parameter oder ist er überhaupt vorhanden?

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\EnableConnectionRateLimiting

wenn nicht vorhanden, dann erstelle ihn mal als DWORT 32bit und versehe ihn mit einer 0 (null)...
 
BadBigBen schrieb:
Und 2.): was steht bei dir unter folgendem Registry Key als parameter oder ist er überhaupt vorhanden?

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\EnableConnectionRateLimiting

wenn nicht vorhanden, dann erstelle ihn mal als DWORT 32bit und versehe ihn mit einer 0 (null)...
Der Wert dürfte nicht vorhanden sein. Ist auch unnötig, da seit Vista SP2 das Limit für ausgehende halboffende TCP-Verbindungen nicht mehr vorhanden ist. Da der Win8-PC aber der Server ist, sind die ausgehenden Verbindungen ohnehin nicht von Belang. Die eingehende Verbindung wird blockiert bzw. abgewiesen. Ursachen können sein:
- Firewall
- Fehlkonfiguration der Serveranwendung

Beides kann man mit Wireshark auf dem Client sehen.
 
Ich werde morgen mal Wireshark darauf ansetzen. Firewall ist aus, auf dem Server wie auch auf dem Client, solange ich die Problemquelle nicht kenne.

Ich möchte mich aber auch schon mehr sehr herzlich bei euch für die Hilfe und die Tipps bedanken. So bin ich auf neue Ansatzpunkte gekommen, an die ich im Eifer des Gefechts nicht mehr gedacht hatte. DANKE.
 
Der Wert dürfte nicht vorhanden sein. Ist auch unnötig, da seit Vista SP2 das Limit für ausgehende halboffende TCP-Verbindungen nicht mehr vorhanden ist.
stimmt auch so wieder nicht...

Erstens, es sind nicht ausgehende sondern auch eingehende Connections.
Zweitens, kann dieser Wert (RegSchlüssel) von einem Installer gesetzt worden sein.

Hier mal ein Artikel über Windows 7 von vor 2 Jahren.
Das MS, zwichenzeitlich das Limit erhöht hat weis ich auch schon seit einiger Zeit...
 
Nun, im Netz findet man mehrfach die Aussage, dass das 20 Verbindungen Limit nur für die Datei- und Druckdienste sowie IIS gilt. Einfache TCP-Connections wären demnach nicht betroffen. Kann ich mir auch nicht vorstellen, da man ansonsten auf Windows kaum Bittorrent und Konsorten sinnvoll betreiben könnte.
 
Zuletzt bearbeitet:
Hallo,

ich habe jetzt mal mit Wireshark 2 Logs erzeugt. Einmal auf dem Server, wenn ein 2. Verbindungsversuch stattfindet und schief geht und ein Log vom Client aus wenn dieser versucht das Programm als 2. zu starten und die Verbindung zur Datenbank scheitert. Ich hoffe, ihr könnt da was entdecken.
 

Anhänge

Hab mir die Capturefiles mal angeschaut. Der Client hat die IP 192.168.1.31 der Server die 192.168.1.28, korrekt? Es wird die Datei aue3.bat im Verzeichnis Fakt gestartet. Diese enthält einige Druckermappings und ruft dann die Datei naue3.exe auf. Das ist die eingetliche Datenbankanwendung. Wenn ich mir das weiter so anschaue, basiert die Datenbankanwedung auf der Programmiersprache Clipper, einem dbase Dialekt. Eigentlich arbeiten diese Datenbanken rein dateibasiert, d.h. es wird keine SQL-Connection zu einem Datenbankserver hergestellt.
Es gibt jetzt zwei Möglichkeiten:
1. Die eigentlichen Datenbankdatei ist durch den anderen Client gesperrt und kann daher nicht geöffnet werden.
2. Die Anzahl der SMB Verbindungen überschreitet 20, dann wäre das Lizenzlimit erreicht.
Kontrolliere am Server bitte die Anzahl der geöffneten Dateien, wenn nur ein Client aktiv ist.

Was mich noch wundert: Im Serverfile kann ich die IP-Adresse 192.168.1.31 nicht finden. Stattdessen taucht dort die 192.168.1.96 auf.
 
Wegen diverser Limitierungen in der eigentlichen Sprache, wurde das Programm mit SQL aufgebohrt. Dadurch wurde es auch deutlich stabiler. Aus diesem Grund ist der ADS notwendig.

Zu 1) Wenn die Datenbankdatei durch den anderen Client gesperrt wird, wieso klappt es dann unter WS2003? Dort ist es ja auch nur eine normale Windows Freigabe. Kann ich das in Windows 8 irgendwie ändern?
 
Server 2003 benutzt SMB 1.0, Windows 8 SMB 3.0. Das Verhalten beim File Locking hat sich deutlich geändert. Du kannst mal probieren, das File Locking abzuschalten und den Server und Client wieder auf SMB 1.0 zu zwingen. Setz dazu folgende Registrierungsschlüssel auf Client und Server:

Code:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MRXSmb\Parameters\OplocksDisabled REG_DWORD = 1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\EnableOplocks REG_DWORD = 0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\SMB2 RegDWORD = 0
 
Zurück
Oben