TTClassesサンプル・プログラムをコンパイルおよび実行する方法


重要な前提条件

1. サンプル・データベースとユーザー・アカウントを設定する

次のbuild_sampledbスクリプトを1回実行して、サンプル・データベースおよびユーザー・アカウントを設定する必要があります。

Windows:   > cd quickstart/sample_scripts/createdb
> build_sampledb.bat
UNIX/Linux:   $ cd quickstart/sample_scripts/createdb
$ ./build_sampledb.sh

2. サンプル・プログラムをコンパイルおよび実行するための環境を設定する

各端末セッションに対して、次のスクリプトを実行する必要があります。

Windows:   > quickstart/ttquickstartenv.bat
UNIX/Linux:   $ . quickstart/ttquickstartenv.sh または
$ source quickstart/ttquickstartenv.csh

TTClasses(C++)サンプル・プログラムをコンパイルする方法

sample_code/ttclassesディレクトリのサンプル・プログラムをコンパイルするには、同じディレクトリにあるmakefileを実行します。TimesTenがインストールされているプラットフォームに基づいて、適切なmakefileが使用可能であることを確認してください。

sample_code/ttclassesディレクトリの特定のサンプル・プログラムをビルドするには、次のコマンドを使用します。

[Windows] > nmake <program-name>.exe
[Linux/UNIX] $ make <program-name>
ここで、<program-name>はコンパイル対象のプログラムです。

たとえば、typetest.cppプログラムをコンパイルする場合は、次のコマンドを実行します。

[Windows] > nmake typetest.exe
[Linux/UNIX] $ make typetest

C++の名前マングルのため、C++ライブラリを使用するC++プログラムは、互換性のあるC++コンパイラ(および互換性のあるバージョン)を使用する必要があります。このC++互換性の問題に対処するために、TimesTen C++ TTClassesライブラリはソース・コードとして付属しています。ユーザーは、適切なC++コンパイラでこのTTClassesライブラリを再コンパイルすることができます。Windowsの場合、TTClassesライブラリおよびクイック・スタートの実行可能ファイルは、デフォルトでVisual Studio 2003でビルドされた状態で付属しています。

 

サンプルTTClasses(C++)プログラムを実行する方法

  basics このサンプル・プログラムは、TTClassesを使用するプロジェクトを開始する際の便利なテンプレートとなります。TimesTenデータベースとの接続および切断の方法、SQL文の準備、バインド、実行、フェッチおよびクローズの方法が示されています。シリアライズ可能トランザクションとコミット読取りトランザクションの両方について、TTClasses例外処理およびSQL操作のタイミングの例が示されています。

 例:

  (appuserとして実行する場合(DSN=sampledb_1121、UID=appuser))
  basics

  (インスタンス管理者として実行する場合)
  basics sampledb_1121

  (クライアント/サーバー・モードでユーザーadmとして実行する場合)
  basicsCS -connstr "DSN=sampledbCS_1121;uid=adm"

  プログラムの完全な構文を参照するには、"basics -help"を実行してください。

  bulkcp このサンプル・プログラムは動的SQLを使用してSQL問合せを実行し、その結果をコンソールまたはファイルに書き込みます。ユーザーは、コマンドラインでSQL問合せを入力します。オプションで、NULL値および列セパレータとして表示する文字を指定できます。

 例:

  (デフォルトのセパレータを使用して、stdoutにユーザー問合せを表示する場合)
  bulkcp -query "SELECT * from emp"

  (Linux/UNIXでデフォルトのセパレータを使用して、ファイルにユーザー問合せを表示する場合)
  bulkcp -query "SELECT * from dept" -output /tmp/myQuery.txt

  (Windowsでデフォルト以外のセパレータを使用して、ファイルにユーザー問合せを表示する場合)
  bulkcp -sep " " -query "SELECT * from dept" -output c:\tmp\myQuery.txt

  プログラムの完全な構文を参照するには、"bulkcp -help"を実行してください。

 

  bulktest このサンプル・コードは、一連の挿入、更新および削除操作を、初回は非バルク・モードで、次に様々なバッチ・サイズのバルク・モードで実行します。batchsizeを256(最適な値)に設定すると、挿入操作のパフォーマンスは大きく向上し、更新および削除操作のパフォーマンスはわずかに向上します。

