Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

SQL ビジネス・サービスの使用法

インターシステムズでは、SQL を使用してデータをプロダクションに読み込む事前構築済みのビジネス・サービスを 2 つ提供しています。1 つはクエリ用、もう 1 つはストアド・プロシージャ用です。ビジネス・サービスを使用してクエリを実行するには、EnsLib.SQL.Service.GenericService をプロダクションに追加します。クエリではなく SQL プロシージャを実行したい場合は、EnsLib.SQL.Service.ProcService を使用します。

これらの組み込みのビジネス・サービスは、受信 SQL アダプタ (EnsLib.SQL.InboundAdapterOpens in a new tab) を使用して外部データ・ソースにアクセスします。場合によっては、このアダプタとその結果の処理方法を詳細に制御できるカスタム・ビジネス・サービスを構築しなければならないことがあります。

データ・ソース名の指定

プロダクションで操作するデータが含まれるデータ・ソースを指定するには、管理ポータルを使用して、以下のビジネス・サービス設定を定義します。

DSN

このデータ・ソース名は、接続先である外部データ・ソースを指定します。InterSystems IRIS® では、定義済みの InterSystems SQL ゲートウェイ接続、JDBC URL、およびオペレーティング・システムで構成した ODBC DSN の 3 種類の形式を自動的に区別します。

管理ポータルの [システム管理][構成する][接続性][SQLゲートウェイ接続] ページから構成された JDBC 接続または ODBC 接続の名前とこの名前が一致すると、その仕様のパラメータが使用されます。エントリが構成済みの接続名ではなく、そこにコロン (:) が使用されていると、その名前は JDBC URL と見なされます。それ以外の場合は ODBC DSN と見なされます。

以下の例は、JDBC URL を参照する DSN の名前を示しています。

jdbc:IRIS://localhost:9982/Samples

以下の例は、Microsoft Access データベースを参照する ODBC DSN の名前を示しています。

accessplayground

このデータ・ソースがパスワードによって保護されている場合は、ユーザ名とパスワードを含むプロダクション認証情報を作成します。その後、これらの認証情報の ID と一致するように Credentials を設定します。詳細は、"その他の実行時設定の指定" を参照してください。

JDBC データ・ソースを使用している場合は、以下の設定も適用されます。

Java Gateway Service

このビジネス・サービスで使用する Java ゲートウェイ・サーバを制御する Java ゲートウェイ・サービスの構成名です。基盤となるアダプタ設定は JGService です。

Important:

この設定は、JDBC と接続中の SQL ゲートウェイ接続を使用している場合でも、すべての JDBC データ・ソースで必要です。JDBC 接続が機能するには、タイプが EnsLib.JavaGateway.ServiceOpens in a new tab のビジネス・サービスが存在する必要があります。ビジネス・サービスの SQL アダプタに対して、この構成項目の名前を指定する必要があります。その構成済み設定を使用して、このアダプタが管理する JVM に接続します。

JDBC ドライバ

JDBC ドライバ・クラス名です。

名前付き SQL ゲートウェイ接続を DSN として使用する場合、この値の指定は任意です。ただし、値を指定すると、名前付き JDBC SQL ゲートウェイ接続のプロパティよりも優先して適用されます。

JDBC クラスパス

JDBC ドライバ・クラス名のクラスパスです (Java ゲートウェイ・サービスで構成したクラスパス以外にも必要な場合)。

接続の属性

必要に応じて設定できる一連の SQL 接続属性オプション。ODBC の場合は、これらの形式は次のとおりです。

attr:val,attr:val

例 : AutoCommit:1

JDBC の場合は、これらの形式は次のとおりです。

attr=val;attr=val

例 : TransactionIsolationLevel=TRANSACTION_READ_COMMITTED

名前付き JDBC SQL ゲートウェイ接続を DSN として使用する場合、この値の指定は任意です。ただし、値を指定すると、名前付き JDBC SQL ゲートウェイ接続のプロパティよりも優先して適用されます。

