Neu Fehler mit Zugriff auf die Datenbank (Exec Direct).

realitor

Aktives Mitglied
14. Januar 2013
72
18
Ich bitte um Unterstützung.

Ergänzungen / Änderungen am Beitrag:
  • Die Wawi-Version "Neue Oberfläche" funktioniert einwandfrei. Die normale Version nicht. Egal ob direkt auf dem Rechner mit dem SQL-Server oder einem PC im Netzwerk.
  • Das Anlegen eines Mandanten mit dem JTL-DB-Tool und das direkte Einspielen eines Backups (egal wie groß / klein oder welche Version) bricht mit demselben Fehler ab.
Ausgangslage:
  • Ein bestehender Server wird mit JTL 1.9.4.6 und SQL2019 verwendet.
  • Ein neuer Server wurde mit SQL2022 Standard bereitgestellt.
Vorgehensweise:
  1. Backup wurde von SQL2019 Quellcomputer zu SQL2022 Zielcomputer übertragen.
  2. JTL 1.9.4.6 wurde auf dem Zielcomputer installiert.
  3. Nach der Anmeldung endet JTL mit einem Fehler "Fehler mit Zugriff auf die Datenbank (Exec Direct)."
    [Fehlerprotokoll: Unbehandelte Ausnahme #761E037A5E9D6536 vom Typ jtlCore.Classes.CppConnector.CppException in jtlCore.Classes.CppConnector.CppException: Fehler beim Zugriff auf die Datenbank (Exec Direct).]
  4. Alle Aktivitäten wurden innerhalb Windowssitzung als Administrator unter Server 2022 Standard ohne aktive Domäne (mit und ohne Remote).
  5. Zum Zeitpunkt des Fehlers sind keine Fehlereinträge beim SQL-Server-Log oder in den Ereignisprotokollen des Windows-Server sichtbar.
  6. Das Profil wurde mit und ohne dynamische Ports mit folgenden Varianten getestet:
    1. Ip,Port\Instanzname
    2. Servername,Port\Instanzname
    3. Ip\Instanzname,Port
    4. Servername\Instanzname,Port
Maßnahmen:
  • Mehrere Versuche und Überprüfungen brachten keine Verbesserung. Dazu zählten auch die Überprüfung des SA-Nutzers, des DBO-Schemas und den Grundeinstellungen des SQL-Servers. Die gemischte Anmeldung ist aktiviert.
  • Auch das Neuanlagen der Datenbank eazybusiness im neuen Server oder das Verwenden der aktuellsten JTL-Version 1.9.5.4 brachte keine Änderung. Das Update von 1.9.4.6 zu 1.9.5.4 ist mit leerer Datenbank oder Bestandsdatenbank (183 GB) fehlerfrei.
  • Individuelle Abfragen im SMSS ( Konsole sind fehlerfrei. Prozeduren könnten fehlerfrei ausgeführt werden.
  • Die Instanz ist im Netzwerk erreichbar.
  • Eine eigene C#-Anwendung mit SQL-Zugriff und eigener Datenbank in der selben Instanz wurden installiert und funktionieren.
  • Der SQL-Server wurde neu installiert und Grundeinstellungen vorgenommen.
Dabei sind folgende Auffälligkeiten bemerkt worden.
  1. Beim Anlegen des Mandanten muss der Expertenmodus und zwingend Pfade für mdf und ndf gewählt werden. Dabei stand auf dem Laufwerk C: nur der JTL-Installationsordner zur Wahl. Das JTL-Datenbank-Tool hatte also nur Zugriff auf den eigenen Installationsordner. Alle anderen Laufwerke waren verfügbar. Auch bei Wahl eines individuellen Ordners auf einem anderen Datenträger führte zum selben Fehler.
  2. Trotz des Fehlers ist die Anwendungen JTL-WMS und JTL-Ameise fehlerfrei und erlaubt alle denkbaren Interaktionen, sofern nicht die Lizenzabfrage störte.
 
Zuletzt bearbeitet:

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Schau dir mal mit dem SQL-Profiler an, welche SQL Befehle bis zum Zeitpunkt des Abbruchs an den Server übertragen werden. Vielleicht kommst du dann eher dahinter, was den Fehler verursacht.
 
  • Gefällt mir
Reaktionen: realitor

realitor

Aktives Mitglied
14. Januar 2013
72
18
Vielen Dank für den Hinweis.

Dieser Merge wird nicht mehr ausgeführt. Die Spalte cValue mit dem Schlüssel cKey (AnonymousWawiSeed) enthält den vorherigen Wert. Der unmittelbar vorher stattfindende Merge auf tOptions setzt den WawiSeed erfolgreich. Bei jedem Login wird versucht den AnonymousWawiSeed mit einem neuen Wert zu belegen.

Code:
exec sp_executesql N'
MERGE INTO
eazybusiness.dbo.tOptions AS myTarget
USING (VALUES (@Key, @Value)) AS mySource(cKey, cValue)
ON mySource.cKey = myTarget.cKey
WHEN NOT MATCHED BY TARGET THEN
INSERT (cKey, cValue) VALUES (mySource.cKey, mySource.cValue);
SELECT
cValue
FROM
eazybusiness.dbo.tOptions
WHERE
cKey = @Key;',N'@key nvarchar(500),@value nvarchar(500)',@key=N'AnonymousWawiSeed',@value=N'81C9965E67082295'

Danach erzeugt der Transactionsmanager Einträge und in der Folge werden die Daten für das Fehlerprotokoll gesammelt.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Der Code, den du da postet sieht aber nicht nach einem Dump vom SQL Profiler aus. Was hast du denn da ausgelesen?

Aber wie auch immer, was ich aus dem was du schickst so vermute, ist das in deiner Datenbank in tOptions solch ein Datensatz angelegt ist:
cKey: AnonymousWawiSeed und cValue: irgendwas ungleich 81C9965E67082295

Ist alles so ein bisschen stochern im Nebel, aber ich würde jetzt erstmal tippen dein Client sendet halt einen AnonymousWawiSeed, der nicht dem entspricht, der in der Datenbank steht.
Ich würde jetzt auf dem Client ein neues Datenbankprofil anlegen.
 

Ähnliche Themen