[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    40

    Exclamation DB2 Connect unter Linux - Probleme

    Hallo,

    wer kann helfen ?

    Wir haben DB2 Coonect auf einer Linux Büchse eingerichtet und gem. des Howto von Stefan Dreyer (http://www.phptutorials.de/index.php?article=12&tpl=2) eingerichtet.

    AS/400 Voraussetzungen sind ebenfalls erfüllt.

    Beim Connect bekommen wir einen Fehler: SQL0332N There is no available conversion for the source code page "923" to the target code page "UNKNOWN". Reason Code "1". SQLSTATE=57017

    Auf diesen weist der Hr. Dreyer in seinem Howto ja auch hin:

    "Soweit schon ganz gut. Nachdem der Dienst gestartet wurde, habe ich dann bei einem Connect folgende Fehlermeldung erhalten:
    SQL0332N There is no avaiable conversion for the source code page "65535" to the target code page "819". Reason Code "1". SQLSTATE=57017

    Das heisst also, dass die beiden sich bei der Konvertierung nicht verstehen. Die Konvertierung kann man global einstellen, bei uns war das aber nicht möglich, da sich auf der Datenbank ein produktiver Datenbestand befindet. Der einfachste Weg besteht darin dir Codepageumsetzung CCSID für den entsprechenden User, den auf die DB zugreift zu ändern:
    CHGUSRPRF USRPRF(test) CCSID(273)
    Die obige Zuordnung funktioniert einwandfrei, es kann aber auch sein, dass es auch andere Funktionieren Zuordnungen gibt. "


    Die CCSID für den entsprechenden User haben wir geändert, der Fehler taucht jedoch immer noch auf !

    Hat jmd. eine Idee, was das Problem sein könnte ?

    Danke schonmal im Voraus !!!

    mfG
    O. Hölscher

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    CCSID 65535 ist eigentlich für *HEX-Daten bestimmt.
    Die CCSID des Users hat mit der Konvertierung nichts zu tun !!!

    Die CCSID 65535 muss sich wohl in der Datenbank befinden (DSPFD/DSPFFD). Ich kenne zwar DB2/Connect nicht, aber vielleicht gibts da ja ein ähnliches Flag wie beim iSeries-Access: "Convert 65535 = 1 bzw. true" (Windows-ODBC-Einstellung, Verbindungszeichenfolge).

    Sollte es das nicht geben, hilft leider nur ein Casting im Select:

    select char(myfield, len, 273) as myfield ... from

    Dadurch wird zwangsläufig eine Konvertierung in 273 (Deutsch) vorgenommen, so dass in 819 (ANSI) gewandelt werden kann.
    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

  3. #3
    Registriert seit
    Jun 2004
    Beiträge
    40
    Tja, bis zum Select kommen wir ja gar nicht, da der Fehler schon direkt beim Connect zur Datenbank auftritt.

    Olli

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da hilft wohl nur, den Systemwert QCCSID auf eine gültige ID zu setzen.
    Schau mal nach, welche CCSID die Datei QSYS/QADBXREF (DSPFD) hat. Diese CCSID stellst du in den Systemwert.
    Prüfe auch mal den Systemwert QCHRID. Dieser müsste bereits korrekt gesetzt sein.

    Das Problem liegt wohl darin, dass DB2/Connect wohl auf die SYS*-Dateien der QSYS2 zugreifen will und dafür bereits eine Codewandlung durchgeführt werden muss.

    Es kann allerdings auch sein, dass eine Codepage 819 nicht verfügbar ist und deshalb z.B. 850 (ASCII) verwendet werden sollte. Dies ist allerdings im Linux ?! einzustellen !
    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

  5. #5
    Registriert seit
    Jun 2004
    Beiträge
    40
    Also, ich will jetzt nicht unbedingt den Systemwert QCCSID ändern, da es sich hier um ein produktives System handelt...

    QCCSID ist 65535
    In der QADBXREF ist die CCSID 273
    QCHRID: Zeichensatz-ID: 697, CCSID: 273

    Im USRPRF kann man ja die CCSID auch vorgeben. Standardmässig ist dort *SYSVAL vorgegeben. Das habe ich ja bereits auf 273 geändert. Was ja im Prinzip den gleichen Effekt haben sollte, als wenn ich *SYSVAL stehen lassen würde und den Systemwert ändere...

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dem ist leider nicht ganz so, da einige Job's unter QUSER laufen.
    Ändere doch zusätzlich auch mal QUSER auf 273.

    Unter Google bin ich auf folgende Links gestossen:
    http://www-1.ibm.com/servers/eserver...2/db22drda.htm

    Alternativ probiere doch mal iSeriesAccess for Linux aus

    Ansonsten kommst du wohl nicht darum herum, QCCSID auf 273 zu setzen (für die laufende Anwendung keine Auswirkung!!!).
    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

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241

  8. #8
    Registriert seit
    Jun 2004
    Beiträge
    40
    Danke. Das Tutorial ist mir aber schon bekannt... (s.o.)

    Auf der IBM Seite steht übrigens: Furthermore, to successfully connect, you may need to change one of the following: the CCSID of the job, the CCSID of the user profile used, or the system CCSID value (QCCSID) if it's the default 65535.

    Das heisst für mich, dass der Systemwert nicht unbedingt geändert werden muss... Womit ich also wieder genauso weit wäre, wie am Anfang...

    Gruß,
    Olli

  9. #9
    Registriert seit
    Jun 2004
    Beiträge
    40
    Übrigens brachte auch die Änderung der CCSID im USRPRF QUSER nichts... Fehlermeldung ist weiterhin die gleiche !

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dann probier doch wenigstens mal die Änderung des Systemwertes auf 273 aus !
    Du vertust dir dabei nix.
    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

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wo kommt die CCSID 923 denn her ???
    Von 273 nach 923 geht tatsächlich nicht !
    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

  12. #12
    Registriert seit
    Jun 2004
    Beiträge
    40
    das Problem ist übrigens kein Problem aus AS/400 Seite... wir haben auf nem Windows Rechner das DB2 Connect installiert und da läuft es ohne Probleme...

    Davon abgesehen ist der Zugriff über DB2 Connect aber ein ziemliches Sicherheitsrisiko, wie wir feststellen mussten...
    Wir setzen das Security Tool PCSACC/400 von Busch & Partner ein.
    DB2 Connect verwendet DRDA/ODBC Treiber und da kann man lediglich den generellen Zugriff auf die AS/400 Daten zulassen oder generell blocken... eine Prüfung auf Dateiebene ist nicht möglich. Eine Prüfung erfolgt lediglich beim Connect...
    Nicht so dolle. Bei "normalen" ODBC Treibern kann man derartige Zugriffe blocken...

    Frage: Gibt es eigentlich einen ODBC Treiber für die iSeries unter Linux ???

Similar Threads

  1. Problem mit DB2 Connect
    By Ewald in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 24-01-07, 18:32
  2. Probleme mir iSeries Access unter Linux
    By Grandmasta in forum NEWSboard Linux
    Antworten: 4
    Letzter Beitrag: 03-11-06, 07:47
  3. Probleme beim Zugriff auf DB2 über PHP/ODBC
    By mott in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 05-12-05, 11:14
  4. DB2 Connect auf V5R3
    By anwyuta in forum IBM i Hauptforum
    Antworten: 20
    Letzter Beitrag: 16-02-05, 12:14
  5. DB2 Connect und V5R3
    By anwyuta in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 23-09-04, 11:15

Berechtigungen

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