JDBC 経由での SQL ゲートウェイへの接続
この章では、SQL ゲートウェイ用の JDBC 論理接続の定義の作成方法を説明します。InterSystems JDBC ドライバの詳細は、"InterSystems ソフトウェアでの Java の使用法" を参照してください。
InterSystems IRIS では、外部データ・ソースへの接続の論理名である、SQL ゲートウェイ接続定義のリストが管理されます。各接続定義は、論理名 (InterSystems IRIS 内で使用するため)、データ・ソースへの接続情報、および接続を確立するときに使用するユーザ名とパスワードで構成されます。これらの接続は、%Library.sys_SQLConnection テーブルに格納されます。このテーブルのデータをエクスポートして、同じバージョンの InterSystems IRIS の別のインスタンスにインポートできます。
JDBC 経由での接続時の問題を監視するために、SQL ゲートウェイ接続に対して JDBC ログを有効化できます (“SQL ゲートウェイのログ” を参照)。同じダイアログで、JAVAHOME およびその他の JDBC 設定も指定できます。
管理ポータルでの論理接続の定義
JDBC 準拠のデータ・ソースに SQL ゲートウェイ接続を定義するには、以下の手順を実行します。
-
管理ポータルで、System Administration > Configuration > Connectivity > SQL Gateway Connections ページに移動します。
-
[新規接続作成] をクリックします。
-
[SQL ゲートウェイ接続] ページで、以下のフィールドの値を入力または選択します。
-
[タイプ] で [JDBC] を選択します。
-
[接続名] — InterSystems IRIS 内で使用する、接続の識別子名を指定します。
-
[ユーザ] — 必要に応じて、接続の確立時に既定値として機能するアカウントの名前を指定します。
-
[パスワード] — 既定のアカウントに関連付けられたパスワードを指定します。
-
[ドライバ名] — JDBC クライアント・ドライバの完全クラス名。
-
[URL] — 使用している JDBC クライアント・ドライバに必要な形式によるデータ・ソースの接続 URL。
-
[クラスパス] — ロードする追加の JAR ファイルのコンマ区切りのリストを指定します。
-
[プロパティ] — ベンダ固有の接続プロパティを指定する文字列 (オプション)。これを指定した場合、この文字列の形式は以下のようになります。
property= value; property= value;...
接続プロパティの詳細は、"InterSystems JDBC 接続プロパティ" を参照してください。
例えば、一般的な接続は以下の値を使用します。
設定 値 [タイプ] JDBC [接続名] ConnectionJDBC1 [ユーザ] JDBCUser [パスワード] JDBCPassword [ドライバ名] oracle.jdbc.driver.OracleDriver [URL] jdbc:oracle:thin:@//oraserver:1521/SID [クラスパス] /fill/path/to/ojdbc14.jar [プロパティ] oracle.jdbc.V8Compatibility=true; includeSynonyms=false;restrictGetTables=true その他のオプションについては、“実装固有の JDBC 接続オプション” を参照してください。
-
-
オプションで、値が有効かどうかをテストします。テストするには、[テスト接続] ボタンをクリックします。画面に、入力した値を、有効な接続で使用できるかどうかを示すメッセージが表示されます。
-
名前付き接続を作成するには、[保存] をクリックします。
-
[閉じる] をクリックします。
ネームスペース間の接続の作成
InterSystems IRIS は、JDBC ドライバを備えており、JDBC データ・ソースとして使用できます。つまり、InterSystems IRIS インスタンスは、それ自体または別の InterSystems IRIS インスタンスに JDBC および SQL ゲートウェイ経由で接続できます。具体的には、この接続は、1 つの InterSystems IRIS のネームスペースから別の InterSystems IRIS のネームスペースへの接続です。この方法で接続する場合は、他の外部データベースに接続するときと同じように、使用するデータベース・ドライバに関する接続詳細が必要です。このセクションでは基本的な情報を示します。
SQL ゲートウェイの JDBC データ・ソースとしての使用
別の異なるインスタンス (IrisDB-2) を JDBC データ・ソースとして使用するように InterSystems IRIS インスタンス (IrisDB-1) を構成するには、以下の操作を実行します。
-
IrisDB-1 内で、SQL ゲートウェイを使用して、使用する IrisDB-2 のネームスペースへの JDBC 接続を作成します。
-
[タイプ] で [JDBC] を選択します。
-
[接続名] — IrisDB-1 内で使用する、接続の識別子名を指定します。
-
[ユーザ] — 必要に応じて IrisDB-2 へのアクセスに必要なユーザ名を指定します。
-
[パスワード] — このユーザのパスワードを指定します。
-
[ドライバ名] — com.intersystems.jdbc.IRISDriver を使用します。
-
[URL] — データ・ソースの接続 URL を以下の形式で指定します。
jdbc:IRIS://IP_address:port/namespace
ここで、IP_address:port は、IrisDB-2 が実行されている IP アドレスおよび TCP ポートです。namespace は、接続先のネームスペースです (“JDBC 接続 URL の定義” を参照してください)。
例えば、一般的な接続は以下の値を使用します。
設定 値 [タイプ] JDBC [接続名] ConnectUser [ユーザ] _SYSTEM [パスワード] SYS [ドライバ名] com.intersystems.jdbc.IRISDriver [URL] jdbc:IRIS://127.0.0.1:1972/User -
[クラスパス] — これは空白のままにしておきます。
-
[プロパティ] — InterSystems JDBC ドライバでサポートされている接続プロパティを指定する文字列 (オプション) です。これを指定した場合、この文字列の形式は以下のようになります。
property= value; property= value;...
その他のオプションについては、このセクションの後半の “実装固有の JDBC 接続オプション” を参照してください。
-
-
[保存] をクリックします。
-
[閉じる] をクリックします。
実装固有の JDBC 接続オプション
SQL ゲートウェイ接続を定義する前に、外部データベースとデータベース・ドライバの要件を理解しておく必要があります。これらの要件が接続の定義方法に影響を及ぼすためです。
[デフォルトで区切り識別子を使用しない] オプションは、生成されたルーチン内の識別子の形式を制御します。
SQL 区切り識別子をサポートしないデータベースを使用する場合は、このチェック・ボックスにチェックを付けます。これには現在、以下のデータベースが含まれます。
-
Sybase
-
Informix
-
MS SQL Server
他のデータベースを使用する場合は、チェック・ボックスのチェックを外します。すべての SQL 識別子が区切られます。
[COALESCE 使用] オプションは、クエリにパラメータ (?) が含まれる場合のクエリの処理方法を制御します。これは、クエリ・パラメータが NULL の場合にのみ適用されます。
-
[COALESCE 使用] を選択しない場合に、クエリ・パラメータが NULL のとき、クエリは対応する値が NULL となっているレコードのみを返します。例えば、以下の形式のクエリを考えてみます。
SELECT ID, Name from LinkedTables.Table WHERE Name %STARTSWITH ?
指定されたパラメータが NULL のとき、クエリは、値が NULL の名前を持つ行のみを返します。
-
[COALESCE 使用] を選択した場合、クエリは、COALESCE 関数呼び出し内の各パラメータを折り返します。これにより、NULL 値の処理方法が制御されます。
ここで、クエリ・パラメータが NULL のとき、クエリは基本的にはパラメータをワイルドカードとして扱います。前の例では、指定されたパラメータが NULL のとき、このクエリはすべての行を返します。
このオプションを選択するかどうかは、ユーザの判断と COALESCE 関数が外部データベースでサポートされているかどうかによります。
外部データベースで COALESCE 関数がサポートされているかどうかを確認するには、そのデータベースのドキュメントを参照してください。
[複合 Row ID 内で変換] オプションでは、複合 ID を形成するときの文字以外の値の処理方法を制御します。データベースでサポートされているオプションを選択します。
-
[非文字値を変換しない] — このオプションでは、変換は実行されません。このオプションは、データベースで文字以外の値の文字値への連結がサポートされる場合にのみ適切です。
-
[CAST を使用する] — このオプションでは、CAST を使用して、文字以外の値が文字値に変換されます。
-
[{fn convert ...} を使用]— このオプションでは、{fn convert ...} を使用して、文字以外の値が文字値に変換されます。
すべての場合に、ID (または変換後の ID) の間に || を使用して ID が連結されます。
外部データベースでサポートされるオプションを確認するには、外部データベースのドキュメントを参照してください。
SQL ゲートウェイのログ
JDBC 接続の使用時に、SQL ゲートウェイのログを生成できます。このログを有効にするには、以下の操作を実行します。
-
管理ポータルを開いて、System Administration > Configuration > External Language Servers に移動します。
-
%JDBC_Server リンクを選択して [編集] ダイアログを表示します (注意 : %Java_Server リンクを選択しないでください。これは、まったく別のリンクです)。
-
詳細設定がまだ表示されていない場合は、[編集] ダイアログの下部で Advanced Settings [表示] リンクを選択します。
-
SQL ゲートウェイとデータベース間の相互作用を記録する [ログファイル] の名前を指定します (jdbcSqlGateway.log など)。完全修飾パスを指定しない場合、ログ・ファイルは JDBC SQL ゲートウェイが最初に起動されたときからの現在のディレクトリに存在します (多くの場合、/mgr または /mgr/namespace ディレクトリ)。
-
ダイアログ上部にある [保存] ボタンを選択します。
-
外部サーバのメイン・ページで、%JDBC_Server 接続をシャットダウンしてから再起動して、新しい設定を有効にします。
[編集] ダイアログで [Javaホームディレクトリ] フィールドを設定して、SQL ゲートウェイで使用する Java バージョン (JAVAHOME) を指定することもできます。これらの設定の詳細は、"構成パラメータ・ファイル・リファレンス" の "%JDBC Server" を参照してください。
ログは、トラブルシューティングを実行する必要がある場合のみ有効にします。ログを有効にするとパフォーマンスが大幅に低下するため、通常の操作時は有効にしないでください。