[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... 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.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    393
    Ich liebe PC Gedöns ...
    Eine Suche nach 'ms-sql SQLSTATE 08S03, SQLCODE -30060' hat mir hier 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?

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    393
    @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 ?

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... 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.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    https://docs.microsoft.com/de-de/dot...-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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Sep 2005
    Beiträge
    393
    @DB
    DAS wars, danke
    vllt kannst du das bei Gelegenheit in der Doku ergänzen

    @alle
    Danke für Eure Bemühungen

  7. #7
    Registriert seit
    Sep 2005
    Beiträge
    393

    Doch noch nicht so ganz ...

    Sehr seltsam.
    JVAGATE gestartet
    läuft

    STRSQL
    Connect to XXXXX01
    funktionierte

    select * from DB.dbo.efm_Tabelle
    funktioniert

    disconnect all
    finktioniert

    JVAGATE beendet (mit 4 * immed) oder geht das anders?
    Weg isser


    JVAGATE gestartet
    läuft

    Connect to XXXXX01
    Weitere Nachrichteninformationen

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

    Nachricht . . . : Ausnahmebedingung bezüglich Verbindung - SQLSTATE 08003,
    SQLCODE -30061.
    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.
    Der GET DIAGNOSTICS MESSAGE_TEXT lautet .
    Der GET DIAGNOSTICS DB2_TOKEN_COUNT ist 0.
    Der GET DIAGNOSTICS DB2_TOKEN_STRING ist .
    geht das nur ein mal am Tag? <Scherz>

    Was hab ich falsch gemacht?

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Zitat Zitat von ILEMax Beitrag anzeigen
    Sehr seltsam.
    JVAGATE gestartet
    läuft

    STRSQL
    Connect to XXXXX01
    funktionierte

    select * from DB.dbo.efm_Tabelle
    funktioniert

    disconnect all
    finktioniert

    JVAGATE beendet (mit 4 * immed) oder geht das anders?
    Weg isser


    JVAGATE gestartet
    läuft

    Connect to XXXXX01


    geht das nur ein mal am Tag? <Scherz>

    Was hab ich falsch gemacht?
    ... JVAGATE ist ein Server Job: einmal starten, dann einfach laufen lassen.

    Ansonsten noch:
    - remote connections laufen unter commit, was für den disconnect bedeutet, dass der nur an einer commit grenze geht. Am einfachsten ist:
    exec sql connect to myrdb;
    // wenn alles fertig ist:
    exec sql release myrdb;
    exec sql commit;

    - disconnect all beendet alle connects, auch den lokalen (den SQL implizit gemacht hat). Das hat ungewollte Auswirkungen auf nachfolgende Programme im Job und sollte man bleiben lassen.

    - get diagnostics ist nyi (not yet implemented)
    - relevant ist der SQLSTATE, SQLCODE wird lediglich von ArdGate vom SQLSTATE abgeleitet und ist nur ein Schätzwert.
    - in der Doku und im Verzeichnis JVATEST.LIB sind Beispiele, an denen man sich orientieren kann (und sollte).

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Wobei ein Disconnect ignoriert wird (SQLCODE), wenn ein Commit noch offen ist.
    Nach einem Select ist der i.d.R. jedoch nicht erforderlich.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Sep 2005
    Beiträge
    393
    Hallo *ALL,

    Das funktioniert erstmal ganz gut, Danke D*B!!

    Eine Frage / Bitte hätt ich noch:
    Wenn ich das interaktiv im STRSQL mache, sind danach meine Sitzungsattribute verstellt.
    Da passt nix mehr.
    Gibt es eine Möglichkeit
    - Diese nicht zu verändern (ovrdbf lib/file tofile qtemp/file ovrscope(*job)
    - die vorher zu sichern und danach zu restoren

    Danke
    Der ILEMax

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... remote connects erfordern in jedem Fall commit, was automatisch geändert wird, falls erforderlich. Sinnvoll ist auch naming(*SQL). STRSQL merkt sich das user und session bezogen, man kann aber auch die Startoptionen beim Aufruf mitgeben. Patentlösung kenne ich da eigentlich keine - am ehesten noch einen eigenen Startcommand oder sich an *SQL und commit gewöhnen (mache ich eh seit langem).

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •