1. 概要
この記事は、LinuxにおいてTDV ODBCドライバーを使用する手順についてまとめたものです。
基本的な設定手順のほかに、ドライバーマネージャーとしてunixODBCを使用する設定例もご紹介しています。
以下の製品ガイドも併せてご参照ください。
ODBC経由でのTDVサーバーへの接続 (tibco.com)
この記事で使用したバージョンは TDV 8.5.5 です。
2. 事前準備
TDV クライアントドライバーの展開
あらかじめ、TDV ODBCドライバーを設定対象のマシンに配置します。
通常、TDVのクライアントドライバー一式は、1つのzipファイルとして配布されています。
TDV 8.5.5 では、TIB_tdv_drivers_8.5.5_all.zip として配布されており、これを解凍します。
この記事では、ユーザー「tibco」のホームディレクトリ下に「release」ディレクトリを作成し、展開しています。
$ pwd
/home/tibco/release
$ ls -l
total 20
drwxr-xr-x 7 tibco tibco 4096 Nov 12 2022 apps
drwxrwxr-x 3 tibco tibco 4096 Jun 22 12:31 conf
drwxr-xr-x 3 tibco tibco 4096 Nov 12 2022 docs
drwxr-xr-x 2 tibco tibco 4096 Jun 22 12:31 install
$
詳細につきましては、以下製品ガイドをご参照ください。
UNIXへのドライバーのインストール (tibco.com)
3. 設定手順
3.1 環境変数の設定
ODBCドライバーを使用するユーザーの環境変数に、ODBCINI、ODBCINSTINIを設定します。それぞれ、odbc.ini、odbcinst.iniへのパスを指定します。
各iniファイルはユーティリティにより自動生成されますので、存在している必要はありません。
COMPOSITE_HOME の設定は任意です。
設定しておきますと、次ステップでドライバーへのパスが自動入力されます。
設定例:
export COMPOSITE_HOME=/home/tibco/release
export ODBCINI=/home/tibco/release/apps/odbc/linux64/odbc.ini
export ODBCINSTINI=/home/tibco/release/apps/odbc/linux64/odbcinst.ini
なお、設定後は、ログインし直すか、又はsourceして、内容を反映させてください。
3.2 ドライバーのインストール設定
この後のステップは、付属のdriverConfigユーティリティを使って設定を行います。
まず、ドライバーをインストールします。
[/home/tibco/release]/apps/odbc/linux64/bin 下にある driverConfig を実行します。
Main Menu で、「4 Install ODBC driver」を選びます。
自動入力されたパスをそのまま受け入れます。
$ cd ./release/apps/odbc/linux64/
$ ./bin/driverConfig
---------
TIBCO(R) Data Virtualization 8.5
Main Menu
0 Exit this utility
1 View configuration and DSNs on this system
2 Create, edit, delete or test a DSN
3 Uninstall ODBC driver
4 Install ODBC driver
Enter command> 4
Enter path to ODBC 64-bit Driver[/home/tibco/release/apps/odbc/linux64/lib/libcomposite85_x64.so]>
Installed driver: /home/tibco/release/apps/odbc/linux64/lib/libcomposite85_x64.so
**Done
3.3 DSNの作成
続けて、DSNを作成します。
Main Menu で、「2 Create, edit, delete or test a DSN」を選びます。
---------
TIBCO(R) Data Virtualization 8.5
Main Menu
0 Exit this utility
1 View configuration and DSNs on this system
2 Create, edit, delete or test a DSN
3 Uninstall ODBC driver
4 Install ODBC driver
Enter command> 2
「Create, edit, delete or test a DSN」サブメニューで、「1 Create an ODBC 3.5 DSN」を選びます。
---------
TIBCO(R) Data Virtualization 8.5
Create, edit, delete or test a DSN
0 Return to main menu
1 Create an ODBC 3.5 DSN
2 Edit an existing DSN
3 Delete an existing DSN
4 Test the connection for a DSN
5 Run SQL for a DSN
Enter command> 1
必要なパラメータについて、インタラクティブに入力していきます。
Enter DSN name
> testdsn
Enter host
[localhost]> 172.25.253.6
Enter port
[9401]> 59401
Enter encrypt [n]
Enter (y)es or (n)n>
Enter sso [(Disabled)]
Enter (d)isabled or (k)erberos>
Enter uid
> admin
Enter pwd
> ********
Enter domain
[composite]>
Enter datasource
> sb
Enter catalog
>
Keep this information?
[testdsn]
host = 172.25.253.6
port = 59401
sso = (Disabled)
gssApiLib = (unknown)
spn = (unknown)
uid = admin
password = ******
domain = composite
datasource = sb
catalog = (unknown)
Enter (y)es or (n)o > y
入力した値に間違いないことを確認し、「y」を入力します。
3.4 テスト
次にテストを行います。
「Create, edit, delete or test a DSN」サブメニューのまま、「4 Test the connection for a DSN」を選びます。
---------
TIBCO(R) Data Virtualization 8.5
Create, edit, delete or test a DSN
0 Return to main menu
1 Create an ODBC 3.5 DSN
2 Edit an existing DSN
3 Delete an existing DSN
4 Test the connection for a DSN
5 Run SQL for a DSN
Enter command> 4
先ほど作成したDSNを選びます。
Available DSNs
0 (Cancel)
1 testdsn
Select DSN to test> 1
Attempting to connect to DSN 'testdsn'...
Successfully connected to DSN 'testdsn'
「Successfully connected」となりましたら設定は完了です。アプリケーション等から使用することができます。
その他、「5 Run SQL for a DSN」からSQLの発行もテストできます。必要に応じて行ってみてください。
---------
TIBCO(R) Data Virtualization 8.5
Create, edit, delete or test a DSN
0 Return to main menu
1 Create an ODBC 3.5 DSN
2 Edit an existing DSN
3 Delete an existing DSN
4 Test the connection for a DSN
5 Run SQL for a DSN
Enter command>
詳細につきましては、以下製品ガイドをご参照ください。
UNIXへのODBCクライアントドライバのインストール (tibco.com)
4. Pythonからの動作確認例
以下は、PythonからODBCの設定を確認する簡単な例です。pyodbcライブラリを使用しています。
先ほど作成したDSNを使用し、TDVサーバー上で公開された ViewOrder の内容を取得するものです。
import pyodbc
cnxn = pyodbc.connect('DSN=testdsn')
cnxn.setencoding('utf-8')
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM ViewOrder")
row = cursor.fetchone()
while row:
print(row[1], row[1], row[2], row[3], row[4], row[5])
row = cursor.fetchone()
cursor.close()
cnxn.close()
実行例
$ python3 test.py
1 1 0.10 2003-02-03 Able Computing Jason
2 2 0.20 2003-02-03 Anston Systems Max
3 3 0.00 2003-02-07 Dickinson Associates George
4 4 0.00 2003-02-05 Connect Software David
5 5 0.00 2003-02-06 Canal Street Solutions Jackson
・・・ [以下略] ・・・
$
5.【補足】unixODBC の使用例
TDV ODBCドライバは、unixODBCドライバーマネージャーにも対応しています。
ここでは、簡単な設定例をご紹介します。
unixODBCは既にマシンにインストールされている前提です。
unixODBCについての詳細は、以下の公式ページをご参照ください。
unixODBC
5.1 環境変数の設定
ODBCドライバーを使用するユーザーの環境変数に、ODBCINI、TDV_ODBC_UODBCを設定します。
odbc.iniファイルは、先ほど設定したものを、そのまま流用します。
TDV_ODBC_UODBCは、unixODBCを使用する旨のフラグです。 TRUE を設定します。
設定例:
export ODBCINI=/home/tibco/release/apps/odbc/linux64/odbc.ini
export TDV_ODBC_UODBC=TRUE
なお、設定後は、ログインし直すか、又はsourceして、内容を反映させてください。
【メモ】環境変数ODBCINSTINIの設定が残っていないことをご確認ください。先ほどのodbcinst.iniではなく、unixODBCの/etc/odbcinst.iniを使用するためです。
unixODBCのodbcinstユーティリティを使用して、設定内容を確認します。
$ odbcinst -j
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/tibco/release/apps/odbc/linux64/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
$
この設定例では、
- odbcinst.ini は、/etc下のものを、
- odbc.ini は、先ほど設定したものを、ユーザデータソースとして
使用します。
5.2 ドライバーのインストール設定
odbcinstユーティリティを使用して設定を行います。
以下の内容で、テンプレートファイルを作成します。ここでは、ファイル名を「driver.template」とします。
[composite85_x64]
Description = TDV ODBC
Driver = /home/tibco/release/apps/odbc/linux64/lib/libcomposite85_x64.so
Setup = /home/tibco/release/apps/odbc/linux64/lib/libcomposite85_x64.so
以下のコマンドで、ドライバーをインストールします。
$ sudo odbcinst -i -d -f driver.template
[sudo] password for tibco:
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /etc
$
5.3 DSNの作成
odbc.iniは、先ほど設定したものを流用しますので、ここでの設定作業はありません。
5.4 テスト
unixODBCの isql ユーティリティを使用して、テストを行います。
isqlコマンドに続けて、DSN名を指定します。
$ isql testdsn
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
TDVサーバーで公開しているビューをSELECTします。
SQL> select * from vieworder
+------------+------------+---------------+-----------+---------------------------------------------------+-------------------------------+---------------------------------------------------+-------------------------------+
| OrderID | ProductID | Discount | OrderDate | CompanyName | CustomerContactFirstName | CustomerContactLastName | CustomerContactPhone |
+------------+------------+---------------+-----------+---------------------------------------------------+-------------------------------+---------------------------------------------------+-------------------------------+
| 2 | 1 | 0.10 | 2003-02-03| Able Computing | Jason
| Born | (510) 556-9944 |
| 3 | 2 | 0.20 | 2003-02-03| Anston Systems | Max
| Fagan | (650) 778-9900 |
|
・・・ [省略] ・・・
+------------+------------+---------------+-----------+---------------------------------------------------+-------------------------------+---------------------------------------------------+-------------------------------+
SQLRowCount returns -1
50 rows fetched
SQL>
データを取得できれば、設定完了となります。