· 

Zugriff auf die IBM i mit Linux+ODBC

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

Kommentare: 1
  • #1

    Zeus (Dienstag, 19 Januar 2021 10:43)

    Top! Vielen Dank!
    Konnte so meine iSeries mit Zabbix monitoren.