OCIサンプル・プログラムのコンパイルおよび実行


重要な前提条件

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

OCIサンプル・プログラムをコンパイルする方法

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

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

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

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

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

Windowsの場合、デフォルトですべてのOCI実行可能ファイルがビルドされた状態で付属しています。
すべてのOCI実行可能ファイルをビルドする必要がある場合、Windowsではnmakeを、Linux/UNIXではmakeを入力します。

 

OCIサンプル・プログラムを実行する方法

  addemp これは、ユーザーに情報の入力を求め、新しい従業員に対応するデータをEMP表に挿入するOCIプログラムです。

実行時に、ユーザー名およびパスワードの入力が求められます。
サービス名は、TNSnames.oraファイルのエントリまたは単純な接続文字列にすることができます。

このプログラムが動作するには、EMP表が存在している必要があります。

サンプルのtnsnames.oraファイルは、<install_dir>/network/admin/samples/tnsnames.oraにあります。

 例:

  (デフォルトのDSN sampledb_1121およびデフォルトのユーザーappuserを使用してプログラムを実行する場合。TNSサービス名には、sampledb_1121を入力します。かわりに、単純な接続文字列を使用する場合は、localhost/sampledb_1121:timesten_directを入力します。)

  > addemp


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

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

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

 例:

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

  > plsqlOCI

(ユーザー名、パスワードおよびサービス名を指定してプログラムを実行する場合)

  > plsqlOCI -user myuser -password mypassword -service myservice

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

 

 

  tptbmOCI このプログラムでは、マルチユーザー・スループット・ベンチマークが実装されます。デフォルトでは、トランザクション・ミックスは、80%のSELECT(読取り)トランザクションおよび20%のUPDATE(書込み)トランザクションで構成されています。トランザクション・ミックスには、SELECTおよびUPDATEの他に、INSERTおよびDELETEを含めることもできます。SELECT、UPDATE、INSERTおよびDELETEの比率は、コマンドラインで指定されます。各トランザクションは、1つ以上のSQL操作で構成されます。

ベンチマークは、最初にデータ・ストアにデータを移入し、そのデータ・ストアに対してトランザクション・ミックスを実行します。トランザクション・ミックスの一部として挿入される行の数は、データベースに最初に移入される行の数を超えることができません。

ベンチマークの測定エラーは、最大で2秒です。200秒間を超えるロードの場合、この測定エラーは無視できます。ベンチマーク用に提案されているロードは、600秒以上続くものです。

このテスト用のスキーマは、プログラム・ソース・ファイルtptbmOCI.cに示されています。

 例:

(読取り80%、更新20%、対象がappuser@sampledb_1121、10,000行のデータベースの10,000のトランザクションの場合)

  > tptbmOCI

(読取り80%、更新20%、対象がscott@myService、1,089行のデータベースの1,000のトランザクションの場合)

  > tptbmOCI -user scott -service myService -xact 1000 -key 33

(読取り60%、更新10%、挿入5%、削除25%、トランザクションあたり1つのSQL操作、対象がappuser@sampledb_112の場合)

  > tptbmOCI -read 60 -update 10 -insert 5 -delete 25

(トランザクションあたりのワークロードで選択3、挿入1、更新1を使用し、対象がappuser@sampledb_112の場合)

  > tptbmOCI -multiop

(トランザクションあたりのクライアント/サーバー・ワークロードで10×(読取り3、挿入1、更新1)を使用し、対象がappuser@sampledbCS_112の場合)

  >tptbmOCI -multiop -min 10 -max 10 -service sampledbCS_1121

(PLSQLを使用し、トランザクションあたりのクライアント/サーバー・ワークロードで10×(読取り3、挿入1、更新1)を使用する場合)

  > tptbmOCI -multiop -plsql -min 10 -max 10

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


 

OCIの詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』の「OCI」を参照してください。