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


重要な前提条件

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

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

sample_code/jdbcディレクトリのサンプル・プログラムをコンパイルするには、使用しているプラットフォーム(Sun、HP、JRocketまたはIBM JDK)用の関連するTimesTenでサポートされるJavaコンパイラを使用します。使用しているプラットフォームでサポートされるJDKのリストについては、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。

-
特定のプログラムをコンパイルする場合: javac <progname.java>
-
すべてのサンプル・プログラムをまとめてコンパイルする場合: javac *.java

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

注意: 32ビットと64ビットの両方のJDKが同じディレクトリにインストールされているプラットフォーム(Solarisなど)で64ビットのJVMを実行するには、Javaを起動する際に-d64オプションを指定する必要があります。

 

  asyncJMS このプログラムは、TimesTen JMS/XLA実装を使用して、メッセージを処理します。

a) XLAユーザーとしてデータベースに接続する
b) CUSTOMER表に対するコミット済の変更をリスニングする
c) JMSサブスクライバを使用する
d) onMessage()およびJMS MessageListenerを介してメッセージを非同期に受信する
e) コンソールに変更記録を表示する
f) [CTRL]+[C]が入力されたら、データベースから切断する

level1からlevel4のJDBCプログラムか、または(input4.datスクリプトで)ttIsqlを使用すると、コミット済の変更をCUSTOMER表に適用できます。

例:

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121、UID=xlauser、および入力を求めたパスワードを使用して接続し、APPUSER.CUSTOMERをリスニングする場合)
\x{00a0}\x{00a0}java asyncJMS

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121およびUID=xlauserを使用して接続し、APPUSER.CUSTOMERをリスニングする場合)
\x{00a0}\x{00a0}java asyncJMS -xlauser password

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121およびUID=xlauserを使用して接続し、MYUSER.CUSTOMER表をリスニングする場合)
\x{00a0}\x{00a0}java asyncJMS -xlauser password -schema myUser

\x{00a0}\x{00a0}プログラムの完全な構文を参照するには、"java asyncJMS -h"を実行してください。

 

 

  level1 このプログラムは、TimesTen JDBC DriverManagerインタフェースを使用して、TimesTenデータベースでの基本操作を示します。
a) com.timesten.jdbc.timesTenDriverインタフェースを使用して接続する
b) 入力ファイルinput1.datから読み込まれたすべてのデータをCUSTOMER表に挿入する
c) ttOptUpdateStatsをコールして統計を更新する
d) CUSTOMER表から選択し、結果セットをフェッチしてstdoutに出力する
e) データベースから切断する

例:

  (デフォルトのDSNのsampledb_1121およびUID=appuserを使用して、直接リンクで接続する場合)
  java level1

  (デフォルトのDSNおよびUIDを使用して、クライアント/サーバー・モードで接続する場合)
  java level1 -c

  (独自のDSNのmy_dsnを使用して接続する場合)
  java level1 my_dsn

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

 

  level2 このプログラムは、TimesTen DataSourceインタフェースを使用して、TimesTenデータベースでの基本操作を示します。
a) TimesTenDataSourceインタフェースを使用して接続する
b) datfilesサブディレクトリにあるinput2.datファイルから読み取られたすべてのデータを挿入する
c) ttOptUpdateStatsをコールして統計を更新する
d) PRODUCT表から重複する製品データを削除する
e) 製品価格を10%上げてPRODUCT表を更新する
f) PRODUCT表からデータを選択し、結果セットをフェッチしてstdoutに出力する
g) データベースから切断する

例:

  (デフォルトのDSNのsampledb_1121およびUID=appuserを使用して、直接リンクで接続する場合)
  java level2

  (デフォルトのDSNおよびUIDを使用して、クライアント/サーバー・モードで接続する場合)
  java level2 -c

  (独自のDSNのmy_dsnを使用して接続する場合)
  java level2 my_dsn

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

 

  level3 このプログラムは、TimesTen JDBCドライバを使用して、次の注文処理を実行します。
a) TimesTenDataSourceインタフェースを使用してデータベースに接続する
b) input3.datファイルのすべての注文をORDERS表およびORDER_ITEM表に挿入して処理し、入手可能な数量を確認するためにINVENTORY表から選択し、注文の数量を差し引いてINVENTORY表を更新する。在庫に十分な数量がない場合、プログラムはトランザクションをロールバックして、メッセージを発行する
c) データベースから切断する

例:

  (デフォルトのDSNのsampledb_1121およびUID=appuserを使用して、直接リンクで接続する場合)
  java level3

  (デフォルトのDSNおよびUIDを使用して、クライアント/サーバー・モードで接続する場合)
  java level3 -c

  (独自のDSNのmy_dsnを使用して接続する場合)
  java level3 my_dsn

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

 

  level4 このプログラムは、level3.javaプログラムのマルチスレッド・バージョンです。このプログラムは、複数のスレッドを使用してアプリケーションのスループットを増やします。

例:

  (デフォルトのDSNのsampledb_1121およびUID=appuserを使用して、直接リンクで接続する場合)
  java level4

  (デフォルトのDSNおよびUIDを使用して、クライアント/サーバー・モードで接続する場合)
  java level4 -c

  (独自のDSNのmy_dsnを使用して接続する場合)
  java level4 my_dsn

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

 

 

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

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

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

例:

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

  java plsqlJDBC

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

 

 

  syncJMS このプログラムは、TimesTen JMS/XLA実装を使用して、メッセージを処理します。

a) XLAユーザーとしてデータベースに接続する
b) ANY表に対するコミット済の変更をリスニングする(デフォルト設定をappuser.customer表にする)
c) JMSサブスクライバを使用する
d) getルーチンのreceiveメソッドを介してメッセージを同期的に受信する
e) コンソールに変更記録を表示する
f) [CTRL]+[C]が入力されたら、データベースから切断する

level1からlevel4のJDBCプログラムか、または(input4.datスクリプトで)ttIsqlを使用すると、コミット済の変更をCUSTOMER、PRODUCT、ORDERS、ORDER_ITEMおよびINVENTORY表に適用できます。

例:

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121、UID=xlauser、および入力を求めたパスワードを使用して接続し、APPUSER.CUSTOMERをリスニングする場合)
\x{00a0}\x{00a0}java syncJMS

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121およびUID=xlauserを使用して接続し、APPUSER.CUSTOMERをリスニングする場合)
\x{00a0}\x{00a0}java syncJMS -xlauser password

\x{00a0}\x{00a0}(デフォルトのDSNのsampledb_1121およびUID=xlauserを使用して接続し、MYUSER.PRODUCT表をリスニングする場合)
\x{00a0}\x{00a0}java syncJMS -xlauser password -schema myUser -table product

\x{00a0}\x{00a0}プログラムの完全な構文を参照するには、"java syncJMS -h"を実行してください。

 

 

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

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

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

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

例:

  (読取り80%、更新20%で構成されるデフォルトのワークロード・ミックスを使用して、DSN=sampledb_1121、UID=appuserでプログラムを実行する場合)
  java Tptbm

  (読取り80%、更新20%、4つのプロセスで、表に400,000行を移入し、100,000のトランザクションを実行する場合)
  java Tptbm -threads 4 -key 200 -xacts 100000

  (読取り85%、挿入10%、更新5%、4つのプロセス、10,000のトランザクションの場合)
  java Tptbm -threads 4 -reads 85 -inserts 10 -xacts 10000

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

 

 

  TTJdbcExamples このプログラムでは、TimesTen JDBC DriverManagerインタフェースを使用して、次の操作を行う方法を示します。
a) 接続および切断する
b) いくつかのDDLおよびDML操作(表の作成、索引の作成、文の準備、表への挿入および表からの選択)を実行する
c) 問合せ計画に影響を与える変更を行う
d) バッチ更新を実行する

 例:

  (すべての例を実行し、デフォルトのDSNのsampledb_1121およびUID=appuserを使用して接続する場合)
  java TTJdbcExamples

  (例2のみを実行する場合)
  java TTJdbcExamples -run 2

  (例2で64ビットのJDKを実行する場合)
  java -d64 TTJdbcExamples -run 2

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



 

Oracle TimesTenでのJavaプログラミングの詳細は、『Oracle TimesTen In-Memory Database Java開発者ガイド』を参照してください。