Skip to main content

UNIX® システムでの ODBC のインストールと検証

以下のセクションでは、UNIX® および関連オペレーティング・システムでの ODBC のインストールと検証に関する詳細な情報を提供します。

スタンドアロン・インストールの実行

InterSystems の標準インストールでは、既定で ODBC の完全インストールが実行されます。カスタム・インストール ("インストール・ガイド" で説明) を実行する場合は、“[SQL クライアントのみ]” オプションを選択して、クライアント・アクセス・コンポーネント (ODBC クライアント・ドライバ) のみをインストールできます。

ただし、InterSystems ODBC 用のスタンドアロン・インストーラも提供されています。このインストーラを使用するには、以下の手順に従います。

  1. クライアントをインストールするディレクトリ (/usr/irisodbc/ など) を作成します。

  2. 作成したディレクトリに、適切な zip 圧縮 tar ファイルをコピーします。

    ./dist/ODBC/ ディレクトリには、以下のような名前の zip 圧縮 tar ファイルが含まれます。

    ODBC-release-code-platform.tar.gz
    

    release-code はリリース固有のコード (InterSystems のバージョンとリリースによって異なります)、platform は ODBC クライアントが実行されるオペレーティング・システムを示します。

  3. 作成したディレクトリに移動して、以下のように手動で .tar ファイルをアンパックします。

    # gunzip ODBC-release-code-platform.tar.gz
    # tar xvf ODBC-release-code-platform.tar
    
    

    bin ディレクトリと dev ディレクトリが作成され、ファイルのセットがインストールされます。

  4. 作成したディレクトリにある ODBCInstall プログラムを実行します。このプログラムは、複数のサンプル・スクリプトを作成し、mgr ディレクトリで irisodbc.ini を構成します。以下に例を示します。

    # pwd
    /usr/irisodbc
    # ./ODBCInstall
    
    
Note:
正しいプラットフォーム名の識別

一部のリリースでは、./dist/ODBC/ ディレクトリに、必要なファイルを識別するプラットフォーム名を表示するために以下のコマンドが含まれます。

# ./cplatname identify

このコマンドは、このコマンドが必要ないリリースには存在しません。

UNIX® および関連プラットフォーム向け SQL ゲートウェイ・ドライバ

UNIX ODBC ドライバは、特定のドライバ・マネージャ (iODBC または unixODBC) に対してコンパイルされます。例えば、InterSystems ODBC ドライバには、ドライバ・マネージャごとのバージョンがあります ("InterSystems ODBC クライアント・ファイル" を参照)。これらのドライバには、同じドライバ・マネージャにリンクされているサポート・ライブラリが必要です。インターシステムズでは、さまざまなサードパーティ・ドライバに適した odbcgateway ライブラリをいくつか提供しています。<install-dir>/bin/ ディレクトリには、InterSystems SQL ゲートウェイによって使用される以下のバージョンの共有オブジェクトが格納されています。これにより、InterSystems IRIS から他の ODBC クライアント・サーバへの接続が可能になります。スタンドアロン ODBC インストールを実行する場合、既定ではこれらのファイルはインストールされません。

iODBC ドライバ・マネージャにリンク

  • odbcgateway.so — 8 ビット ODBC をサポートします。

  • odbcgatewayiw.so — Unicode ODBC をサポートします。

unixODBC ドライバ・マネージャにリンク

  • odbcgatewayu.so — 8 ビット ODBC をサポートします。

  • odbcgatewayur64.so — 64 ビット unixODBC 用に 8 ビット ODBC をサポートします。

unixODBC サポート付きでコンパイルされたサードパーティのデータベース・ドライバ (MS SQL Server ODBC ドライバなど) をインストールする場合、odbcgateway.so をバックアップして、odbcgatewayur64.so の名前を odbcgateway.so に変更する必要があります。

詳細は、“ODBC データ・ソースとしての InterSystems データベースの使用法 (UNIX®)” を参照してください。

Note:
UNIX® システムでの共有ライブラリ・パスの設定

