TTConnectionリファレンス

TTConnectionクラスは、データベースに対する接続という概念をカプセル化します。TTConnectionは、ODBC接続ハンドル(SQLHDBC)の付加価値C++ラッパーと考えることができます。

パブリック・メンバー

メンバー 説明

DRIVER_COMPLETION_ENUM

接続先データベースの指定を求めるプロンプトを表示するかどうかを指定します(これは、接続文字列でデータベースが指定されているかどうかにも左右されます)。

有効な値は、TTConnection::DRIVER_NOPROMPTTTConnection::DRIVER_COMPLETETTConnection::DRIVER_PROMPTおよびTTConnection::DRIVER_COMPLETE_REQUIREDです。これらは、標準のODBC SQLDriverConnect関数のSQL_DRIVER_NOPROMPTSQL_DRIVER_COMPLETESQL_DRIVER_PROMPTおよびSQL_DRIVER_COMPLETE_REQUIREDの値と対応します。

パブリック・メソッド

この項では、TTConnectionパブリック・メソッドの概要を説明します。

パブリック・メソッドの概要

メソッド 説明

Commit()

データベースにトランザクションをコミットします。

Connect()

新しいデータベース接続を開きます。

Disconnect()

データベース接続を閉じます。

DurableCommit()

データベースに対する永続コミット操作を実行します。

getHdbc()

この接続と関連付けられているODBC接続ハンドル(型SQLHDBC)を返します。

GetTTContext()

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

isConnected()

オブジェクトがTimesTenに接続されている場合はTRUEを返します。

Rollback()

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

SetAutoCommitOff()

接続の自動コミットを無効にします。

SetAutoCommitOn()

接続の自動コミットを有効にします。

SetIsoReadCommitted()

接続のトランザクション分離レベルをTXN_READ_COMMITTEDに設定します。

SetIsoSerializable()

接続のトランザクション分離レベルをTXN_SERIALIZABLEに設定します。

SetLockWait()

TimesTen組込みプロシージャttLockWaitをコールして、接続のロック・タイムアウト間隔を設定します。

SetPrefetchCloseOff()

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

SetPrefetchCloseOn()

TT_PREFETCH_CLOSE接続オプションを有効にします。これは、TimesTenへのクライアント/サーバー接続でのSELECT問合せのパフォーマンスを最適化する場合に有効です。

SetPrefetchCount()

TimesTen ODBCドライバSQLFetchコールがSELECT文をプリフェッチする行数をユーザー・アプリケーションによって調整できます。

Commit()

void Commit()

データベースにトランザクションをコミットします。これにより、Commit()またはRollback()メソッドへの最後のコール後に、接続で実行されたすべての操作がコミットされます。エラーが発生するとTTStatusオブジェクトが例外としてスローされます。Rollback()も参照してください。

Connect()

virtual void Connect(const char* connStr)
virtual void Connect(const char* connStr, const char* username, 
                     const char* password)
virtual void Connect(const char* connStr, DRIVER_COMPLETION_ENUM driverCompletion)

新しいデータベース接続を開きます。connStrパラメータで指定された接続文字列を使用して接続が作成されます。ユーザーとパスワードを、接続文字列の一部、別のパラメータまたはDRIVER_COMPLETION_ENUM値として(パブリック・メンバーを参照)指定します。後述のメソッドDisconnect()も参照してください。

データベースに接続する権限は、CREATE SESSION権限を使用して、直接またはPUBLICロールを介してユーザーに付与する必要があります。接続メソッドを参照してください。

エラーが発生するとTTStatusオブジェクトが例外としてスローされます。すべての例外の警告は通常は情報を示すもので、通常は無視しても問題ありません。Connect()メソッドを使用する場合は、次のロジックの使用が推奨されます。

TTWarningTTErrorは、TTStatusのサブクラスです。

TTConnection conn;
...

try {
  conn.Connect("DSN=mydsn", "myuser", "password");
}
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オブジェクトが例外としてスローされます。前述のメソッドConnect()も参照してください。

