Neu Fehler bei SQL-Abfrage durch Aufgabenplanung

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Hallo liebe Gemeinde,

ich versuche schon seit Stunden das folgende Problem zu lösen und hoffe auch Hilfe von Erfahrenen Usern:
Ich möchte eine SQL-Abfrage durch die Windows 11 Aufgabenplanung beim Systemstart starten, also noch bevor ein Windowsnutzer am Server-PC angemeldet sein muss. Die Abfrage erfolgt hierbei durch ein Python-Skript, welches in eine bat-Datei eingebettet ist. (Mit einer batch-Datei und sqlcmd habe ich es aber auch schon versucht.)

Zu meinem Problem: Solange ich die Aufgabe direkt in der Aufgabenplanung starte funktioniert alles. Also ich bin am System als Nutzer angemeldet. Startet Sie automatisch beim Systemstart erhalte ich in meinem Logfile folgende Fehlermeldung:

Sqlcmd: Fehler: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Der Wartevorgang wurde abgebrochen.
.
Sqlcmd: Fehler: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Fehler: Microsoft ODBC Driver 17 for SQL Server : 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..

Also keine Verbindung zum SQL-Server möglich! Ein Zugriff von externen Clients (anderem PC im Netzwerk) auf den SQL-Server funktioniert mit dem gleichen Skript auch wenn ich am Server-PC nicht eingeloggt bin. Das Problem war übrigens mit dem gleichen Skript, sowie der gleichen Aufgabenplanung an unserem alten Server (SQL Server 2014) möglich. Nun mit dem neuen PC mit SQL Server 2022 funktionierts nicht mehr.

Ein Vergleich der Einstellungen im SQL Server Configuration Manager brachte nur Unterschiede beim SQL Native Client 11.0. Hier war bei dem funktionierenden System etwas hinterlegt bei dem neuen System sind keine Einträge vorhanden. Könnte es daran liegen?

Verzweifelte Grüße
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Hallo liebe Gemeinde,

ich versuche schon seit Stunden das folgende Problem zu lösen und hoffe auch Hilfe von Erfahrenen Usern:
Ich möchte eine SQL-Abfrage durch die Windows 11 Aufgabenplanung beim Systemstart starten, also noch bevor ein Windowsnutzer am Server-PC angemeldet sein muss. Die Abfrage erfolgt hierbei durch ein Python-Skript, welches in eine bat-Datei eingebettet ist. (Mit einer batch-Datei und sqlcmd habe ich es aber auch schon versucht.)

Zu meinem Problem: Solange ich die Aufgabe direkt in der Aufgabenplanung starte funktioniert alles. Also ich bin am System als Nutzer angemeldet. Startet Sie automatisch beim Systemstart erhalte ich in meinem Logfile folgende Fehlermeldung:



Also keine Verbindung zum SQL-Server möglich! Ein Zugriff von externen Clients (anderem PC im Netzwerk) auf den SQL-Server funktioniert mit dem gleichen Skript auch wenn ich am Server-PC nicht eingeloggt bin. Das Problem war übrigens mit dem gleichen Skript, sowie der gleichen Aufgabenplanung an unserem alten Server (SQL Server 2014) möglich. Nun mit dem neuen PC mit SQL Server 2022 funktionierts nicht mehr.

Ein Vergleich der Einstellungen im SQL Server Configuration Manager brachte nur Unterschiede beim SQL Native Client 11.0. Hier war bei dem funktionierenden System etwas hinterlegt bei dem neuen System sind keine Einträge vorhanden. Könnte es daran liegen?

Verzweifelte Grüße
Moin. Da ist ein Fehler in deinem Connection-String. Aber ohne diesen zu sehen, kann keiner dir helfen. Übrigens, der SQL Server 2022 benutzt nicht mehr den Native Client, nur noch ODBC 17 soll verwendet werden.
 

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Danke dir @mvh für die schnelle Antwort. Hier der Connection-Befehl aus Python:
... engine = create_engine('mssql+pyodbc://sa:passwort@192.168.178.24,61935/eazybusiness?driver=ODBC+Driver+17+for+SQL+Server') ...
und dieser wird so per batch gestartet:
@echo off
cd /d %~dp0
set LOGFILE=D:\ WAWI-Zubehoer\Zielemonitor\ log.txt
echo "Starting Dash server" > %LOGFILE%
cd D:\WAWI-Zubehoer\Zielemonitor\
echo "Changed directory to %CD%" >> %LOGFILE%
C:\Python\WPy64-3870\python-3.8.7.amd64\python.exe zielemonitor.py >> %LOGFILE% 2>&1
echo "Dash server started" >> %LOGFILE%
und hier die Einstellung in der Aufgabenplanung. Achso als Dienst mithilfe von "nssm" hatte ich die batch auch schon eingerichtet. Funktioniert auch nicht.



