TTConnectionクラスは、TimesTen Databaseに対する接続という概念をカプセル化します。TTConnectionは、ODBC HDBCハンドルの付加価値C++ラッパーとみなすことができます。
なし
void Connect (const char* connStr, TTStatus&)
TimesTenデータ・ストアへの新しい接続を開きます。connStrパラメータで指定された接続文字列を使用して接続が作成されます。
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
}
void Disconnect (TTStatus&)
TimesTenデータ・ストアとの接続を閉じます。
例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。
void Commit (TTStatus&)
TimesTenデータベースにトランザクションをコミットします。最後のCommit()またはRollback()メソッドへのコールの後に、この接続で実行された他のすべての操作がコミットされます。
例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。
void Rollback (TTStatus&)
トランザクションを中止します。最後のCommit()またはRollback()メソッドへのコールの後に、この接続を介して行われたデータベースの変更が元に戻されます。
例外が有効な場合は、エラーが発生するとTTStatusオブジェクトが例外としてスローされます。例外が無効な場合は、メソッドから返される際に、発生したエラーに関する情報が、最後のパラメータとしてメソッドに渡されたTTStatus&オブジェクトに格納されます。
bool isConnected()
オブジェクトが(Connectメソッドによって)TimesTenに接続されている場合はtrue、そうでない場合はfalseを返します。
HDBC getHdbc()
この接続に関連付けられたODBCレベル「HDBC」を返します。
void SetIsoReadCommitted (TTStatus &)
接続のトランザクション分離レベルをTXN_READ_COMMITTEDに設定します。コミット読取り分離レベルは、単一トランザクションの性能と複数接続の優れた同時実行性という最善の組合せを提供します。
void SetIsoSerializable (TTStatus &)
接続のトランザクション分離レベルをTXN_SERIALIZABLEに設定します。通常、シリアライズ可能分離レベルは個別のトランザクションでは優れた性能を提供しますが、同時実行性はきわめて低下します。ほぼすべての状況下で、シリアライズ可能分離レベルよりもコミット読取り分離レベル(SetIsoReadCommitted()メソッドを参照)の方が適切です。
void CheckpointBlocking (int timeout, int retries, TTStatus &)
TimesTenのttCkptBlocking組込みプロシージャをtimeoutおよびretriesパラメータ付きでコールして、データ・ストアに対してブロッキング・チェックポイント処理を実行します。
ttCkptBlockingの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。
void CheckpointNonBlocking (TTStatus &)
注意: | これは、適したチェックポイントのタイプです。 |
TimesTen組込みプロシージャttCkptをコールして、データ・ストアに対するファジー・チェックポイント処理を実行します。
ttCkptの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。
void DurableCommit (TTStatus &)
データ・ストアに対する永続コミット操作を実行します。永続コミット操作により、インメモリー・ログ・バッファがディスクにフラッシュされます。このメソッドでは、TimesTen組込みプロシージャttDurableCommitがコールされます。ttDurableCommitの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。
void SetLockWait (int secs, TTStatus &)
TimesTen組込みプロシージャttLockWaitをパラメータ(secs)付きでコールして、接続のロック・タイムアウト間隔を設定します。通常、ほとんどのアプリケーションでは2、3秒のロック・タイムアウトで十分です。デフォルトのロック・タイムアウト間隔は10秒です。
ttLockWaitの詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』を参照してください。
void SetPrefetchCloseOn (TTStatus &)
TT_PREFETCH_CLOSE接続オプションを有効にします。これは、TimesTenへのクライアント/サーバー接続でのSELECT問合せのパフォーマンスを最適化する場合に有効です。このメソッドは、直接接続のTimesTenアプリケーション(非クライアント/サーバー・プログラムなど)に対しては利点がないことに注意してください。
TT_PREFETCH_CLOSEの詳細は、『Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド』のTimesTenデータの行のバルク・フェッチに関する説明を参照してください。
void SetPrefetchCloseOff (TTStatus &)
TT_PREFETCH_CLOSE接続オプションを無効にします。
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データの行のバルク・フェッチに関する説明を参照してください。
void SetAutoCommitOff (TTStatus &)
接続のAUTOCOMMITを無効に設定します。
TimesTenはAUTOCOMMITが無効の場合にのみ最適な性能で実行されるため、このメソッドはTTConnection::Connect()によって自動的にコールされることに注意してください。
void SetAutoCommitOn (TTStatus &)
接続のAUTOCOMMITを有効に設定します。つまり、すべてのSQL文が独自のトランザクションで実行されます。
通常、TimesTenはAUTOCOMMITを無効にした方がはるかに高速で実行されることに注意してください。
AUTOCOMMITが無効の場合、SELECT文をコミットするには、TTCmd::Close()を明示的にコールする必要があります。
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への接続と切断を絶えず繰り返すと、パフォーマンスが低下するので好ましくありません。そのかわりに、アプリケーション・プロセスの開始時にデータベース接続を確立し、そのプロセスの存続中はそれを再利用します。