DurableCommit()

void DurableCommit()

データベースに対する永続コミット操作を実行します。永続コミット操作により、インメモリー・トランザクション・ログ・バッファがファイル・システムにフラッシュされます。このメソッドでは、TimesTen組込みプロシージャttDurableCommitがコールされます。

Oracle TimesTen In-Memory DatabaseリファレンスttDurableCommitを参照してください。

getHdbc()

SQLHDBC getHdbc()

この接続と関連付けられているODBC接続ハンドルを返します。

GetTTContext()

void GetTTContext(char* output)

各データベース接続に一意な値である接続のコンテキスト値を返します。接続のコンテキストは、たとえば、TimesTenのttStatusユーティリティを使用し、TimesTen接続をPID(プロセスID)と関連付けるために使用できます。

コンテキスト値は、outputパラメータを介して返されます(CHAR[17]以上の配列が必要です)。

このメソッドにより、TimesTen組込みプロシージャttContextがコールされます。Oracle TimesTen In-Memory DatabaseリファレンスttContextを参照してください。

isConnected()

bool isConnected()

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

Rollback()

void Rollback()

トランザクションをロールバック(取消)します。最後のCommit()またはRollback()へのコールの後に、この接続を介して行われたデータベースの変更は取り消されます。エラーが発生するとTTStatusオブジェクトが例外としてスローされます。Commit()も参照してください。

SetAutoCommitOff()

void SetAutoCommitOff()

接続の自動コミットを無効にします。後述のメソッドSetAutoCommitOn()も参照してください。

TimesTenは自動コミットが無効の場合にのみ最適なパフォーマンスで実行されるため、このメソッドはTTConnection::Connect()によって自動的にコールされます。

自動コミットが無効の場合、SELECT文をコミットするには、TTCmd::Close()を明示的にコールする必要があることに注意してください。

SetAutoCommitOn()

void SetAutoCommitOn()

接続の自動コミットを有効に設定します(つまり、すべてのSQL文を独自のトランザクションで実行します)。前述のメソッドSetAutoCommitOff()も参照してください。

TimesTenは、自動コミットが無効の場合、より迅速に実行されるので、SetAutoCommitOn()は一般的には推奨されません。

SetIsoReadCommitted()

void SetIsoReadCommitted()

接続のトランザクション分離レベルをTXN_READ_COMMITTEDに設定します。コミット読取り分離レベルは、単一トランザクションのパフォーマンスと複数接続の優れた同時実行性という最善の組合せを提供します。次のメソッドSetIsoSerializable()も参照してください。

SetIsoSerializable()

void SetIsoSerializable()

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

SetLockWait()

void SetLockWait(int secs)

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

Oracle TimesTen In-Memory DatabaseリファレンスttLockWaitを参照してください。

SetPrefetchCloseOff()

void SetPrefetchCloseOff()

TT_PREFETCH_CLOSE接続オプションを無効にします。後述のメソッドSetPrefetchCloseOn()も参照してください。

SetPrefetchCloseOn()

void SetPrefetchCloseOn()

TT_PREFETCH_CLOSE接続オプションをオンにします(これは、クライアント/サーバー・アプリケーションでのシリアライズ可能トランザクションのSELECT問合せパフォーマンスを最適化する場合に便利です)。この方法は、TimesTenに直接接続するアプリケーションには何もメリットがないことに注意してください。前述のメソッドSetPrefetchCloseOff()も参照してください。

Oracle TimesTen In-Memory Database C開発者ガイド問合せのパフォーマンスの最適化を参照してください。

SetPrefetchCount()

void SetPrefetchCount(int numrows)

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

この方法は、TimesTenに直接接続するアプリケーションには何もメリットがないことに注意してください。

ノート:

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

TT_PREFETCH_COUNTの詳細は、Oracle TimesTen In-Memory Database C開発者ガイド複数行のデータのプリフェッチを参照してください。