UNIX® システムでサードパーティ製共有ライブラリを使用する場合は、InterSystems IRIS LibPath パラメータを設定して LD_LIBRARY_PATH を定義する必要があります ("構成パラメータ・ファイル・リファレンス" の “LibPath” を参照してください)。これは、特権を持たないユーザがパスを変更できないようにするためのセキュリティ対策です。

InterSystems ODBC クライアント・ファイル

構成のニーズによっては、インストールされているコンポーネントの特定のファイル名を知っておくと便利な場合があります。次のリストでは、install-dir は InterSystems インストール・ディレクトリ (ご使用のシステムで $SYSTEM.Util.InstallDirectory() が返すパス) です。

ODBC ドライバ・マネージャ

install-dir/bin/ ディレクトリには、以下のドライバ・マネージャが格納されています。

  • libiodbc.so — iODBC ドライバ・マネージャです。8 ビット ODBC API と Unicode ODBC API の両方をサポートします。

  • libodbc.so — unixODBC ドライバ・マネージャです (ODBC 8 ビット API で使用)。

Note:
64 ビット UNIX® プラットフォーム上の ODBC

ODBC 仕様のリリース間で、SQLLenSQLULen などのさまざまなデータ型が 32 ビット値から 64 ビット値へと変わりました。これらの値は、iODBC ではこれまでも常に 64 ビットでしたが、unixODBC では 32 ビットから 64 ビットに変わりました。unixODBC バージョン 2.2.14 以降、既定のビルドでは 64 ビットの整数値が使用されます。InterSystems ドライバは、32 ビット unixODBC と 64 ビット unixODBC の両方で使用できます。

InterSystems ODBC クライアント・ドライバ

インターシステムズは ODBC 2.5 クライアント・ドライバの配布を終了しましたが、ODBC 3.5 バージョンでは 3.5 の要求が 2.5 に自動的に変換されます。install-dir/bin/ ディレクトリには、以下のバージョン (*.so または *.sl) が格納されています。

iODBC 準拠のドライバ
  • libirisodbc35 — 8 ビット ODBC 3.5 をサポートします。

  • libirisodbciw35 — Unicode ODBC 3.5 をサポートします。

  • libirisodbciw.dylib — MAC OS 用の Unicode ODBC をサポートします。

unixODBC 準拠のドライバ
  • libirisodbcu35 — 8 ビット ODBC 3.5 をサポートします。

  • libirisodbcur6435 — 64 ビット unixODBC 用に 8 ビット ODBC 3.5 をサポートします。

iODBC のカスタム・インストールと構成

カスタム化された条件のもとで運用するために、独自の iODBC ドライバ・マネージャを構築することが可能です。iODBC 実行可能ファイルおよびインクルード・ファイルは、install-dir/dev/odbc/redist/iodbc/ ディレクトリにあります。これらのディレクトリを使用してアプリケーションを構築するには、LD_LIBRARY_PATH (AIX® では LIBPATH) とインクルード・パスを設定する必要があります。

iODBC ドライバ・マネージャをカスタマイズすることもできます。iODBC のウエブ・サイト (www.iodbc.orgOpens in a new tab) からソースをダウンロードして、表示される指示に従います。

iODBC を使用した PHP の構成

