Problem: Beim Starten von SFirm 4 erscheint eine Fehlermeldung: Fehlercode: 21010. Das Öffnen des Mandanten ist nicht möglich.
Fehler beim Zugriff auf Dbc-Datenbank von Server 'HOSTNAME\INSTANCE'. SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
Login timeout expired.
Ursache/Bedingung für das Auftreten des Problems:
SFirm kann die Verbindung zum Hostnamen oder der SQL Server Instanz nicht aufbauen
Mögliche Lösungen:
1. Korrigieren Sie den Wert für 'SERVER=HOSTNAME' in der Datei '<SFirmV4-Daten>\Basis\DBCs.ini', indem Sie 'HOSTNAME' durch die IP-Adresse des PCs/Servers ersetzen.
2. Wenn auf dem Server mehrere MS SQL Server-Instanzen aktiv sind, kann es vorkommen, dass der konfigurierte TCP/IP-Port bereits von einer anderen MS SQL Server-Instanz verwendet wird. In diesem Fall ist es notwendig, den TCP/IP-Port im SQL Server Configuration Manager unter 'SQL Server Network Configuration' zu ändern. Beispielsweise können Sie den Port von 1433 auf 1435 ändern. Möglicherweise müssen Sie diese Änderung separat für localhost (127.0.0.1) und die IPv4-Adresse des Servers vornehmen. Zusätzlich sollte der SQL Server Browser aktiv sind und der Port 1434 UDP frei sein.
3. Um sicherzustellen, dass der TCP/IP-Port in der SQL Server Network Configuration nicht leer ist, sollten Sie prüfen, ob der Port korrekt eingestellt ist. Standardmäßig ist der Port 1433 für die TCP/IP-Verbindung mit dem SQL Server konfiguriert. Wenn der Port leer ist oder falsch konfiguriert wurde, können Sie ihn auf den Standardwert 1433 setzen, um sicherzustellen, dass die Verbindung ordnungsgemäß funktioniert.
4. Standardmäßig verwenden benannte Instanzen (einschl. SQL Server Express) dynamische Ports. Wenn es sich hier um die einzige Datenbankengine handelt wird i.d.R. der Port 1433 verwendet. Sind weitere Instanzen vorhanden kann u.U. ein anderer TCP Port verwendet werden der dynamisch ausgehandelt wird. Eine Konfiguration der Firewall auf einen festen Port ist daher nicht möglich. Hier müsste in der Firewall die Applikation (SQLSRV.EXE) freigegeben werden. Microsoft bietet hierzu eine eigene Beschreibung sowie entsprechende Lösungsansätze an. Diese sind unter folgendem Link zu finden:
https://docs.microsoft.com/de-de/sql/sql-server/install/configure-the-windows-firewall-to-allow-sql-server-access?view=sql-server-2017
5. Überprüfen Sie, ob der Dienst 'SQL Server Browser' gestartet ist. Sie können überprüfen, ob der Dienst 'SQL Server Browser' gestartet ist, indem Sie zu den Windows-Diensten navigieren und nach dem entsprechenden Eintrag suchen. Falls der Dienst nicht gestartet ist, können Sie ihn dort starten. Es ist außerdem ratsam, sicherzustellen, dass der Port 1434 UDP in der Firewall des Servers freigegeben ist.
6. In den Eigenschaften des Dienstes 'SQL Server' kann auf dem Register 'Anmeldung' das Kontrollkästchen 'Lokales Systemkonto' aktiviert und der Dienst gestartet werden. Dadurch wird der Dienst mit den Berechtigungen des lokalen Systems ausgeführt. Es ist wichtig zu beachten, dass diese Anweisung nicht für LocalDB gilt.
7. Per Default ist aktiv, dass ALLE Netzwerk-Interfaces und ALLE IP-Adressen (sowohl IPv4 als auch IPv6) abgehört werden. Wird ausschließlich IPv4 genutzt und IPv6 ist deaktiviert, kann dies zu dem Fehler führen.
Im SQL Server Configuration Manager unter SQL Server Network Configuration die Protocols der SQL Instanz anklicken, dort Doppelklick auf TCP/IP (muss Enabled sein).
Den Wert 'Listen' auf dem Reiter Protocols in den Eigenschaften auf 'NO' ändern.
Bei dem Reiter 'IP-Adresses' die IPv4 Adresse der Clients eintragen, diese Einträge auf 'Enabled - Yes' setzen und den TCP/IP Port eintragen (Standard 1433 oder den selbst vergebenen Port bei mehreren SQL Servern).
Alles mit OK bestätigen und den SQL Server Dienst unter 'SQL Server Services' neu starten.
8. In den Fehlerdetails zum Fehler 21010 ist kann auch ein Hinweis zur Laufwerkskomprimierung aufgeführt sein. Wird die Komprimierung deaktiviert, lässt sich SFirm fehlerfrei starten.
9. Wenn SFirm mit LocalDB verwendet wird, den Dienst SFirm 4 DatabaseService neu starten. Die Anmeldung für den Dienst darf nicht verändert werden. Sollte das Problem häufiger auftreten, den Starttyp des Dienstes auf "Automatisch (verzögerter Start)" ändern.
10. Nach einer Neuinstallation tritt das Problem auf. Eine Deinstallation durchführen und darauf achten, dass folgender Registryschlüssel entfernt wird (sofern vorhanden)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\StarFinanz\SFirmV4\Settings\DatabaseService
Danach SFirm 4 mit LocalDB neu installieren (alternativ auch benutzerdefiniert mit SQL Server statt LocalDB)
11. In einigen Fällen konnte, wenn SFirm mit LocalDB verwendet wird, das Problem behoben werden, indem der Virenscanner (z.B. Avira) deinstalliert wurde. Tritt das Problem danach nicht mehr auf, Virenscanner in aktueller Version erneut installieren und prüfen, ob der Zugriff auf LocalDB dann trotzdem weiterhin möglich ist.