この章では、UNIXおよびWindowsのプラットフォームでTimesTenアプリケーションのコンパイルおよびリンクを行う方法について説明し、クイック・スタート・デモ・アプリケーションを紹介します。内容は次のとおりです。
TimesTenの環境変数設定については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の環境変数に関する項を参照してください。
UNIXプラットフォームでは、次のいずれかのスクリプトを実行してTimesTenの環境変数を設定できます。
install_dir/bin/ttenv.sh install_dir/bin/ttenv.csh
Windowsでは、環境変数は、インストール中に設定するか、または次のスクリプトを実行して設定できます。
install_dir\bin\ttenv.bat
TimesTenアプリケーションは、TimesTen Data Manager ODBCドライバまたはTimesTen Client ODBCドライバと直接リンクするか、ドライバ・マネージャとリンクできます。
TimesTenのみを使用する必要があるアプリケーションは、TimesTen Data Manager ODBCドライバ、またはTimesTen Client ODBCドライバのいずれかと直接リンクできます。直接リンクを行うと、ドライバ・マネージャのパフォーマンス・オーバーヘッドが回避されます。直接リンクは、TimesTenにアクセスする最も簡単な方法です。 ただし、直接リンクされているアプリケーションを開発する開発者は、直接リンクに関連する次の問題について注意する必要があります。
アプリケーションは、リンクされているドライバを使用するDSNにのみ接続できます。 他のベンダーのデータ・ストアには接続できません。また、バージョンまたはタイプが異なるTimesTenドライバのTimesTen DSNにも接続できません。
WindowsのODBCトレースは、直接リンクされているアプリケーションでは利用できません。
ODBCカーソル・ライブラリは、直接リンクされているアプリケーションでは利用できません。
アプリケーションでは、通常ドライバ・マネージャで実行されるODBC関数は使用できません。これらの関数にはSQLDataSources
およびSQLDrivers
が含まれます。
SQLFreeStmt(..., SQL_CLOSE)
ではなく、SQLCancel
を使用してカーソルをクローズするアプリケーションは、SQL_SUCCESS_WITH_INFOのリターン・コードおよびSQL State 01S05を受信します。この警告は、内部の状態をドライバ・マネージャで管理するために使用されます。アプリケーションでは、この警告は成功として処理されます。
ドライバ・マネージャとリンクしているアプリケーションは、ODBCドライバを参照するすべてのDSNに接続できます。また、様々なODBCドライバを使用する複数のDSNに同時に接続することもできます。ただし、ドライバ・マネージャを使用する場合は、次の制限があります。
ドライバ・マネージャを使用すると、すべてのODBC関数コールに同期オーバーヘッドが追加されます。一部のアプリケーションでは、このオーバーヘッドが大量になる場合があります。
TimesTenオプションTT_PREFETCH_COUNTは、ドライバ・マネージャにリンクしているアプリケーションでは使用できません。 TT_PREFETCH_COUNTオプションの詳細は、「複数のデータ行のプリフェッチ」を参照してください。
アプリケーションでは、TimesTen固有のTT_PREFETCH_CLOSE接続オプションを設定または再設定できません。 TT_PREFETCH_CLOSE接続オプションの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のシリアライズ可能なトランザクションに対するTT_PREFETCH_CLOSEの有効化に関する項を参照してください。
Windows以外のほとんどのプラットフォームでは、ドライバ・マネージャはデフォルトで使用可能ではありません。TimesTenでは、WindowsまたはUNIX用のドライバ・マネージャを用意しており、クイック・スタート・サンプル・アプリケーションが付属しています。
アプリケーションがドライブ・マネージャとリンクされている場合、トランザクション・ログAPI(XLA)コールは使用できません。
WindowsでTimesTenアプリケーションをコンパイルする場合は、ODBC #include
ファイルの場所を指定する必要はありません。これらのファイルは、Microsoft Visual C++に含まれています。 ただし、/I
コンパイラ・オプションを使用して、TimesTen #include
ファイルの場所を指定する必要があります。
例2-1のMakeファイルでは、WindowsシステムでTimesTenアプリケーションを構築する方法を示します。 この例では、LIB環境変数にinstall_dir
\lib
がすでに追加されたと想定しています。
例2-1 WindowsでのTimesTenアプリケーションの構築
CFLAGS = "/Iinstall_dir\include"
LIBSDM = ODBC32.LIB
LIBS = tten1121.lib ttdv1121.lib
LIBSDEBUG = tten1121d.lib ttdv1121d.lib
LIBSCS = ttclient1121.lib
# Link with the ODBC driver manager
appldm.exe:appl.obj
$(CC) /Feappldm.exe appl.obj $(LIBSDM)
# Link directly with the TimesTen
# Data Manager ODBC production driver
appl.exe:appl.obj
$(CC) /Feappl.exe appl.obj\
$(LIBS)
# Link directly with the TimesTen
# Data Manager ODBC debug driver
appldebug.exe:appl.obj
$(CC) /Feappldebug.exe appl.obj\
$(LIBSDEBUG)
# Link directly with the TimesTen
# ODBC Client driver
applcs.exe:appl.obj
$(CC) /Feapplcs.exe appl.obj\
$(LIBSCS)
UNIX Platformsでは、次の処理を行います。
TimesTenインストール・ディレクトリにあるTimesTenヘッダー・ファイルを使用して、TimesTenアプリケーションをコンパイルします。
TimesTen Data Manager ODBCドライバまたはTimesTen Client ODBCドライバとリンクします。これらは、共有ライブラリとして提供されます。
UNIXでは、ULONG、SLONG、USHORTまたはSSHORTのODBCデータ型を使用するアプリケーションは、コンパイル時にTT_USE_ALL_TYPES
プリプロセッサ・オプションを指定する必要があります。 通常、これは、Cコンパイラ・オプション-DTT_USE_ALL_TYPES
を使用して実行します。
TimesTenの#include
ファイルを使用するには、次の指定をCコンパイラ・コマンドに追加します。ここで、install_dir
はTimesTenインストール・ディレクトリのパスです。
-Iinstall_dir/include
TimesTen Data Manager ODBCドライバとリンクするには、次の指定をリンク・コマンドに追加します。
-Linstall_dir/lib -ltten
-L
オプションを指定すると、リンカーでライブラリ・ファイル用のTimesTen lib
ディレクトリが検索されます。 -ltten
オプションを指定すると、TimesTen Data Manager ODBCドライバでリンクが行われます。
TimesTen Client ODBCドライバとリンクするには、次の指定をリンク・コマンドに追加します。
-Linstall_dir/lib -lttclient
Solarisでは、デフォルトのTimesTen Client ODBCドライバは、Studio 11を使用してコンパイルされます。このライブラリによって、Sun Studio 11 C/C++コンパイラでコンパイルされたアプリケーションをTimesTen Clientに直接リンクできます。
quickstart/sample_code
ディレクトリのサブディレクトリでMakeファイルを使用するか、または例2-2を使用して独自のMakeファイルを作成できます。
例2-2 アプリケーションをリンクするMakeファイル
CFLAGS = -Iinstall_dir/include LIBS = -Linstall_dir/lib -ltten LIBSDEBUG = -Linstall_dir/lib -lttenD LIBSCS = -Linstall_dir/lib -lttclient # Link directly with the TimesTen # Data Manager ODBC production driver appl:appl.o $(CC) -o appl appl.o $(LIBS) # Link directly with the TimesTen ODBC debug driver appldebug:appl.o $(CC) -o appldebug appl.o $(LIBSDEBUG) # Link directly with the TimesTen Client driver applcs:appl.o $(CC) -o applcs appl.o $(LIBSCS)
注意:
|
アプリケーションが直接リンクされたかどうかをテストするには、例2-3に示すように、SQLGetInfo
をコールし、データ・ストア接続ハンドルのドライバ・リリースを確認します。
直接リンクされているアプリケーションの場合、SQLGetInfo
をコールすると変更されていない接続ハンドルが返されます。 ドライバ・マネージャを使用するアプリケーションの場合、返される接続ハンドルは渡したハンドルと異なります。
例2-3 アプリケーションが直接リンクされているかどうかのテスト
RetCode = SQLDriverConnect(hdbc,NULL,szConnString, SQL_NTS,szConnout,255,&cbConnOut,SQL_DRIVER_NOPROMPT); rc = SQLGetInfo(hdbc, SQL_DRIVER_HDBC, &drhdbc, sizeof (drhdbc), &drhdbclen); if (drhdbc != NULL && drhdbc != hdbc) { /* Linked with driver manager */ } else { /* Directly linked with TimesTen driver */ }
C環境を構成した後、TimesTenクイック・スタート・デモ・アプリケーションをコンパイルおよび実行して、すべてが正しく設定されていることを確認できます。 次のトピックの詳細は、クイック・スタートのようこそページ(install_dir
/quickstart.html
)で、特にサンプル・プログラムの下のリンクを参照してください。
デモ・スキーマおよび設定
build_sampledb
スクリプトでは、サンプル・データベースおよびデモ・スキーマが作成されます。 デモの使用を開始する前に、このスクリプトを実行する必要があります。
デモ環境および設定
通常、TimesTenの設定に使用するttenv
スクリプトのスーパーセットのttquickstartenv
スクリプトでは、デモ環境が設定されます。 いずれかのデモをコンパイルおよび実行するセッションに入るたびに、このスクリプトを実行する必要があります。
デモおよび設定
TimesTenでは、quickstart/sample_code
ディレクトリのサブディレクトリにODBC、XLA、OCIおよびPro*C/C++用のデモが用意されています。 デモのコンパイルおよび実行方法については、サブディレクトリのREADMEファイルを参照してください。
デモの内容
各デモの概要について説明します。