SQL Anywhere では、6 つの外部ランタイム環境をサポートしています。これには、C/C++ で記述された Embedded SQL と ODBC アプリケーション、Java、Perl、PHP、または Microsoft .NET Framework Common Language Runtime (CLR) に基づく C# や Visual Basic などの言語で記述されたアプリケーションが含まれます。
これまで SQL Anywhere では、C または C++ で記述されたコンパイル済みネイティブ関数を呼び出すことができました。ただし、これらのプロシージャがデータベースサーバで実行されるとき、ダイナミックリンクライブラリまたは共有オブジェクトが常にデータベースサーバによってロードされ、ネイティブ関数への呼び出しがデータベースサーバによって行われていました。この方法には、ネイティブ関数が原因で障害が発生した場合、データベースサーバがクラッシュするというリスクがあります。データベースサーバの外部環境でコンパイル済みネイティブ関数を実行できると、サーバへのこれらのリスクをなくすことができます。
次に示すのは、SQL Anywhere での外部環境サポートの概要です。
START EXTERNAL ENVIRONMENT 文と STOP EXTERNAL ENVIRONMENT 文は、外部環境を要求に応じて起動または停止するために使用されます。外部環境は必要に応じて自動的に起動または停止するので、これらの文はオプションです。
ALTER EXTERNAL ENVIRONMENT 文は、外部環境の場所を設定または変更するために使用されます。
COMMENT ON EXTERNAL ENVIRONMENT 文は、外部環境のコメントを追加するために使用されます。
データベースサーバで使用するように外部環境が設定されたら、オブジェクトをデータベースにインストールし、それらのオブジェクトを外部環境内で使用するストアドプロシージャおよび関数を作成することができます。
INSTALL EXTERNAL OBJECT 文は、Perl スクリプトなどの Perl または PHP 外部オブジェクトをファイルまたは式からデータベースにインストールするために使用されます。データベースにインストールされた外部オブジェクトは、外部ストアドプロシージャおよび関数の定義で使用できます。
COMMENT ON EXTERNAL ENVIRONMENT OBJECT 文は、外部環境オブジェクトのコメントを追加するために使用されます。
インストールされている Perl または PHP 外部オブジェクトをデータベースから削除するには、次に示す REMOVE EXTERNAL OBJECT 文を使用します。
CREATE PROCEDURE 文と CREATE FUNCTION 文は、外部ストアドプロシージャおよび関数の定義を作成するために使用されます。これらはデータベース内の他のストアドプロシージャまたは関数と同様に使用できます。外部環境のストアドプロシージャまたはファンクションが呼び出されるると、データベースサーバは外部環境がまだ起動されていない場合は、これを自動的に起動し、外部環境がデータベースから外部オブジェクトをフェッチして実行するために必要なあらゆる情報を送信します。実行結果の結果セットや戻り値は、必要に応じて返されます。
CLR 外部環境
ESQL 外部環境と ODBC 外部環境
Java 外部環境
PERL 外部環境
PHP 外部環境
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |