ヘッダーをスキップ
Oracle TimesTen In-Memory Database TTClassesガイド
リリース7.0
E05171-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

TTConnection

TTConnectionクラスは、TimesTen Databaseに対する接続という概念をカプセル化します。TTConnectionは、ODBC HDBCハンドルの付加価値C++ラッパーとみなすことができます。

パブリック・メンバー

なし

パブリック・メソッド

メソッド
説明
TimesTenデータ・ストアへの新しい接続を開きます。 

TimesTenデータ・ストアへの接続を閉じます。

最後のCommit()またはRollback()メソッドへのコールの後に、この接続を介して行われたデータベースの変更をロールバックします。

オブジェクトがTimesTenに接続されている場合はtrueを返します。 
この接続に関連付けられたODBCレベル「HDBC」を返します。  
接続のトランザクション分離レベルがTXN_READ_COMMITTEDになるように設定します。 
接続のトランザクション分離レベルがTXN_SERIALIZABLEになるように設定します。 
TimesTen組込みプロシージャttCkptBlockingをコールして、データ・ストアに対するブロック・チェックポイント処理を実行します。 
TimesTen組込みプロシージャttCkptをコールして、データ・ストアに対するファジー・チェックポイント処理を実行します。 
データ・ストアに対する永続コミット操作を実行します。 
TimesTen組込みプロシージャttLockWaitをコールして、接続のロック・タイムアウト間隔を設定します。 
TT_PREFETCH_CLOSE接続オプションを有効にします。これは、TimesTenへのクライアント/サーバー接続でのSELECT問合せのパフォーマンスを最適化する場合に有効です。  

TT_PREFETCH_CLOSE接続オプションを無効にします。

TT_PREFETCH_CLOSE接続オプションを無効にします。

接続のAUTOCOMMITを無効に設定します。

接続のAUTOCOMMITを有効に設定します。

接続のコンテキスト値を返します。 

Connect

void Connect (const char* connStr, TTStatus&)

TimesTenデータ・ストアへの新しい接続を開きます。connStrパラメータで指定された接続文字列を使用して接続が作成されます。

例3.5

TTConnection conn;

TTStatus stat;

conn.Connect("DSN=mydsn", stat);

// Now this connection can be used to interact with

// TimesTen

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

このメソッドをコールすると、多くの場合無視しても安全な警告が生成されることがあります。::Connect()を使用する場合は次のロジックが推奨されます。

try {

conn.Connect(stat);

}

catch (TTWarning warn) {

// warnings from ::Connect() are usually informational

cerr << `'Warning while connecting to TimesTen: `'

<< warn << endl;

}

catch (TTError err) {

// handle the error; this could be a serious problem

}

Disconnect

void Disconnect (TTStatus&)

TimesTenデータ・ストアとの接続を閉じます。

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

Commit

void Commit (TTStatus&)

TimesTenデータベースにトランザクションをコミットします。最後のCommit()またはRollback()メソッドへのコールの後に、この接続で実行された他のすべての操作がコミットされます。

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

Rollback

void Rollback (TTStatus&)

トランザクションを中止します。最後のCommit()またはRollback()メソッドへのコールの後に、この接続を介して行われたデータベースの変更が元に戻されます。

例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。

isConnected

bool isConnected()

オブジェクトが(Connectメソッドによって)TimesTenに接続されている場合はtrue、そうでない場合はfalseを返します。

getHdbc

HDBC getHdbc()

この接続に関連付けられたODBCレベル「HDBC」を返します。

SetIsoReadCommitted

void SetIsoReadCommitted (TTStatus &)

接続のトランザクション分離レベルをTXN_READ_COMMITTEDに設定します。コミット読取り分離レベルは、単一トランザクションの性能と複数接続の優れた同時実行性という最善の組合せを提供します。

SetIsoSerializable

void SetIsoSerializable (TTStatus &)

接続のトランザクション分離レベルをTXN_SERIALIZABLEに設定します。通常、シリアライズ可能分離レベルは個別のトランザクションでは優れた性能を提供しますが、同時実行性はきわめて低下します。ほぼすべての状況下で、シリアライズ可能分離レベルよりもコミット読取り分離レベル(SetIsoReadCommitted()メソッドを参照)の方が適切です。

CheckpointBlocking

void CheckpointBlocking (int timeout, int retries, TTStatus &)