und das ist der Fehlercode der hier im Logfile geschrieben wird:
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.\r\n (10061) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]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. (10061)')

Aber wie gesagt auf dem alten Rechner (SQLServer 2014 / Windows 10) hatte dieser wunderbar funktioniert.


Übrigens, der SQL Server 2022 benutzt nicht mehr den Native Client, nur noch ODBC 17 soll verwendet werden.
Das ist schon mal gut zu wissen, dann erklärt es auch warum da nichts eingetragen ist.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Moin. Ich nehme an, dein sql server ist mit dynamischen Port konfiguriert. Oder ist 61935 ein Fester. Wenn dynamisch, dann bitte ohne Port und mit Instanznamen verwenden. Der SQL server Browser läuft? Ist die Firewall richtig für dynamische Ports konfiguriert. Startet sql server als Dienst Automatisch verzögert?
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.513
454
Ich denke, du machst zu viele Baustellen auf einmal auf. Sowas erschwert die Fehlersuche.
  • Ich würde die Verbindung erstmal mit sqlcmd testen
  • Wenn du unbedingt python für dein Skript nutzen musst, würde ich wie von MS dokumentiert direkt den Python-SQL-Treiber pyodbc nutzen und nicht auch noch mit einem ORM zusätziche Komplexität einbauen
Gibt es einen speziellen Grund, warum du in deiner .bat nicht einfach sqlcmd aufrufst?

Wen schon phython, dann erstmal so wie es dokumentiert ist anfangen:
Python:
import pyodbc
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
conn = pyodbc.connect(connectionString)
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Im SQL Server Configuration Manager steht bestimmt der dynamischer Port bei 32-bit und 64-bit.
In diesem Fall den Instanznamen verwenden: 192.168.178.24\JTLWAWI und nicht 192.168.178.24,61935
oder den Port 61935 als festen Port festlegen
 

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Im SQL Server Configuration Manager steht bestimmt der dynamischer Port bei 32-bit und 64-bit.
In diesem Fall den Instanznamen verwenden: 192.168.178.24\JTLWAWI und nicht 192.168.178.24,61935
oder den Port 61935 als festen Port festlegen
In der Rubrik SQL Server-Netzwerkkonfiguration (32Bit) stehen keine Elemente, siehe Anhang.
In der Rubrik SQL Server-Netzwerkkonfiguration steht die dynamische IP drin.

Nur den Instanznamen verwenden hat leider nichts gebracht. Hier funktioniert es sogar nicht mehr, wenn ich es händisch starte. Wie kann ich den Port denn fest einstellen?

Moin. Ich nehme an, dein sql server ist mit dynamischen Port konfiguriert. Oder ist 61935 ein Fester. Wenn dynamisch, dann bitte ohne Port und mit Instanznamen verwenden. Der SQL server Browser läuft? Ist die Firewall richtig für dynamische Ports konfiguriert. Startet sql server als Dienst Automatisch verzögert?
Ja, der SQL server Browser wird als Dienst Automatisch gestartet.
Ja, der Dienst SQL Server (JTLWAWI) startet Automatisch verzögert.
In der Firewall habe ich diese Einstellungen, siehe Anhang konfiguriert. Und dies zunächst für alle Profile, also Domäne, Privat und Öffentlich. Wie gesagt extern von anderem PC komme ich ja auch auf den SQL Server und kann sogar das Skript starten.
 

Anhänge

  • Screenshot 2024-07-03 095426.png
    Screenshot 2024-07-03 095426.png
    35,4 KB · Aufrufe: 8
  • Screenshot 2024-07-03 095701.png
    Screenshot 2024-07-03 095701.png
    78,6 KB · Aufrufe: 8
  • Screenshot 2024-07-03 101940.png
    Screenshot 2024-07-03 101940.png
    35,7 KB · Aufrufe: 8

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Ich denke, du machst zu viele Baustellen auf einmal auf. Sowas erschwert die Fehlersuche.
  • Ich würde die Verbindung erstmal mit sqlcmd testen
  • Wenn du unbedingt python für dein Skript nutzen musst, würde ich wie von MS dokumentiert direkt den Python-SQL-Treiber pyodbc nutzen und nicht auch noch mit einem ORM zusätziche Komplexität einbauen
Gibt es einen speziellen Grund, warum du in deiner .bat nicht einfach sqlcmd aufrufst?