受信クエリの指定

既定では、SQL ビジネス・サービスは、受信アダプタを使用してクエリを定期的に実行します。このアダプタからビジネス・サービスに結果が 1 行ずつ送信されます。

クエリの指定

ビジネス・サービスで使用される基本のクエリを指定するには、Query 設定を使用します。この設定では、基本のクエリ文字列を指定します。置き換え可能なパラメータの表現には、SQL 標準の ? を使用できます。これは、個別の設定で指定します。以下の例を検討します。

SELECT * FROM Customer
SELECT p1,p2,p3 FROM Customer WHERE updatetimestamp > ?
SELECT * FROM Sample.Person WHERE ID > ?
SELECT * FROM Sample.Person WHERE Age > ? AND PostalCode = ?

パラメータの指定

Parameters 設定では、クエリ文字列内の置き換え可能なパラメータを指定します。この設定は、以下のような、パラメータ値指定子のカンマ区切りリストになります。

value,value,value,...

指定する値ごとに、10Gotham City などの定数リテラル値を使用したり、以下のいずれかを参照したりできます。

  • アダプタのプロパティを参照できます。Parameters 設定内で、構文 %property_name を使用します。

  • ビジネス・サービスのプロパティを参照できます。構文 $property_name を使用します。

    例えば、タイムスタンプを入れるために、LastTS という名前のプロパティをビジネス・サービス・クラスに追加できます。Parameters 設定では、プロパティの値を $LastTS として参照します。

  • &%LastKey などの特別な永続値を参照できます。この値には、アダプタによって最後に処理された行の IDKey 値が含まれています。

    Parameters 設定でパラメータ名がアンパサンド (&) で始まる場合は、その名前は特別な永続値であると見なされます。

    Note:

    カスタム・ビジネス・サービスを使用したこれらの値の初期化については、"アダプタの初期化" を参照してください。

文字列データの最大長の指定

ビジネス・サービスの [VARCHAR LOB Boundary] 設定では、VARCHAR データ型を使用して InterSystems IRIS に格納できる文字列の最大長を指定します。ソース・データベース内に、指定した値より長い文字列を含む列があると、InterSystems IRIS では、LOB (ラージ・オブジェクト) データ型を使用してその文字列が格納されます。ビジネス・サービスの受信アダプタの対応するプロパティは、MaxVarCharLengthAsString です。

デフォルトの最大文字列長は 32767 です。値 -1 を指定すると、InterSystems IRIS の最大文字列長を使用できます。現在、これは 3641144 ですが、今後のバージョンで変更される可能性があります。InterSystems IRIS の最大文字列長より大きな値を指定した場合、InterSystems IRIS の現在の最大文字列長が使用されます。

SQL プロシージャ設定

ビジネス・サービスでストアド・プロシージャを呼び出す方法を制御する設定の詳細は、"プロシージャの詳細" を参照してください。

メッセージについて

外部データ・ソースから取得したデータを受信するために、カスタム・メッセージ・クラスを作成する必要はありません。既定では、SQL データはダイナミック・オブジェクト内にクエリの各列のプロパティと共に配置されます。このオブジェクトを記述する JSON 文字列は、Ens.StreamContainer のストリーム値として挿入されるので、その値をプロダクション経由で他のビジネス・ホストに送信できます。

カスタム・メッセージ・クラスを開発し、それを使用してデータをプロダクション経由で転送する場合は、プロパティ名が SQL クエリの列に完全に一致する必要があります。回避策として、SQL As キーワードを使用して、列の名前をプロパティ名に変更できます。メッセージ・クラスを定義したら、管理ポータルを開き、ビジネス・サービスの [メッセージ・クラス] 設定を使用して、そのメッセージ・クラスを選択します。

データ型とメッセージの詳細は、"メッセージの詳細" を参照してください。

FeedbackOpens in a new tab