TimesTenのttCkptBlocking組込みプロシージャをtimeoutおよびretriesパラメータ付きでコールして、データ・ストアに対してブロッキング・チェックポイント処理を実行します。

ttCkptBlockingの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。

CheckpointNonBlocking

void CheckpointNonBlocking (TTStatus &)


注意: これは、適したチェックポイントのタイプです。

TimesTen組込みプロシージャttCkptをコールして、データ・ストアに対するファジー・チェックポイント処理を実行します。

ttCkptの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。

DurableCommit

void DurableCommit (TTStatus &)

データ・ストアに対する永続コミット操作を実行します。永続コミット操作により、インメモリー・ログ・バッファがディスクにフラッシュされます。このメソッドでは、TimesTen組込みプロシージャttDurableCommitがコールされます。ttDurableCommitの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。

SetLockWait

void SetLockWait (int secs, TTStatus &)

TimesTen組込みプロシージャttLockWaitをパラメータ(secs)付きでコールして、接続のロック・タイムアウト間隔を設定します。通常、ほとんどのアプリケーションでは2、3秒のロック・タイムアウトで十分です。デフォルトのロック・タイムアウト間隔は10秒です。

ttLockWaitの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。

SetPrefetchCloseOn

void SetPrefetchCloseOn (TTStatus &)

TT_PREFETCH_CLOSE接続オプションを有効にします。これは、TimesTenへのクライアント/サーバー接続でのSELECT問合せのパフォーマンスを最適化する場合に有効です。このメソッドは、直接接続のTimesTenアプリケーション(非クライアント/サーバー・プログラムなど)に対しては利点がないことに注意してください。

TT_PREFETCH_CLOSEの詳細は、『Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド』のTimesTenデータの行のバルク・フェッチに関する説明を参照してください。

SetPrefetchCloseOff

void SetPrefetchCloseOff (TTStatus &)

TT_PREFETCH_CLOSE接続オプションを無効にします。

SetPrefetchCount

void SetPrefetchCount (int numrows, TTStatus &)

TimesTen ODBCドライバがSELECT文に対して内部で一度にフェッチする行数をユーザー・アプリケーションによって調整できます。numrowsの範囲は1から128です。


注意: このメソッドは、TTCmd::FetchNext()を複数回実行することと同等ではありません。そのかわりに、このパラメータを適切に使用すると、TTCmd::FetchNext()の各コールにかかる時間が短縮されます。

TT_PREFETCH_COUNTの詳細は、『Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド』のTimesTenデータの行のバルク・フェッチに関する説明を参照してください。

SetAutocommitOff

void SetAutoCommitOff (TTStatus &)

接続のAUTOCOMMITを無効に設定します。

TimesTenはAUTOCOMMITが無効の場合にのみ最適な性能で実行されるため、このメソッドはTTConnection::Connect()によって自動的にコールされることに注意してください。

SetAutoCommitOn

void SetAutoCommitOn (TTStatus &)

接続のAUTOCOMMITを有効に設定します。つまり、すべてのSQL文が独自のトランザクションで実行されます。

通常、TimesTenはAUTOCOMMITを無効にした方がはるかに高速で実行されることに注意してください。

AUTOCOMMITが無効の場合、SELECT文をコミットするには、TTCmd::Close()を明示的にコールする必要があります。

GetTTContext

void GetTTContext (char * output, TTStatus &)

接続のコンテキスト値を返します。このコンテキスト値はTimesTenデータ・ストアへの接続ごとに一意となります。たとえば、接続のコンテキストは、TimesTenユーティリティttStatusを使用してPIDとTimesTen接続を相関させるために使用できます。

コンテキスト値はoutputパラメータを介して返されます。このメソッドはoutputパラメータにCHAR[17]以上の配列を指定してコールする必要があります。

このメソッドにより、TimesTen組込みプロシージャttContextがコールされます。ttContextの詳細は、『Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド』を参照してください。

使用方法

TimesTenを使用するすべてのアプリケーションは、1つ以上のTTConnectionオブジェクトを作成する必要があります。

同時に複数のスレッドからTimesTenを使用するマルチスレッド・アプリケーションは、TTConnectionオブジェクトを2つ以上作成する必要があります。次のいずれかの方法を使用します。

アプリケーションにとっては、TimesTenへの接続と切断を絶えず繰り返すと、パフォーマンスが低下するので好ましくありません。そのかわりに、アプリケーション・プロセスの開始時にデータベース接続を確立し、そのプロセスの存続中はそれを再利用します。