Wen schon phython, dann erstmal so wie es dokumentiert ist anfangen:
Python:
import pyodbc
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
conn = pyodbc.connect(connectionString)
Ja, ich habe auch sqlcmd schon probiert und getestet. Die Verbindung funktioniert mit sqlcmd, wenn ich als Windows Nutzer angemeldet bin und es händisch starte. Wenn ich es wieder über die Aufgabenplanung starte funktioniert es nicht. Es scheint also nicht am Python-Code zu liegen, da es über sqlcmd auch nicht funktioniert.

Der einzige Unterschied, den ich zu deinem obigen Code sehe ist die Version von ODBC Driver. Hier im Beispiel wird die Version 18 verwendet. Ich hatte die 17 verwendet, da der Code schon ein paar Tage alt ist und auch bisher auf der alten Maschine immer funktioniert hat.

Der Gründe warum ich nicht aus der .bat direkt mit sqlcmd abrufe sind vielfältig. Der Hauptgrund ist allerdings, dass ich mit Python ein Dash starte und dort aktuelle Zahlen aus der WAWI abfrage, welche aller paar Minuten aktualisiert werden. Wenn ich die Abfrage über sqlcmd machen würde, müsste ich es immer erst in eine Datei schreiben und dann wieder einlesen.
 

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Nur den Instanznamen verwenden hat leider nichts gebracht.
Hier kommt übrigens dann dieser Fehler:
(pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [2]. (2) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]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. (2)')
(Background on this error at: http://sqlalche.me/e/13/e3q8)
Daraufhin habe ich NamedPipes im SQL Server Configuration Manager noch aktiviert. Leider immernoch derselbe Fehler.
 

dein-brandstempel

Aktives Mitglied
20. November 2020
40
15
Ich habs erstmal hinbekommen!!! 🎉
Die Lösung: Ich habe den SQL Server Dienst von "Automatisch verzögert" auf "Automatisch" gestellt. Nun startet er mein Skript auch aus der Aufgabenplanung. Die Frage ist jetzt nur, ob diese Änderung evtl. später andere Fehler hervorrufen kann? Wenn nein, warum ist SQL Server auf Automatisch verzögert eingestellt und nicht auf Automatisch?
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Moin.
Genau deswegen war meine Frage, ob der Dienst als "Automatisch verzögert" läuft oder nicht.
Und Nein - lieber nicht umstellen, weil der SQL Server immer als "letzter" gestartet werden soll,
also nach allen anderen "Diensten", sonst kann es dazu kommen, dass der SQL Server evtl. nicht startet
oder die Verbindungen nicht akzeptiert.
Aber wenn Du schon umgestellt hast - testen und beobachten.
Meine Lösung wäre - die Aufgabe verzögert starten, sagen wir für 5 Minuten (s. Trigger).
 
  • Gefällt mir
Reaktionen: dein-brandstempel

mvh

Sehr aktives Mitglied
26. Oktober 2011
748
266
Oder noch schlauer:
Einen Trigger "Bei einem Ereignis" erstellen
mit SQL Server Instanz (in unserem Beispiel MSSQL$JTLWAWI) als Quelle
und der Ereignis-ID 17162 (Start der Instanz)

sqlserverinstanzereignis.png
 
  • Gefällt mir
Reaktionen: dein-brandstempel
Ähnliche Themen
Titel Forum Antworten Datum
Neu Fehler bei Connector Shopify-Connector 2
Neu Fehler bei Export mit Versandart DHL / Die Sequenz enthält keine Elemente. JTL-ShippingLabels - Fehler und Bugs 0
Fehler bei Hochladen der Versanddaten Otto.de - Anbindung (SCX) 0
Neu Fehler bei Update: "SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'emails' already exists" Installation / Updates von JTL-Shop 2
Neu Statt Preis nur Preis auf Anfrage bei B2B Fehler JTL-Shop - Fehler und Bugs 1
Fehler bei JTL-Update (1.5.55.8 -> 1.7.15.6) "Arithmetischer Überlauffehler beim Konvertieren von expression in den int-Datentyp." JTL-Wawi 1.7 9
Neu Fehler bei Abgleich von Kategorien zu Shopify Shopify-Connector 0
[BUG]🪲 -Auftrag nicht mehr Speicherbar- Fehler bei Auslieferung einer Stückliste über mehrere Lieferanten JTL-Wawi 1.9 8
Neu Fehler beim Zugrif aus die Datenbank (Exec Direct) JTL-Wawi - Fehler und Bugs 1
Neu Fehler im Statistik Modul User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi Fehler - Auftrag öffnet im Hintergrund JTL-Wawi - Fehler und Bugs 8
Wawi 1.9.5.0 Zahlungsmodul Paypal Fehler + Bankkonto Fehler JTL-Wawi 1.9 12
Neu Fehler: "Abgleich soll nicht durchgeführt werden" Amazon-Anbindung - Fehler und Bugs 3
Neu Plugin: WooCommerce Wallet oder Gutscheine mit JTL nutzen - Fehler in der MwSt User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Plugin fuer Wordpress Plugin wirft Error/success Fehler WooCommerce-Connector 2
Neu Amazon Abgleich Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt Amazon-Anbindung - Fehler und Bugs 18
Neu Fehler-Log - Error executing query SELECT SUM JTL-Shop - Fehler und Bugs 3
Neu Amazon Abgleich Fehler Gelöste Themen in diesem Bereich 6
Neu DPD Fehler Etikettendruck ("An existing connection was forcibly closed by the remote host") Gelöste Themen in diesem Bereich 3
Neu JTL Shop 5 Fehler beim Abglich JTL-Shop - Fehler und Bugs 9
Neu Nach Datenbank-Migration Fehler: keine Lieferzeit usw. JTL-Shop - Fehler und Bugs 1
PayPal Zahlungsabgleich Ausgang Fehler 10001 Internal Error JTL-Wawi 1.8 0
Neu Dringende Hilfe benötigt: JTL-Connector Fehler beim Shopware-Abgleich Shopware-Connector 15
Neu Amazon Abgleich Fehler - Hotfix für Version 1.5.55.8 funktioniert nicht JTL-Wawi - Fehler und Bugs 7
Fehler beim Update des Mandaten easybusiness JTL-Wawi 1.9 2
Neu Fehler mit der Synchronisation zwischen Shop und WaWi JTL-Shop - Fehler und Bugs 1
Neu Dringende Hilfe benötigt: JTL-Connector Fehler beim Shopify-Abgleich trotz "200 OK" - Hat jemand eine Lösung? Shopify-Connector 1
Fehler und Bugs nach Update von 4.06 auf 5.3.3 mit Lösungen Sammelthread Upgrade JTL-Shop4 auf JTL-Shop5 3
Neu Fehler "Die eingegebenen Variantenmerkmale stimmen nicht mit den Variantenmerkmalen der Varianten des Artikels überein." eBay-Anbindung - Fehler und Bugs 0
Neu Fehler beim Update des Shops - DB Migration Installation / Updates von JTL-Shop 1
Gelöst Schwerwiegender JTL-Vouchers Fehler in Ihrem Shop JTL-Vouchers - Fehler und Bugs 3
Neu Update auf 5.3.3 - JTL Widgets erzeugt Fehler in CampaingController.php JTL-Shop - Fehler und Bugs 2
Neu Amazon Fehler: "Listenpreis mit Steuern" Amazon-Lister - Fehler und Bugs 2
Lizenzabruf Fehler 1.9.4.6 JTL-Wawi 1.9 6
Neu Fehler in Abonenntensuche Newsletter JTL-Shop - Fehler und Bugs 0
Neu email smtp Fehler Allgemeine Fragen zu JTL-Shop 0
Neu Kategorie Beschreibung Import für andere Sprachen Fehler JTL-Ameise - Fehler und Bugs 2
Neu 5.2.3 ADMINISTRATION -> sitemap -> sitemap_0.xml.gz -> in ArtikelURL Fehler JTL-Shop - Fehler und Bugs 0
Neu TSE Fehler PIN_BLOCKED JTL-POS - Fehler und Bugs 1
Neu Einbindung von Videos führt zu 500 Fehler JTL-Shop - Fehler und Bugs 5
Neu CSS Gutschein Premium - Einzweckgutscheine - Fehler beim Einlösen Plugins für JTL-Shop 1
Gelöst Fehler in den Steuereinstellungen Allgemeine Fragen zu JTL-POS 3
[Error][Code:21920380] wir erhalten diesen Fehler eBay-Anbindung - Fehler und Bugs 1
Neu 26.06.2024 Abgleich Fehler Amazon-Anbindung - Fehler und Bugs 45
Neu amazon / Ein Fehler ist aufgetreten, bitte beim JTL-Support melden JTL-Wawi - Fehler und Bugs 295
Neu Ablage von E-Mails bei einem Auftrag User helfen Usern - Fragen zu JTL-Wawi 4
Wie lange benötigt bei euch die Wawi zum starten JTL-Wawi 1.9 1
Neu Artikeletiketten bei Wareneinang nicht automatisch drucken Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu QR Code auf Rechnung bei PayPal fehlerhaft User helfen Usern - Fragen zu JTL-Wawi 0
Neu Hilfe bei Workflow - falsche Steuernummer bei Amazon hinterlegt User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen