ヘッダーをスキップ
Oracle® TimesTen In-Memory Database TTClassesガイド
11gリリース2 (11.2.2)
B66724-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 TTClasses開発環境

この章では、TTClasses開発環境の使用を開始する際に役立つ情報を示します。

TTClassesは、TimesTenのインストール時にコンパイルおよび事前構成されます。TTClassesがコンパイルされたものとは別のC++ランタイムを使用する場合は、make(UNIX)またはnmake(Microsoft Windows)ユーティリティを使用してライブラリを再コンパイルする必要があります。

ここでは、TTClasses自体の環境変数とコンパイルについての説明、およびTTClassesアプリケーションのコンパイルとリンクに関する情報を示し、TTClassesのクイック・スタート・デモ・アプリケーションを紹介します。この付録は、次の項で構成されています。

TTClassesの設定

この項では、TTClassesの設定方法について、次の内容で説明します。

UNIXでのTTClassesの設定

この項では、UNIX環境でTTClassesを設定する方法を、次の内容で説明します。

UNIX環境変数の設定

TTClassesを使用するには、シェル環境変数がinstall_dir/binディレクトリの適切なttenvスクリプト、つまりUNIXプラットフォームの場合ttenv.shまたはttenv.cshのいずれか(シェルに応じていずれかを使用)で正しく設定されていることを確認します。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の環境変数に関する説明を参照してください。

これを直接実行するかわりに、必要なスクリプトの行をログイン初期化スクリプト(例: .profileまたは.cshrc)に追加することができます。

UNIXでのTTClassesのコンパイル

アプリケーションのリンクで問題が発生する場合は、TTClassesのコンパイルに使用したものとは別のC++ランタイムを使用したことが原因である可能性があるため、ライブラリをmakeユーティリティで再コンパイルします。

TTClassesを再コンパイルする場合は、ttclassesディレクトリに移動します(ここでinstall_dirは、TimesTenのインストール・ディレクトリです)。

$ cd install_dir/ttclasses

最初からコンパイルしなおすには、make cleanを実行します。

$ make clean

直接接続の場合にTTClassesを再コンパイルするには、次のようにします。

$ make

クライアント/サーバー接続の場合にTTClassesを再コンパイルするには、MakefileCS Makeファイルを使用します。

$ make -f MakefileCS

UNIXのコンパイル・オプション

UNIX環境でTTClassesをコンパイルする際に、次のmakeターゲット・オプションを利用できます。

  • all: 共有最適化済ライブラリ(複数可)をビルドします(デフォルト)。これは、直接接続の場合はMakefileと、クライアント/サーバー接続の場合はMakefileCSと使用します。

  • shared_opt: 共有最適化済ライブラリをビルドします。現在、これはallと同じ結果になります。

  • shared_debug: 共有デバッグ・ライブラリをビルドします。

  • static_opt : 静的最適化済ライブラリをビルドします。

  • static_debug: 静的デバッグ・ライブラリをビルドします。

  • opt: 最適化済ライブラリ(共有および静的)をビルドします。

  • debug: デバッグ・ライブラリ(共有および静的)をビルドします。

  • clean: TTClassesライブラリおよびオブジェクト・ファイルを削除します。

makeターゲットを指定するには、コマンドラインでmakeターゲット名を使用します。

たとえば、TTClassesの共有デバッグ・バージョンをビルドするには、次を実行します。

$ make clean shared_debug

コンパイル後のTTClassesのインストール(UNIXのみ)

コンパイルの後、TimesTenインスタンスの全ユーザーがTTClassesを使用できるようにするために、ライブラリをインストールします。UNIXシステムにTTClassesライブラリをインストールする手順は次のとおりです。

$ cd install_dir/ttclasses
$ make install

WindowsでのTTClassesの設定

この項では、Windows環境にTTClassesを設定する方法について、次の内容で説明します。


注意:

Windowsでは、TTClassesライブラリはコンパイル後、自動的にインストールされます。

Windows環境変数の設定

再コンパイルの前に、PATHINCLUDEおよびLIB環境変数が正しいVisual Studioのディレクトリをポイントしていることを確認します。これには、適切なVisual Studio C++バッチ・ファイル(たとえば、VCVARS32.BATまたはVSVARS32.BAT)を実行します。

その後、次を実行してTimesTenの環境変数を設定します(インストール時に設定されていない場合)。

install_dir\bin\ttenv.bat

