Hallo! Mein Name ist Klaus Mödinger und ich bin Kommanditist der comSID GmbH & Co. KG.
In diesem Blog-Artikel beschreibe ich die notwendigen Schritte zum Herstellen einer Verbindung mit der IBM i DB2 von einer Linux-Maschine aus unter Verwendung von ODBC.
Installieren von unixODBC
Meine virtuelle Linuxmaschine heißt "dotnet", es ist ein Ubuntu 18.04 Server LTS. Der Hyper-V-Host ist ein Windows Server 2012. Zunächst installiert man das Paket "unixodbc".
root@dotnet:~# apt install unixodbc Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: unixodbc 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 19.6 kB of archives. After this operation, 114 kB of additional disk space will be used. Fetched 19.6 kB in 0s (57.5 kB/s) Selecting previously unselected package unixodbc. (Reading database ... 107669 files and directories currently installed.) Preparing to unpack .../unixodbc_2.3.7_amd64.deb ... Unpacking unixodbc (2.3.7) ... Setting up unixodbc (2.3.7) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... root@dotnet:~#
Installieren des IBM-ODBC-Treibers
Auf https://www.ibm.com/support/pages/ibm-i-access-client-solutions klickt man auf "Downloads for IBM i Access Client Solutions". Man landet auf einer Login-Seite. Hier braucht man eine IBM ID. Besitzt man keine, kann man sich kostenlos eine erstellen.
Auf der nächsten Seite macht man ein Häkchen bei "I agree" und klickt auf "I confirm". Jetzt hat man es geschafft und kann das ZIP-File IBMiAccess_v1r1_LinuxAP.zip herunterladen.
Im ZIP-File findet man ein Debian-Package. Dieses installiert man mit
root@dotnet:~# dpkg -i ibm-iaccess-1.1.0.13-1.0.amd64.deb
Bearbeiten der /etc/odbcinst.ini
Mit einem Texteditor bearbeitet man die Datei /etc/odbcinst.ini, so dass sie so aussieht:
[ODBC] Trace=No TraceFile=/tmp/sql.log ForceTrace=No Pooling=No [iSeries] Description=IBM ODBC Driver for Linux Driver=/opt/ibm/iSeriesAccess/lib64/libcwbodbc.so Setup=/opt/ibm/iSeriesAccess/lib64/libcwbodbc.so FileUsage=1 CPTimeout=30 CPReuse=30
Anlegen einer Datenquelle
Zum Erstellen einer oder mehrerer Datenquellen bearbeitet man die die Datei /etc/odbc.ini. Hier ein Beispiel:
[ODBC_DEV7COM] Description = iSeries Driver = iSeries System = DEV7COM UserID = penguin Password = penguin
Dieses Beispiel passt man für die eigenen Bedürfnisse an. Für System kann man auch eine IP-Adresse angeben. Es gibt noch jede Menge weitere Konfigurationseinstellungen, aber für einen ersten Test sollte das Beispiel genügen.
Verbindungstest mit isql
In "unixodbc" enthalten ist das Tool "isql". Damit kann man SQL-Abfragen an der Kommandozeile ausführen. Hier ein Verbindungstest:
root@dotnet:~# isql odbc_dev7com penguin penguin +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select * from sysibm.sysdummy1 +--------+ | IBMREQD| +--------+ | Y | +--------+ 1 rows fetched SQL>
Fumktioniert! :-) Ich wünsche viel Erfolg!
Kommentar schreiben
Zeus (Dienstag, 19 Januar 2021 10:43)
Top! Vielen Dank!
Konnte so meine iSeries mit Zabbix monitoren.