[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    15

    iSeriesAccess - DB2 Zugriff sehr Langsam

    Hallo,

    entschuldigung, fals ich jetzt im flaschen forum gelandet bin.(wusste net wohin ich mein problem sonst posten soll)

    Mein systemaufbau:
    Linux server der mit iSeriesAccess-5.4.0 über eine vpn-verbindung(sehr sicher fehlerfrei/schnell genug) auf eine iSeries V5R4 zugreift.

    Mein Problem:
    Die datenbankverbindung ist SEHR langsam, wenn ich versuche mit php aus der DB2 daten abzufragen. Alleine der Connect zur datenbank braucht ca 2 Sekunden.

    das ist meine odbcinst.ini:
    Code:
    [DB2]
    Description             = iSeries Access for Linux ODBC Driver
    Driver          = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
    Setup           = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
    Threading               = 2
    DontDLClose             = 1
    UsageCount              = 1
    das meine odbc.ini:
    Code:
    [sample]
    Description     = Test to DB2
    Driver          = DB2
    System                  = ***.***.***.***
    DefaultLibraries        = "*********"
    habe aber schon von vielen anderen gehört, das das eigentlisch recht flott gehen sollte...

    wö könnte der fehler sein?

    gruß

  2. #2
    Registriert seit
    May 2002
    Beiträge
    2.642

    Servicepack ISeries Access

    Hallo,
    wie sieht es denn mit dem installierten Servicepack ISeries Access aus ? AKtuell ist SI27741.

  3. #3
    Registriert seit
    Aug 2007
    Beiträge
    15
    soweit ich das sehe gibt es für linux iSeriesAccess keine service-packs...

    aber ich glaube auch nicht das es daran liegt... habe meine i5 jetzt extra auf V5R4 geupdated, weil ich damit auch iSeriesAccess für V5R4 umsteigen konnte... zuvor hatte ich V5R3... mit dem neuen ist es genauso langsam wie zuvor....

    bin am verzweifeln...

    gruß

  4. #4
    Registriert seit
    May 2002
    Beiträge
    2.642

    Redbook

    Hallo,
    vielleicht solltest Du Dich einmal mit diesem Redbook auseinandersetzen. Suche dort einmal nach "Performance".

    http://www.redbooks.ibm.com/redbooks/pdfs/sg247327.pdf

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Hast Du Dein PHP mit der Option ./configure --with-ibm-db2 konfiguriert ?

    Damit kannst Du dann den db2_connect() verwenden anstatt dem odbc_connect(). Der db2_connect() ist spezieller für die DB2 ausgelegt und ist etwas schneller als der odbc_connect().

    Aber der Verbindungsaufbau zur iSeries ist mit beiden Varianten nicht sonderlich schnell.

    Gruß,
    KM

  6. #6
    Registriert seit
    Aug 2007
    Beiträge
    15
    ich habe bis jetzt so mitbekommen das zur zeit php als DIE NEUENTDECKUNG auf der iseries gesehen wird... ich programmiere schon seit jahren mit php und verwende als datenbank mysql... in sachen geschwindigkeit muss ibm da aber noch einiges tun... ich finde um anständig software zu entwickeln ist das alles zu langsam... selbst wenn man die php scripts auf der iseries selber ausführt, ist es zu langsam...

    habe neulich an einem online-seminar vom "midrange-magazin" teilgenommen... da wurde php in verbindung mit db2 hoch angepriesen... wissen die alle nicht was geschwindigkeit heißt? (ich kann mir immernochnicht vorstellen das das "normal" ist, das das so langsam geht)

    falls jemand ne lösung weis, bin um jeden vorschlag dankbar...

  7. #7
    Registriert seit
    Oct 2004
    Beiträge
    240
    Zitat Zitat von h-net Beitrag anzeigen
    .. wissen die alle nicht was geschwindigkeit heißt? (ich kann mir immernochnicht vorstellen das das "normal" ist, das das so langsam geht)

    falls jemand ne lösung weis, bin um jeden vorschlag dankbar...
    Zuerst einmal:
    Egal ob PHP, ODBC oder JDBC: die DB2 braucht deutlich länger als andere Datenbanken für den Verbindungsaufbau. Großmächtige UserExit-Programme (1) können diesen Effekt noch verschlimmern.

    Meine PHP-Erfahrungen beschränken sich auf ein paar Hack's, daher meine Frage: Wie managed du die Connections? Gibt es da einen Connectionpool, gibt es eine Connection je Session oder wird jeden HTML-Request eine Connection auf- und zugemacht?

    Dank Connectionpool, fällt die Öffnungszeit bei meinen Webappliaktionen (Java) eigentlich nicht in Gewicht.

    (1) Auf der i5 kann man auch für ankommende ODBC-Verbindungen/Befehle in "reinklemmen" und bestimmte Prüfungen durchzuführen.

    Zitat Zitat von h-net Beitrag anzeigen
    ich habe bis jetzt so mitbekommen das zur zeit php als DIE NEUENTDECKUNG auf der iseries gesehen wird...
    Da ich das IBM-Marketing mittlerweile auch schon viele Jahre kenne, mein Kommentar:
    1. IBM tanzt nie nur auf einer Hochzeit. Wenn der Markanteil - wie bei PHP stimmt - dann fühlt sich auch IBM "eingeladen".

    2. IBM-Philosophie: Wenn die Performance nicht stimmt - ist die AS/400/iSeries/i5 zu klein dimensioniert.

    3. Das Jahr der Ankündigung/Einführung ist nicht immer das gleiche Jahr, der ersten brauchbaren Version...

    4. Das die Lösung Verbesserungsbedarf hat, wird frühestens (indirekt) zugegeben, wenn bereits die nächste Maschinen/Release-Generation verkauft werden kann.

    /Robert

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    @Robert: ich stimme in den meisten Punkten mit dir überein, würde aber folgendes zu bedenken geben:
    Die AS400 ist einer der skalierbarsten Systeme, die Spanne der in Rechenzentren anzutreffenden Maschinen reicht von MickerPC Level voriges Jahrhundert bis zu aktuellem Highend der Prozessortechnologie, die Erwartungen der Inhaber stehen in krassem Gegensatz dazu, die meinen das Ding müsse im gleichen Maße schneller sein, wie es mehr gekostet hat als ein Aldi PC.
    Meine Erfahrung (Java und ODBC): die AS400 ist ähnlich schnell wie technisch vergleichbare (in Worten: vergleichbare) andere Systeme, sowohl was den connect angeht, als auch Abfragen. Wie dann der wirtschaftliche Vergleich aussieht, lässt sich nicht ganz so einfach beantworten, der scheint aber für die meisten nicht das Problem zu sein.

    mfg

    Dieter Bender

    Zitat Zitat von RobertPic Beitrag anzeigen
    Egal ob PHP, ODBC oder JDBC: die DB2 braucht deutlich länger als andere Datenbanken für den Verbindungsaufbau. Großmächtige UserExit-Programme (1) können diesen Effekt noch verschlimmern.
    /Robert
    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
    Oct 2004
    Beiträge
    240
    Hier ein paar Benchmarks:

    Datenbank 1.Verbindg Schnitt Folge
    MSSQL ___0,219 ____0,026
    DB2 810 __3,812 ____ 0,451
    DB2 i5 ____0,828 ____0,293
    Postg _____0,281 ____0,007
    Ora 8 _____1,265 ____0,071
    HSQL _____0,406____0,000
    Gemessen wurde die allererste Verbindung nach PC Neustart + der Schnitt der nächsten 9 Verbindungen. Wenn ich das Programm dann nochmal laufen lassen, verbessert sich die 1. Verbindung.


    MSSQL (Windows) und PostgreSQL (Linux) läuft auf neuer Serverhardware (2 CPU's mit je 2 Kernen) und ist den DB2-Maschinen (CPU's, Ram..) überlegen - kostet aber nur einen Bruchteil.....

    810, 1000CPW, 2GB Ram, mit Exitprogramm (CL nur IF ohne DB)
    i5, 1200CPW, 4GB Ram (kein Exitprogramm)

    Oracle 8 (AIX) auf einer 8 Jahre alten RS/6000 (vgl. Model 170)

    HSQL embedded (native Java-DB)

    Bei meinen Webanwendungen fällt die DB2 aber nicht negativ auf. Daher mein Verdacht, dass die PHP-Anwendungen für jede HTML-Seite die Verbindung neu aufmacht.

    /Robert

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Hier hilft dann ConnectionPooling.
    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
    Aug 2007
    Beiträge
    15
    Zitat Zitat von RobertPic Beitrag anzeigen

    Meine PHP-Erfahrungen beschränken sich auf ein paar Hack's, daher meine Frage: Wie managed du die Connections? Gibt es da einen Connectionpool, gibt es eine Connection je Session oder wird jeden HTML-Request eine Connection auf- und zugemacht?
    php ist eine Scriptsprache, die bevor der benutzer das ergebnis sieht, terminiert.

    d.h. bei einem aufruf von einem php-script muss eine verbindung zur iseries aufgebaut werden, und nachdem die datenbankabfrage ausgeführt wurde und ich das ergebnis erhalten habe, wird die verbindung wieder getrennt...

    für neuere datenbanken (z.B. MySQL) gibt es auch die möglichkeit eine verbindung auch über das programmende hinaus offen zu lassen, und mit einem nächsten programm die alte verbindugn wieder aufzugreifen...

    --> dann wird das hier so langsam bleiben, bis zu V5R5 bzw V6Rx?

    eieiei... Ernsthaft: die meiste zeit der entwicklung sitze ich daran, auf connect zu warten...
    Zitat Zitat von RobertPic Beitrag anzeigen
    2. IBM-Philosophie: Wenn die Performance nicht stimmt - ist die AS/400/iSeries/i5 zu klein dimensioniert.
    Dazu kann ich sagen, ich finde es arm, das ein 33Mhz rechner, mit 4MB haiptspeicher unter Linux auf dem eine MySQL datenbank läuft, für einen connect wehniger als 0,001 sekunden braucht...

    um dieses IBM zitat zu entkräftigen(rege mich gerade über ibm auf):
    soll das heißen das eine relativ moderne i5 tausendmal langsamer ist als ein 15 Jahre alter pc?

    sorry... das musste raus...
    Trozdem vielen dank für eure bemihungen.

    Gruß

  12. #12
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von h-net Beitrag anzeigen

    --> dann wird das hier so langsam bleiben, bis zu V5R5 bzw V6Rx?

    eieiei... Ernsthaft: die meiste zeit der entwicklung sitze ich daran, auf connect zu warten...

    Dazu kann ich sagen, ich finde es arm, das ein 33Mhz rechner, mit 4MB haiptspeicher unter Linux auf dem eine MySQL datenbank läuft, für einen connect wehniger als 0,001 sekunden braucht...

    um dieses IBM zitat zu entkräftigen(rege mich gerade über ibm auf):
    soll das heißen das eine relativ moderne i5 tausendmal langsamer ist als ein 15 Jahre alter pc?

    sorry... das musste raus...
    Trozdem vielen dank für eure bemihungen.

    Gruß
    Die I5 ist ja nicht langsam auch die DB2/400 ist nicht langsam, nur das bindeglied zum PC lamt wie täufel.

    hast du es schonmal mit connect via ODBC probiert ?

    Gruß AS400.lehrling

Similar Threads

  1. Zugriff auf DB2 UDB
    By Azaron in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-12-06, 13:42
  2. Probleme beim Zugriff auf DB2 über PHP/ODBC
    By mott in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 05-12-05, 11:14
  3. Java ... JDBC ... Zugriff DB2 - Port iSeries ???
    By bode in forum NEWSboard Java
    Antworten: 7
    Letzter Beitrag: 02-09-05, 15:09
  4. Antworten: 9
    Letzter Beitrag: 14-07-05, 16:35
  5. ODBC Zugriff auf DB2 mit VBA
    By Bärnd in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-02, 15:58

Berechtigungen

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