WindowsでのTTClassesのコンパイル

アプリケーションのリンクで問題が発生する場合は、TTClassesのコンパイルに使用したものとは別のC++ランタイムを使用したことが原因である可能性があるため、ライブラリをnmakeユーティリティで再コンパイルします。

TTClassesを再コンパイルする場合は、ttclassesディレクトリに移動します(ここでinstall_dirは、TimesTenのインストール・ディレクトリです)。

install_dir\ttclasses

最初からコンパイルしなおすには、nmake cleanを実行します。

install_dir\ttclasses> nmake clean

その後、再コンパイルします。デフォルトで、これは直接接続およびクライアント/サーバー接続の両方で使用できます。

install_dir\ttclasses> nmake

Windowsのコンパイル・オプション

Windows環境でTTClassesをコンパイルする際に、次のmakeターゲット・オプションを利用できます。

  • all: 直接接続およびクライアント/サーバー接続用に最適化済共有ライブラリをビルドします(デフォルト)。

  • client: クライアント/サーバー用のみに最適化済共有ライブラリをビルドします。

  • msdm: Microsoftドライバ・マネージャ用に共有最適化済ライブラリをビルドします。

  • clean: TTClassesライブラリおよびオブジェクト・ファイルを削除します。

makeターゲットを指定するには、コマンドラインでmakeターゲット名を使用します。

たとえば、クライアント/サーバーのTTClassesライブラリのみをビルドするには、次を実行します。

install_dir\ttclasses> nmake clean client

TTClassesコンパイラ・マクロ

必要に応じて、TTClassesのMakeファイルを手動で変更して、TTClassesコンパイラ・マクロにフラグを追加できます。UNIXの場合、-Dflagnameを追加します。Windowsの場合、/Dflagnameを追加します。

この項では、次のコンパイラ・マクロについて説明します。

TTEXCEPT: C++例外のスロー

TTClassesでにC++例外がスローさせるようにするには、-DTTEXCEPTフラグを使用してTTClassesとアプリケーションをコンパイルします。(TTClassesはデフォルトでこの方法でコンパイルされます。)すべてのTTClasses関数コールの前後に{try/catch}ブロックを配置し、TTStatus型の例外を捕捉します。

または、推奨されませんが、TTClassesとアプリケーションをTTEXCEPTを無効にしてコンパイルする操作モードもあります。このモードでは、以前のTimesTenリリースの場合のように、明示的なTTStatus&パラメータを使用した古いメソッド・バージョンを使用してエラーが処理されます。

「TTStatus」を参照してください。

TTC_USE_STRINGSTREAM、USE_OLD_CPP_STREAMS: C++ I/Oストリームの場合

C++ストリームには複数のタイプがあり、それぞれに互換性はありません。TimesTenは2つの関連フラグを提供します。アプリケーションで使用するストリームに応じて、設定するフラグが決まったり、またはいずれのフラグも設定しないかどうかが決まります(次に、新しいストリーム型から古い型の順に示します)。

  • <iostream>を含め、ostringstreamクラスを使用するストリームの場合、TTC_USE_STRINGSTREAMフラグを設定します。

  • <iostream>を含め、ostrstreamクラスを使用するストリームの場合、いずれのフラグも設定しません。これは、ほとんどのプラットフォームおよびコンパイラのデフォルトです。

  • <iostream.h>を含め、ostrstreamクラスを使用するストリームの場合、USE_OLD_CPP_STREAMSフラグを設定します。これは、一部の古いプラットフォームおよびコンパイラのデフォルトです。

TTClasses Makeファイルを確認します。フラグが適切に設定されていない場合、Makeファイルを適切に更新して、TTClassesを再コンパイルした後、以前のTTClassesライブラリ・ファイルを再コンパイルしたものに置き換えます。

以降の項も参照してください。

TTC_USE_STRINGSTREAM: ostringstreamを使用するC++ I/Oストリーム・コードの場合

このコンパイラ・フラグは、ostringstreamクラスを使用しC++ストリーム・タイプを確実にサポートするC++コンパイラで使用するためのものです。プログラムでC++ストリーム・コードを使用し、<iostream>を含め、ostringstreamクラスを使用する場合、TTClassesは-DTTC_USE_STRINGSTREAMも設定してコンパイルする必要があります。

その場合、USE_OLD_CPP_STREAMSフラグは設定しないことも注意します。


注意:

バージョン3.2以上のgccでは、デフォルトでTTC_USE_STRINGSTREAMフラグがinstall_dir/include/ttclasses/TTIostream.hに設定されています。

いずれも使用しない: ostrstreamを使用するC++ I/Oストリーム・コードの場合

プログラムでC++ストリーム・コードを使用し、<iostream>を含め、ostrstreamクラスを使用する場合、TTC_USE_STRINGSTREAMフラグもUSE_OLD_CPP_STREAMSも設定しないでください。

USE_OLD_CPP_STREAMS: ostrstreamを使用する古いC++ I/Oストリーム・コード

このコンパイラ・フラグは、<iostream>をサポートしない、古いC++コンパイラのためのものです。プログラムで古いC++ストリーム・コードを使用し、<iostream.h>を含め、ostrstreamクラスを使用する場合、TTClassesは-DUSE_OLD_CPP_STREAMSも設定してコンパイルする必要があります。

その場合、TTC_USE_STRINGSTREAMフラグは設定しないでください。

TTDEBUG: 追加のデバッグおよびエラー・チェック・ロジックの生成

追加のデバッグ情報を生成するには、-DTTDEBUGを使用してTTClassesをコンパイルします。この追加情報はパフォーマンスを多少低下させるため、このフラグは(本番ではなく)開発システムでのみ使用してください。

TT_64BIT: TTClassesの64-bitのTimesTenでの使用

64-bitのTimesTenアプリケーションを作成する場合は、-DTT_64BITを使用してTTClassesをコンパイルします。

プラットフォーム固有のコンパイラ・マクロ

次のコンパイラ・マクロは、プラットフォームまたはコンパイラの特定の組合せに固有のものです。これらのコンパイラ・マクロを手動で指定する必要はありません。これらが使用されるかどうかは、configureプログラムで選択されたMakeファイルによって決定されます。

  • gcc: 任意のプラットフォームでgccを使用する場合、-DGCCフラグを使用してTTClassesをコンパイルします。

アプリケーションのコンパイルおよびリンク

ここでは、UNIXおよびWindowsでTTClassesアプリケーションをコンパイルおよびリンクする方法について説明します(WindowsでODBCドライバ・マネージャを使用する場合の考慮事項に関する項もあります)。

また、関連情報については『Oracle TimesTen In-Memory Database C開発者ガイド』の次の項を参照してください。

  • ダイレクト・ドライバとクライアント・ドライバの使用の対比、Windows上でドライバ・マネージャを使用するかどうかなど、TimesTenのリンク・オプションに関する一般情報については、リンク・オプションに関する説明

  • アプリケーションのコンパイルおよびリンクに関する説明

UNIXでのアプリケーションのコンパイルおよびリンク

アプリケーションをコンパイルする場合、install_dir/include/ttclassesディレクトリにあるTTClassesヘッダー・ファイルを含めます。これは、このディレクトリのTTInclude.hを、次のように含めるだけで実行できます。

次のコンパイル・コマンドを使用します。

-Iinstall_dir/include

コードで、次の行を使用します。

#include <ttclasses/TTInclude.h>

TTClasses XLAプログラムには、次も含める必要があります。

#include <ttclasses/TTXla.h>

次の表に、UNIXプラットフォームでアプリケーションのリンクに使用できるTTClassesライブラリをリストします。

使用方法 ライブラリ
TimesTen直接接続 libttclasses.so
TimesTenクライアント/サーバー接続 libttclassesCS.so

たとえば、次をリンク・コマンドに追加すると、クライアント・ドライバが使用されます。

-Linstall_dir/lib -lttclassesCS

-Lオプションを指定すると、リンカーでライブラリ・ファイル用のTimesTen libディレクトリが検索されます。-lttclassesCSオプションを指定すると、ドライバでリンクが行われます。

Solarisでは、デフォルトのTimesTen ODBCクライアント・ドライバは、Studio 11を使用してコンパイルされています。このライブラリによって、Sun Studio 11 C/C++コンパイラでコンパイルされたアプリケーションをTimesTen Clientに直接リンクできます。

AIXでは、アプリケーションとTimesTen ODBCクライアント・ドライバをリンクする場合、リンク・コマンドには、クライアント・ドライバの後に、C++ランタイム・ライブラリを含める必要があります(クライアント・ドライバはC++で記述されており、AIXでは自動的にはリンクされないため)。

-Linstall_dir/lib -lttclassesCS -lC_r

quickstart/sample_code/ttclassesディレクトリのMakeファイルを使用すると、独自のMakeファイルを作成できます。

Windowsでのアプリケーションのコンパイルおよびリンク

アプリケーションをコンパイルする場合、install_dir\include\ttclassesディレクトリにあるTTClassesヘッダー・ファイルを含めます。これは、このディレクトリのTTInclude.hを、次のように含めるだけで実行できます。

次のコンパイル・コマンドを使用します。

/Iinstall_dir\include

コードで、次の行を使用します。

#include <ttclasses/TTInclude.h>

TTClasses XLAプログラムには、次も含める必要があります。

#include <ttclasses/TTXla.h>

次の表に、Windowsプラットフォームでアプリケーションのリンクに使用できるTTClassesライブラリをリストします。

使用方法 ライブラリ
TimesTen直接接続 ttclasses1122.lib
TimesTenクライアント/サーバー接続 ttclasses1122CS.lib
Microsoft ODBCドライバ・マネージャ ttclasses1122DM.lib

次の「ODBCドライバ・マネージャ使用時の考慮事項(Windows)」の項を参照してください。


リンク・コマンドに、install_dir\lib\ttclasses1122.libなどの適切なライブラリを追加します。

quickstart\sample_code\ttclassesディレクトリのMakeファイルを使用すると、独自のMakeファイルを作成できます。

ODBCドライバ・マネージャ使用時の考慮事項(Windows)

WindowsでODBCドライバ・マネージャを使用する場合、TTClassesには次の制限があることに注意してください。(これらの制限は、TimesTenクイック・スタートで提供されているデモのttdmドライバ・マネージャには適用されません。)

  • XLA機能はサポートされません。

  • REF CURSOR機能はサポートされません。

  • このドライバ・マネージャでは、ODBCの標準ではないLOBロケータAPIまたはLOBデータ型はサポートしていません。ただし、ユーザーは「LOBの使用」で説明するとおり、LOBの簡易データ・インタフェースは使用できます。

また、ドライバ・マネージャは、TimesTenで使用する場合、SQL_C_BIGINTおよびSQL_C_TINYINTのODBC Cデータ型もサポートしていません。ドライバ・マネージャを使用する場合、シグネチャでこれらのデータ型のいずれかを使用するメソッドをコールすることはできません(たとえば、TTCmdgetColumn()getColumnNullable()getNextColumn()getNextColumnNullable()setParam()getParam()またはBindParameter()の各メソッドの適用可能なオーバーロード・バージョンなどです)。


注意:

TimesTenでは、WindowsとUNIX両方用のドライバ・マネージャを用意しており、クイック・スタート・サンプル・アプリケーションが付属しています。このドライバ・マネージャは完全にはサポートされていません。TimesTenのダイレクト・ドライバおよびクライアント・ドライバのみのサポートに限定されています。前述の機能またはパフォーマンスの制限はありません。直接接続およびクライアント/サーバー接続の両方を同時に使用する必要のあるアプリケーションでは、パフォーマンスにあまり影響を与えず、このドライバ・マネージャを使用してこれを実現できます。

TimesTen TTClassesデモについて

C++環境を構成した後、TimesTenクイック・スタート・デモ・アプリケーションをコンパイルおよび実行することで、すべてが適切に設定されたことを確認できます。クイック・スタートのようこそページ(install_dir/quickstart.html)の「SAMPLE PROGRAMS」の下にあるリンクで、次の事項の説明を参照してください。

  • デモ・スキーマおよび設定: build_sampledbスクリプト(UNIXでは.shまたはWindowsでは.bat)は、サンプル・データベースおよびデモ・スキーマを作成します。デモの使用を開始する前に、これを使用する必要があります。

  • デモ環境および設定: ttquickstartenvスクリプト(UNIXでは.shまたは.csh、Windowsでは.bat)(通常、TimesTenの設定に使用するttenvスクリプトのスーパーセット)によって、デモ環境を設定します。いずれかのデモをコンパイルおよび実行するセッションに入るたびに、これを使用する必要があります。

  • デモおよび設定: install_dir/quickstart/sample_codeディレクトリの下にあるサブディレクトリには、TTClassesおよびXLA用のデモが提供されています。デモのコンパイルおよび実行方法については、サブディレクトリにあるREADMEファイルを参照してください。

  • デモの実行内容: 「SAMPLE PROGRAMS」の下の「TTClasses(C++)」をクリックすると、各デモの概要を参照できます。