例:

  (パラメータを指定せずに、デフォルト設定(DSN=sampledb_1121、UID=appuser、バッチ・サイズ= 256)でプログラムを実行する場合)
  bulktest

  (バッチ・サイズ=512で、デフォルトの接続文字列(DSN=sampledb_1121およびUID=appuser)を使用してプログラムを実行する場合)
  bulktest -batchsize 512

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合)
  bulktest -connstr "DSN=sampledb_1121;uid=adm"

  プログラムの完全な構文を参照するには、"bulktest -h"を実行してください。

 

  catalog このサンプル・プログラムは、すべての表、ビューおよび索引を含むデータベース・スキーマ情報を出力します。

例:

  (パラメータを指定せずに、デフォルト設定(DSN=sampledb_1121、UID=appuser)でプログラムを実行する場合)
  catalog

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合)
  catalog -connstr "DSN=sampledb_1121;uid=adm"

  プログラムの完全な構文を参照するには、"catalog -h"を実行してください。

 

  plsqlTTCLASSES このサンプル・プログラムは、TTClassesを使用し、4つの異なる方法で共通のPL/SQLパッケージ(emp_pkgおよびsample_pkg)にアクセスします。

- INおよびOUTパラメータを使用してストアド・プロシージャをコールする
- INおよびOUTパラメータを使用してストアド・ファンクションをコールする
- 無名ブロックをコールし、ブロックとのホスト変数のやりとりを行う
- ストアド・プロシージャをコールして参照カーソルを開き、TTClassesを使用して参照カーソルの結果セットを処理する

このプログラムが動作するには、EMP表と、emp_pkgおよびsample_pkg PL/SQLパッケージが存在している必要があります。

使用例:

  (デフォルトのDSNとデフォルトのユーザー使用してプログラムを実行し、パスワードの入力を求める場合)
  plsqTTCLASSES

  (DSNおよびユーザー名を指定してプログラムを実行し、パスワードの入力を求める場合)
  plsqTTCLASSES -connstr "DSN=sampledb_1121;UID=appuser"

  (DSN、ユーザー名およびパスワードを指定してプログラムを実行する場合)
  plsqTTCLASSES -connstr "DSN=sampledb_1121;UID=appuser;PWD=mypassword"

プログラムの完全な構文を参照するには、"plsqlTTCLASSES -h"を実行してください。

 

  pooltest このサンプル・プログラムでは、マルチスレッド接続プールの使用方法およびエラー処理を示します。このプログラムは、マルチスレッド・アプリケーションで、TTClassesにTTConnectionPoolクラスを使用する方法を示します。ユーザーは、挿入操作に使用するスレッドの数および接続プールに保持する接続の数を指定できます。

例:

  (パラメータを指定せずに、デフォルト設定(接続1つ、挿入スレッド2つ、フェッチ・スレッド2つ、DSN=sampledb_1121、UID=appuser)でプログラムを実行する場合)
  pooltest

  (接続2つおよび挿入スレッド4つを指定してプログラムを実行する場合)
  pooltest -insert 4 -conn 2

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合)
  pooltest -connstr "DSN=sampledb_1121;uid=adm"

  プログラムの完全な構文を参照するには、"pooltest -h"を実行してください。

 

  ttSizeAll このサンプル・プログラムでは、複数の表に対するTimesTenユーティリティttSizeのコールを示します。ユーザーが読取り権限を持つ表のみが表示されます。

例:

  (パラメータを指定せずに、プログラムでDSN=sampledb_1121、UID=appuserを使用する場合)
  ttSizeAll

  (出力にユーザー表およびシステム表の両方を表示する場合)
  ttSizeAll -listsys

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合)
  ttSizeAll -connstr "dsn=sampledb_1121;uid=xlauser"

  プログラムの完全な構文を参照するには、"ttSizeAll -h"を実行してください。

 

  typetest このサンプル・プログラムでは、サポートされるすべてのデータ型の列を含む表typetestを作成することによって、Oracle TimesTenでサポートされる様々なデータ型の使用方法を示します。表の作成後、このプログラムは表にデータを挿入し、表のデータを問い合せます。

