-
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ß
-
Servicepack ISeries Access
Hallo,
wie sieht es denn mit dem installierten Servicepack ISeries Access aus ? AKtuell ist SI27741.
-
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ß
-
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
-
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
-
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...
-
Zitat von h-net
.. 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 von h-net
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
-
@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 von RobertPic
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
-
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
-
Hier hilft dann ConnectionPooling.
-
Zitat von RobertPic
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 von RobertPic
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ß
-
Zitat von h-net
--> 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
-
By Azaron in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-12-06, 13:42
-
By mott in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 05-12-05, 11:14
-
By bode in forum NEWSboard Java
Antworten: 7
Letzter Beitrag: 02-09-05, 15:09
-
By Mark in forum NEWSboard Java
Antworten: 9
Letzter Beitrag: 14-07-05, 16:35
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks