PDA

View Full Version : Linux/PHP --> AS400



boernie
14-11-02, 18:24
hat schon jemand von Linux aus per PHP Daten von der AS400 geholt? Erste Versuche liefen schief. Das howto von Stefan Dreyer (http://dns.celleweb.de/db2/db2howto.html) hat uns nicht weitergeholfen. Wer kann evtl. Unterstützung anbieten.

horschma
15-11-02, 08:33
Hallo,
ein paar genauere Angaben zu den auftretenden Fehlern wären schon hilfreich...

Habt ihr DB2 Connect ... auf Linux installiert? Ohne das 'Connect' funktioniert es mit der AS/400 schon mal gar nicht.
Wenn ja, funktioniert der connect aus dem db2 Kommandofenster?

mehr Info, mehr Hilfe

Thomas

boernie
15-11-02, 12:09
Hallo Thomas,
auf dem Server haben wir das so installiert wie von der IBM unter www-1.ibm.com/servers/eserver/iseries/linux/odbc/guide/install.html vorgemacht. Deshalb hab ich hier auch nicht den db2-Client installiert.
Auf einer Testmaschine bin ich jetzt nach der Beschreibung unter http://dns.celleweb.de/db2/db2howto.eng.html vorgegangen. Das LAMP läuft, nur der db2-Zugriff funktioniert noch nicht.
Und zwar hab ich - mangels AS400-Kenntnisse - Probleme mit dem catalog der database:
db2 => catalog database as400 [as as400db] at node as400 authentication dcs
Kannst du mir sagen, was hier was ist?
Vielen Dank im Voraus.
Gruß
Kay (kay.wettengel@stahl.de für direkten Kontakt)

horschma
15-11-02, 12:59
mh, mit dem Linux ODBC Treiber brauchst du eigentlich das DB2 Connect nicht, ich weiß aber nicht wie du deinem PHP beibringst den ODBC Treiber zu verwenden.

Die Beschreibung in db2howto verwendet den in PHP integrierten DB2 CLI Treiber von DB2 Connect. Um diesen zu verwenden brauchst du folgende Informationen:

ASNAME = IP-Adresse oder Hostname der AS/400
ASALIAS = dein Name den du der Datenbank gibst
ASDB = Datenbankname auf der AS/400, mit WRKRDBDIRE angezeigter Name für *LOCAL
ASUSER = Benutzer auf der AS/400
ASPWD = Kennwort des Benutzers

dann im DB2 Kommandofenster
db2-> catalog tcpip node ASALIAS remote ASNAME server 446
db2-> terminate
db2-> catalog dcs database ASALIAS as ASDB
db2-> catalog database ASALIAS at node ASALIAS authentication dcs
db2->terminate

zum testen:
db2->connect to ASALIAS user ASUSER using ASPWD
db2-> select count(*) from QSYS2/SYSTABLES
...

hth
Thomas
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von boernie:
Hallo Thomas,
auf dem Server haben wir das so installiert wie von der IBM unter www-1.ibm.com/servers/eserver/iseries/linux/odbc/guide/install.html vorgemacht. Deshalb hab ich hier auch nicht den db2-Client installiert.
Auf einer Testmaschine bin ich jetzt nach der Beschreibung unter http://dns.celleweb.de/db2/db2howto.eng.html vorgegangen. Das LAMP läuft, nur der db2-Zugriff funktioniert noch nicht.
Und zwar hab ich - mangels AS400-Kenntnisse - Probleme mit dem catalog der database:
db2 =&gt; catalog database as400 [as as400db] at node as400 authentication dcs
Kannst du mir sagen, was hier was ist?
Vielen Dank im Voraus.
Gruß
Kay (kay.wettengel@stahl.de für direkten Kontakt)[/quote]

boernie
18-11-02, 16:27
Hallo Thomas,
soweit so gut. Jetzt klappt's von der Kommandozeile aus.
PHP hab ich jetzt auch neu kompiliert, mit folgenden Optionen:
./configure' '--with-apxs2=/usr/local/apache2/2.0.40/bin/apxs' '--with-ibm-db2=/usr/IBMdb2/V7.1/' '--with-config-file-path=/etc' '--with-mysql=/usr/local/mysql/current/' '--with-pgsql=/usr/local/pgsql/current/' '--with-ldap' '--enable-ftp' '--enable-versioning' '--enable-track-vars=yes' '--enable-url-includes' '--enable-trans-sid' '--enable-sysvshm=yes' '--enable-sysvsem=yes
PHP läuft auch, aber wenn ich meine Testskripte für die AS/400 aufrufe, bekomme ich folgende Fehlermeldungen ausgegeben:

Warning: SQL error: [IBM][CLI Driver] SQL5048N The release level of the database client is not supported by the release level of the database server. , SQL state S1000 in SQLConnect in /home/www/as400test.php on line 5

Auf der Linuxkiste läuft der db2Client 7.1, auf dem Server OS/400 5.1.1.
Kannst du mir damit bitte noch mal helfen?
Danke + Gruß
Kay

horschma
18-11-02, 18:57
Hallo Kay,
funktioniert auch ein 'Select' von der Kommandozeile?
In meinem vorigen Post war´ein Fehler, es muß
select count(*) from QSYS2.SYSTABLES
heißen.

Beim ersten Aufruf eines Statements müsste es ziemlich lange dauern, da der Client packages auf der AS/400 erstellt.

Bei dem Zugriff aus PHP musst du den Aliasnamen der angelegten Datenbank verwenden.
Ich habe leider zur zeit keinen Zugriff von Linux auf eine AS/400, aber unter NT funktioniert das ganze (ohne PHP) mit CLI Anwendungen problemlos.
hth
Thomas

<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von boernie:
Hallo Thomas,
soweit so gut. Jetzt klappt's von der Kommandozeile aus.
PHP hab ich jetzt auch neu kompiliert, mit folgenden Optionen:
./configure' '--with-apxs2=/usr/local/apache2/2.0.40/bin/apxs' '--with-ibm-db2=/usr/IBMdb2/V7.1/' '--with-config-file-path=/etc' '--with-mysql=/usr/local/mysql/current/' '--with-pgsql=/usr/local/pgsql/current/' '--with-ldap' '--enable-ftp' '--enable-versioning' '--enable-track-vars=yes' '--enable-url-includes' '--enable-trans-sid' '--enable-sysvshm=yes' '--enable-sysvsem=yes
PHP läuft auch, aber wenn ich meine Testskripte für die AS/400 aufrufe, bekomme ich folgende Fehlermeldungen ausgegeben:

Warning: SQL error: [IBM][CLI Driver] SQL5048N The release level of the database client is not supported by the release level of the database server. , SQL state S1000 in SQLConnect in /home/www/as400test.php on line 5

Auf der Linuxkiste läuft der db2Client 7.1, auf dem Server OS/400 5.1.1.
Kannst du mir damit bitte noch mal helfen?
Danke + Gruß
Kay[/quote]