例:

  (パラメータを指定せずに、デフォルト設定(DSN=sampledb_1121、UID=appuser)でプログラムを実行する場合)
  typetest

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合)
  typetest -connstr "dsn=sampledb_1121;uid=appuser"

  プログラムの完全な構文を参照するには、"typetest -h"を実行してください。

  ttXlaAdmin このプログラムでは、データベースでXLAブックマークをリストまたは削除する方法を示します。システムのすべてのブックマークを参照できるのは管理者のみであるため、このプログラムを実行するにはユーザーがADMIN権限を持っている必要があります。XLA権限を持つユーザーは、そのユーザー自身が所有するブックマークをリストまたは削除することができます。

トランザクション・ログ・ファイルのパージを妨げる不要なブックマークは、システムでの操作に問題を引き起こす可能性があるため、削除する必要があります。

入力を行わずにプログラムを実行する場合、デフォルトでlistオプションが使用されます。プログラムは、システムで検索された各XLAブックマークについて、その名前、LSN、およびブックマークがトランザクション・ログを保持しているかどうかをリストします。

removeオプションを使用すると、ユーザーはブックマーク名を使用してXLAブックマークを削除できます。removeallオプションを使用すると、すべてのブックマークを削除できます。ブックマークは、使用中でないときにのみ削除できます。

例:

  (パラメータを指定せずに、プログラムでlistコマンドを実行し、DSN=sampledb_1121、UID=admで接続する場合)
  ttXlaAdmin

   (データベースのすべてのユーザーからすべてのXLAブックマークを削除する場合。これを行うにはADMIN権限が必要です。)
  ttXlaAdmin -removeall

  (特定のブックマークを削除する場合。これを行うにはADMIN権限が必要です。)
  ttXlaAdmin -remove <bookmark>

  プログラムの完全な構文を参照するには、"ttxlaAdmin -h"を実行してください。

 

  xlasubscriber1 このプログラムでは、表への変更通知をサブスクライブするために、実行時にユーザーが選択したトランザクション・ログAPI(XLA)機能を使用する方法を示します。

また、永続XLAブックマークを作成する方法、および指定した表に対する変更を監視して処理する方法を示します。このプログラムは、処理された変更レコード、およびその変更の原因となった、表で実行された操作(挿入、更新または削除)を表示します。

追跡中の表にワークロードを生成するには、ttIsqlセッションまたはTimesTenユーザー・アプリケーションを使用して、追跡対象のその表に変更を適用します。このプログラムを実行するには、ユーザーがXLA権限を持っている必要があります。

例:

  (パラメータを指定せずに、プログラムでDSN=sampledb_1121、UID=xlauserで接続する場合。追跡する表の入力が求められます。)
  xlasubscriber1

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合。XLA権限が必要です。)
  xlasubscriber1 -connstr "dsn=<mydsn name>;uid=myusername>"

  プログラムの完全な構文を参照するには、"xlaSubscriber1 -h"を実行してください。

 

  xlasubscriber2 このプログラムでは、対象の複数の表(ここでは3つの表)でXLAイベントをサブスクライブする方法を示します。このプログラムは、3つの表(MYTABLE、ICFおよびABC)に対する変更を監視します。

トランザクションの挿入、更新および削除によって影響を受ける各行について、その列の名前と値が表示されます。トランザクション・ワークロードを作成するには、ttIsqlセッションまたはTimesTenユーザー・アプリケーションから、MYTABLE、ICFまたはABC表あるいはこれらすべての表に対してトランザクションを実行できます。

このプログラムは、対象の表自体にアクセスする権限は持たず、対象の表に対する変更を参照する権限のみを持つXLAサブスクライバの例です。このプログラムを実行するには、ユーザーがXLA権限を持っている必要があります。

例:

  (パラメータを指定せずに、プログラムがDSN=sampledb_1121、UID=xlauserで接続する場合)
  xlasubscriber2

  (異なるDSNおよび任意のユーザーIDを使用してプログラムを実行する場合。XLA権限が必要です。)
  xlasubscriber2 -connstr "dsn=<mydsn name>;uid=myusername>"

  プログラムの完全な構文を参照するには、"xlasubscriber2 -h"を実行してください。

TTClassesの詳細は、『Oracle TimesTen In-Memory Database TTClassesガイド』を参照してください。