Anmelden

View Full Version : ARTGATE und MS-SQL



Seiten : [1] 2

ILEMax
17-01-20, 08:19
Hallo
ich habe mal das ARTGATE von BD installiert.
erstmal ein Lob und ein dickes danke an DieterBender dafür!
Die Doku ist super, ich habe (fast) alle hin bekommen.

Was geht nicht ...

Ich bekomme keine Verbindung zu der MS-SQL Datenbank.

in den global.properties ist definiert

...
ard.driver.XXXXX01=com.microsoft.sqlserver.jdbc.SQ LServerDriver
ard.url.XXXXX01=jdbc:sqlserver://SEVERNAME\INSTANZNAME;user=user;password=pwort

Den Backslash zwischen Server und Instanz habe ich auch als slash versucht.
Über Excel, von einem beliebigen PC im Netz, komme ich mit den Einstellungen
//SEVERNAME\INSTANZNAME;user=user;password=pwort auf die DB


connect to XXXXX01
Ausnahmebedingung bezüglich Verbindung - SQLSTATE 08S01, SQLCODE -30



hat einer ne Idee?

Der ILEMax

malzusrex
17-01-20, 08:40
Hallo ILEMax,

ich hatte das auch im Einsatz und bei mir sah das so aus


ard.url.SERVERNAME=jdbc:jtds:sqlserver://192.nnn.nnn.nn:1433
ard.driver.SERVERNAME=net.sourceforge.jtds.jdbc.Dr iver



PWD und User werden dann beim Connect mitgegeben

Aber sprich doch Dieter mal direkt an. Der hilft dir weiter.

Gruß
Ronald

Fuerchau
17-01-20, 08:50
https://docs.microsoft.com/de-de/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15

Probiere mal einen anderen Verbindungsstring:
jdbc:sqlserver://;servername=server_name...

ILEMax
17-01-20, 09:13
@Ronald
das ging nicht

Weitere Nachrichteninformationen

Nachrichten-ID . . . . : SQL7802 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Information

Nachricht . . . : Ausnahmebedingung bezüglich Verbindung - SQLSTATE 08S03,
SQLCODE -30060.
Ursache . . . . : Im Anwendungsserver ist eine Ausnahmebedingung für die
Verbindung aufgetreten. Entweder werden SQLSTATE und SQLCODE von SQL nicht
erkannt oder GET DIAGNOSTICS DB2_TOKEN_STRING ist für die entsprechende
SQL-Nachricht nicht gültig.

ILEMax
17-01-20, 09:20
@Fuerchau
bei
ard.url.XXXXX01=jdbc:sqlserver://SERVERNAME;instanceName=INZTANZ

bekomm ich

Weitere Nachrichteninformationen

Nachrichten-ID . . . . : SQL7940 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Information

Nachricht . . . : SQLSTATE-Klasse unbekannt - SQLSTATE S0001, SQLCODE -901.
Ursache . . . . : Die SQLSTATE zugeordnete Klasse, die vom Anwendungsserver
zurückgegeben wurde, ist für dieses System nicht gültig.
Der GET DIAGNOSTICS MESSAGE_TEXT lautet .
Der GET DIAGNOSTICS DB2_TOKEN_COUNT ist 0.
Der GET DIAGNOSTICS DB2_TOKEN_STRING ist .

BenderD
17-01-20, 09:20
... die Installation von ArdGate und des Treibers sind erst mal korrekt. Bei Fehlern zuerst mit dem SQLSTATE, JDBC und der Treiberklasse die allwissende Müllhalde fragen.

Für MS SQL Server ist meist der JTDS Treiber die bessere und einfachere Wahl.

Ich probiere die Verbindungen meist zuerst mit SQirreL aus und übertrage dann die Einstellungen in die global.properties.

Oft findet man noch was in den Java log Dateien (im Unterverzeichnis logs der Installation. Dazu stellt man das logging vorher in den log4j.properties auf debug.

Nach Einstellungsänderungen muss der Server neu gestartet werden, da er die Einstellungen cached.

D*B

PS: get diagnostics etc. wird von ArdGate derzeit (noch) nicht unterstützt.

ILEMax
17-01-20, 10:20
Ich liebe PC Gedöns ...
Eine Suche nach 'ms-sql SQLSTATE 08S03, SQLCODE -30060' hat mir hier (https://archive.midrange.com/midrange-l/201711/msg00440.html) erzählt ich müsste den Server noch in cfgtcp 10 eintragen.
Hat aber nicht geholfen.
SQirreL kann ich auf 'meiner VM' beim Kunden nicht installieren, von mir aus komme ich nicht ins Netz.
Wenn noch jemand mal eine MS-SQL / Artgate Verbindung hinbekommen hat, bin für jeden Tip dankbar.
Mit dem Java.log versuche ich als nächstes, eine Ursache zu finden.
Nur zur Sicherheit ... Der User, mit dem ich den Connect versuche muß NICHT auch auf der i existieren, Oder?

ILEMax
17-01-20, 11:11
@DB
kann es sein, das das Passwort auf 10 Zeichen beschränkt ist?
Und der user in Großbuchstaben sein muß?

Oder wird das im LOG nur so dargestellt ?

BenderD
17-01-20, 12:13
... das hängt davon ab, woher der User kommt. Wenn Benutzer und Kennwort beim sql connect mitgegeben werden, dann hängt es von DB2/400 ab, was da an ArdGate durchgereicht wird. Probleme gibt es dann, wenn der user case sensitive ist und die Länge ist auf 10 Stellen beschränkt.
Das kann man umgehen, wenn man den Benutzer und Kennwort in den global.properties hinterlegt:
ard.properties.MYRDBNAME.user=myUser
ard.properties.MYRDBNAME.password=myPassWord

das überschreibt dann die Eingabe beim connect und wird transparent durchgereicht.

D*B

PS: existieren muss der remote user lokal nicht.

Fuerchau
17-01-20, 12:35
https://docs.microsoft.com/de-de/dotnet/framework/data/adonet/sql/authentication-in-sql-server

Das Problem ist, das die Standard Methode die Windows-Authentifizierung ist, die hier natürlich nicht geht.

Integrated Security=false;

Des weiteren muss der User ggf. noch extra in der DB berechtigt werden, da standardmäßig AD-User in der Form "Domäne/UserName" mit ihrem Kennwort angemeldet werden.
Vielleicht muss auch noch die Nicht-AD-Anmeldung bzw. die gemischte Anmeldung am SQL-Server erlaubt werden.