InterSystems ODBC の機能を PHP と組み合わせて使用できます。PHP は、動的に生成されるページを開発者が作成できるようにするスクリプト言語です。そのプロセスは、以下のとおりです。

  1. インストールを実行するマシンで、root 特権を取得します。

  2. iODBC ドライバ・マネージャをインストールします。以下はその方法です。

    1. キットをダウンロードします。

    2. 標準インストールと構成を実行します。

    3. iODBC の Web サイト (www.iodbc.orgOpens in a new tab) の iODBC+PHP HOWTOOpens in a new tab ドキュメントの説明に従って、ドライバ・マネージャを PHP で使用するように構成します。

    既定の PHP 構成のセキュリティ保護のため、iODBC PHP の例では、LD_LIBRARY_PATH (AIX® では LIBPATH) はセットされていない点に注意してください。また、LD_LIBRARY_PATH を使用しないでこれを登録するには、libiodbc.so/usr/lib にコピーし、ldconfig を実行します。

  3. PHP ソース・キットを https://www.php.netOpens in a new tab からダウンロードし、解凍します。

  4. Apache HTTP サーバ・ソース・キットを http://httpd.apache.org/Opens in a new tab からダウンロードし、解凍します。

  5. PHP を構築し、インストールします。

  6. Apache HTTP サーバを構築し、インストール後、起動します。

  7. Apache ルート・ディレクトリの info.php を使用して PHP と Web サーバをテストします。Apache ルート・ディレクトリは、Apache 構成ファイルで指定されています (通常 httpd.conf)。この URL は、http://127.0.0.1/info.php です。

  8. $HOME 環境変数が定義されていない場合は、InterSystems 特有の初期化ファイル irisodbc.ini/etc/odbc.ini にコピーします。Apache Web サーバでは、この場所を指定した方が好結果が得られます。

  9. libirisodbc.so クライアント・ドライバ・ファイルを構成し、テストします。

  10. custom.php ファイル (以下に表示) を Apache ルート・ディレクトリ (info.php が存在するディレクトリ) にコピーし、その場所を、使用しているマシンでの InterSystems インストール・ディレクトリの場所に合わせて調整します。

  11. https://github.com/intersystems/Samples-DataOpens in a new tab から sample.person データベースをダウンロードしてインストールするか、お好みのサンプル・データベースを使用するように custom.php を変更します。

  12. その後、ブラウザで http://127.0.0.1/custom.php を指して、custom.php プログラムを実行します。

custom.php のリスト
<?php
putenv("LD_LIBRARY_PATH=/usr/local/lib");  //This may be blocked by php security
echo $LD_LIBRARY_PATH;
//putenv("ODBCINSTINI=/path/to/odbcinst.ini"); //this location will be determined by your driver install.
//putenv("ODBCINI=/path/to/odbc.ini"); //odbc.ini contains your DSNs, location determined by your driver install.
$dsn="SAMPLES"; 
$user="_SYSTEM"; 
$password="sys"; 
 
$sql="SELECT * FROM sample.person";   
if ($conn_id=odbc_connect("$dsn","","")){
  echo "connected to DSN: $dsn";
  if($result=odbc_do($conn_id, $sql)) {
    echo "executing '$sql'";
    echo "Results: ";
    odbc_result_all($result);
    echo "freeing result";
    odbc_free_result($result);
  }else{
    echo "can not execute '$sql' ";
  }
  echo "closing connection $conn_id";
  odbc_close($conn_id);
}else{
  echo "can not connect to DSN: $dsn ";
}
?>

共有オブジェクトの依存関係に関するトラブルシューティング

インストールを実行したら、他の共有オブジェクトについて依存関係を確認し、すべての問題を修正する必要があります。そのプロセスは、以下のとおりです。

  1. 適切なコマンドを使用して、InterSystems ODBC ドライバの動的な依存関係をリストします。

    例えば、Solaris やその他のプラットフォームでは、ldd コマンドを使用します。

    # ldd install-dir/bin/libirisodbc.so
    

    install-dir は、InterSystems のインストール・ディレクトリです。依存関係が検出されなかった場合は、以下のようなメッセージが表示されます。

    libstlport_gcc.so => not found
    
  2. エラーが発生しない場合は、すべての依存関係は有効です。エラーが発生した場合は、以下のコマンドを実行して、現在のディレクトリ内を見るために共有オブジェクト・ローダを強制します。

    # sh
    # cd install-dir/bin
    # LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
    # export LD_LIBRARY_PATH
    
    

    sh コマンドは、Bourne シェルを起動し、cd コマンドは適切なディレクトリに変更し、export コマンドは共有オブジェクトを検索するパスを設定します。

    ただし、AIX® では、LD_LIBRARY_PATH の代わりに LIBPATH を使用します。

  3. 現在のディレクトリにパスを追加した後、再度 ldd を実行して、欠けている依存関係がないかどうかを確認します。共有オブジェクトがひとつも見つからない場合は、ODBC クライアント・ドライバと同じディレクトリにそれらを追加してください。

FeedbackOpens in a new tab