この章で説明するTimesTenユーティリティ・ライブラリのC言語関数は、『Oracle TimesTen In-Memory Databaseリファレンス』のユーティリティに関する項で説明されているコマンドライン・ユーティリティの一部に対して、プログラム可能なインタフェースを提供します。
このC言語関数のセットを使用するアプリケーションでは、ttutillib.h
をインクルードし、TimesTenドライバ・ライブラリ(UNIXではlibtten
、Windowsではttdv1122.lib
およびtten1122.lib
)およびTimesTenユーティリティ・ライブラリ(UNIXではlibttutil
、Windowsではttutil1122.lib
)の両方をリンクする必要があります。
重要: アプリケーションでは、他のすべてのTimesTenユーティリティ・ライブラリ関数をコールする前に、ttUtilAllocEnv C関数をコールする必要があります。また、TimesTenユーティリティ・ライブラリ・インタフェースを使用して処理を行う場合、アプリケーションは、ttUtilFreeEnv C関数をコールする必要があります。 |
これらの関数はTimesTen ClientまたはJavaアプリケーションではサポートされていません。それらは、直接ドライバを使用するTimesTen ODBCアプリケーションでサポートされます。(クイック・スタート・アプリケーションで提供されるTimesTenドライバ・マネージャではこれらの関数をサポートしていますが、ドライバ・マネージャ自体が完全にはサポートされているわけではありません。「ODBCドライバ・マネージャとのリンク」のこのドライバ・マネージャについての注意を参照してください。)
リターン・コード
特に指定されていないかぎり、ユーティリティ関数は、ttutillib.h
で定義されている次のコードを返します。
コード | 説明 |
---|---|
TTUTIL_SUCCESS |
成功を示します。 |
TTUTIL_ERROR |
エラーが発生したことを示します。 |
TTUTIL_WARNING |
成功時に、警告が生成されたことを示します。 |
TTUTIL_INVALID_HANDLE |
無効なユーティリティ・ライブラリ・ハンドルが指定されていることを示します。 |
説明
connStr
で指定したデータベースの全体バックアップまたは増分バックアップのコピーを作成します。データベースは、一連のファイルまたはストリームのいずれかにバックアップできます。ttRestore
関数またはttRestore
ユーティリティを使用して、後でデータベースをリストアできます。
TimesTenのバックアップとリストア機能の概要は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の移行、バックアップおよびリストアに関する説明を参照してください。
構文
ttBackup (ttUtilHandle handle, const char* connStr, ttBackUpType type, ttBooleanType atomic, const char* backupDir, const char* baseName, ttUtFileHandle stream)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、バックアップするデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。 |
type |
ttBackupType |
実行するバックアップの種類を指定します。有効な値は次のとおりです。
|
atomic |
ttBooleanType |
新しいバックアップが作成されている間、同じbaseName およびbackupDir を持つ既存のバックアップの処理を指定します。
このパラメータは、同じ 有効な値は、次のとおりです。
|
backupDir |
const char* |
ファイル・バックアップのバックアップ・ディレクトリを指定します。このパラメータは、ストリーム・バックアップでは無視されます。それ以外の場合はNULL以外になります。
|
baseName |
const char* |
ファイル・バックアップのbackupDir パラメータで指定されたバックアップ・ディレクトリ内のバックアップ・ファイルのファイル接頭辞を指定します。
このパラメータは、ストリーム・バックアップでは無視されます。 このパラメータに
|
stream |
ttUtFileHandle |
ストリーム・バックアップの場合、このパラメータはバックアップが書き込まれるストリームを指定します。
UNIXの場合は、 Windowsの場合は、 このパラメータは、ファイル・バックアップでは無視されます。 アプリケーションで、このパラメータに対して |
説明
接続文字列で指定したデータベースに対応する、すべてのチェックポイント・ファイル、トランザクション・ログおよびデーモン・カタログ・エントリを含むデータベースを破棄します。サポートされているUNIXプラットフォームのsys.odbc.ini
またはユーザーodbc.ini
ファイル内、またはサポートされているWindowsプラットフォームのWindowsレジストリ内に定義されているDSN自体は削除されません。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、破棄するデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。DSNおよびDataStore 属性を除く、この接続文字列内のすべての属性が無視されます。 |
timeout |
unsigned int |
コール元に返される前に再試行する回数を指定します。ttDestroyDataStore は、正常に実行されるかタイムアウトに達するまで、破棄処理を1秒ごとに繰り返し再試行します。これは、データベースの使用中などの一時的な状態が原因で破棄が失敗する場合に有効です。
このパラメータ値が0(ゼロ)の場合、再試行は実行されません。 |
例
この例では、ファイルC:\dsns\payroll.ds0
、C:\dsns\payroll.ds1
およびいくつかのトランザクション・ログ・ファイルC:\dsns\payroll.log
n
で構成されるpayroll
というDSNで定義されているデータベースを破棄します。
char errBuff [256]; int rc; unsigned int retCode; ttUtilErrType retType; ttUtilHandle utilHandle; ... ... rc = ttDestroyDataStore (utilHandle, "DSN=payroll", 30); if (rc == TTUTIL_SUCCESS) printf ("Datastore payroll successfully destroyed.\n"); else if (rc == TTUTIL_INVALID_HANDLE) printf ("TimesTen utility library handle is invalid.\n"); else while ((rc = ttUtilGetError (utilHandle, 0, &retCode, &retType, errBuff, sizeof (errBuff), NULL)) != TTUTIL_NODATA) { ... ... }
説明
接続文字列で指定したデータベースに対応する、すべてのチェックポイント・ファイル、トランザクション・ログおよびデーモン・カタログ・エントリを含むデータベースを破棄します。サポートされているUNIXプラットフォームのsys.odbc.ini
またはユーザーodbc.ini
ファイル内、またはサポートされているWindowsプラットフォームのWindowsレジストリ内に定義されているDSN自体は削除されません。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、破棄するデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。DSNおよびDataStore 属性を除く、この接続文字列内のすべての属性が無視されます。 |
timeout |
unsigned int |
コール元に返される前に再試行する秒数を指定します。ttDestroyDataStoreForce ユーティリティは、正常に実行されるかタイムアウトに達するまで、破棄処理を1秒ごとに繰り返し再試行します。これは、データベースの使用中などの一時的な状態が原因で破棄が失敗する場合に有効です。
このパラメータ値が0(ゼロ)の場合、再試行は実行されません。 |
例
この例では、ファイルC:\dsns\payroll.ds0
、C:\dsns\payroll.ds1
およびいくつかのトランザクション・ログ・ファイルC:\dsns\payroll.log
n
で構成されるpayroll
というDSNで定義されているデータベースを破棄します。
char errBuff [256]; int rc; unsigned int retCode; ttUtilErrType retType; ttUtilHandle utilHandle; ... ... rc = ttDestroyDataStoreForce (utilHandle, "DSN=payroll", 30); if (rc == TTUTIL_SUCCESS) printf ("Datastore payroll successfully destroyed.\n"); else if (rc == TTUTIL_INVALID_HANDLE) printf ("TimesTen utility library handle is invalid.\n"); else while ((rc = ttUtilGetError (utilHandle, 0, &retCode, &retType, errBuff, sizeof (errBuff), NULL)) != TTUTIL_NODATA) { ... ... }
説明
最後のアプリケーションがデータベースから接続を切断した後、接続文字列で指定したデータベースがTimesTenによってRAMに保持される秒数を指定します。その後、TimesTenはデータベースをアンロードします。この猶予期間は随時設定または再設定が可能ですが、RAMポリシーがTT_RAMPOL_INUSE
に設定されている場合のみです。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、RAM猶予期間を設定するデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。 |
seconds |
unsigned int |
最後のアプリケーションがデータベースから接続を切断した後、TimesTenがデータベースをRAMに保持する秒数を指定します。その後、TimesTenはデータベースをアンロードします。 |
説明
接続文字列で指定したデータベースをシステムのRAMにロードするようにTimesTenに指示します。永続データベースでは、ttRamLoad
へのコールはRamPolicy
がTT_RAMPOL_MANUAL
に設定されている場合にのみ有効です。一時データベースでは、ttRamLoad
へのコールによってデータベースがRAMにロードされます。
関連の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttRamPolicySetに関する説明、またはttRamPolicy
を参照してください。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、RAMにロードするデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。 |
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、RAMポリシーを設定するデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。 |
policy |
ttRamPolicyType |
指定したデータベースをTimesTenがシステムRAMにロードするタイミングを決定するためのポリシーを指定します。有効な値は、次のとおりです。
指定したデータベースに対して明示的にRAMポリシーを設定しない場合、デフォルトのRAMポリシーは |
説明
TimesTen RAMポリシーがmanual
に設定されている場合に、接続文字列で指定したデータベースをシステムのRAMからアンロードするようにTimesTenに指示します。永続データベースでは、このコールはRAMポリシーがTT_RAMPOL_MANUAL
に設定されている場合にのみ有効です。一時データベースでは、RAMポリシーを設定できないため、ttRamUnload
をコールすると、RAMからのデータベースのアンロードが常に試行されます。
関連の詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttRamPolicySetに関する説明、またはttRamPolicy
を参照してください。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、RAMからアンロードするデータベースの接続文字列を指定する、空文字で終了する文字列です。 |
説明
リモート・データベースのレプリカをローカル・システムに作成します。このプロセスは、受信側のローカル・システムから開始されます。受信側のローカル・システムからリモートのソース・データベースに接続され、複製処理が実行されます。
必要な権限
ttRepDuplicateEx
がコールされる受信側ローカル・データベースのインスタンス管理者、およびリモートのソース・データベースのADMIN
権限を持つユーザーが必要です。必要に応じて、リモートのソース・ストアに内部ユーザーを作成します。
また、ttRepDuplicateEx
を実行するには、次の要件に注意してください。
受信側ローカル・データベースのインスタンス管理者のオペレーティング・システム・ユーザー名は、リモートのソース・データベースのインスタンス管理者のオペレーティング・システム・ユーザー名と同じである必要があります。
ttRepDuplicateEx
が呼び出される場合、uid
およびpwd
データ構造体要素で、リモートのソース・データベースでADMIN
権限を持つユーザーのユーザー名とパスワードを指定する必要があります。このユーザー名は、複製処理を実行するためにリモートのソース・データベースに接続する場合に使用されます。
構文
ttRepDuplicateEx (ttUtilHandle handle, const char* destConnStr, const char* srcDatabase, const char* remoteHost, ttRepDuplicateExArg* arg ) typedef struct { unsigned int size; /*set to size of(ttRepDuplicateExArg) */ unsigned int flags; const char* uid; const char* pwd; const char* pwdcrypt; const char* cacheuid; const char* cachepwd; const char* localHost; int truncListLen; const char** truncList; int dropListLen; const char** dropList; int maxkbytesPerSec; int remoteDaemonPort; int nThreads4initDR; const char* localIP const char* remoteIP int crsManaged; /*new struct elements can only be added here at the end */ } ttRepDuplicateExArg
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
destConnStr |
const char* |
これは、リモート・データベースのレプリカとして作成するローカル・データベースの接続文字列を指定する、空文字で終了する文字列です。 |
srcDatabase |
const char* |
これは、リモートのソース・データベース名を指定する、空文字で終了する文字列です。この名前は、データベース・パス名の最後の部分です。 |
remoteHost |
const char* |
これは、リモートのソース・データベースが配置されているシステムのTCP/IPホスト名を指定する、空文字で終了する文字列です。 |
arg |
ttRepDuplicateExArg* |
これは、必要なttRepDuplicateEx 引数が含まれている構造体のアドレスです。NULL がarg に対して渡される場合、またはarg -> size の値が無効な場合は、TimesTenによってエラー12230(「invalid argument value」 )およびTTUTIL_ERROR が返されます。 |
構造体要素
ttRepDuplicateExArg
構造体には、次の要素があります。
要素 | 型 | 説明 |
---|---|---|
size |
unsigned int |
サイズ
これは、最大( |
フラグ |
unsigned int |
フラグ値の表のリストから選択される値のビット単位の共用体 |
uid |
const char* |
リモートのソース・データベースでADMIN 権限を持つユーザーのユーザー名
このユーザー名は、複製処理を実行するためにリモートのソース・データベースに接続する場合に使用されます。 |
pwd |
const char* |
ユーザーIDに関連付けられているパスワード |
pwdcrypt |
const char* |
ユーザーIDに関連付けられている暗号化されたパスワード |
cacheuid |
const char* |
TimesTen Cache管理ユーザーID |
cachepwd |
const char* |
TimesTen Cache管理ユーザー・パスワード |
localHost |
const char* |
ローカル・システムのTCP/IPホスト名を指定する、空文字で終了する文字列
|
truncListLen |
int |
truncList の要素の数 |
truncList |
const char** |
複製後に切り捨てるレプリケーションされていない表のリスト |
dropListLen |
int |
dropList の要素の数 |
dropList |
const char** |
複製処理後に削除するレプリケーションされていない表のリスト |
maxkbytesPerSec |
int |
最大キロバイト数/秒
これを0(ゼロ)以外の値に設定すると、複製処理でデータが |
remoteDaemonPort |
int |
リモート・デーモン・ポート
これを0に設定すると、ターゲット・データベースのデーモン・ポート番号には、ソース・データベース上のデーモンに使用されたポート番号が設定されます。 このオプションは、自動ポート構成を使用したデータベースの複製処理では使用できません。 |
nThreads4initDR |
int |
初期化のスレッドの数
障害時リカバリ・サブスクライバの場合、これによって障害時リカバリ・サイトでOracle Databaseの初期化に使用されるスレッドの数が決定します。 TimesTenデータベースが障害時リカバリ・システムにコピーされた後、Oracle Database表が切り捨てられ、TimesTenキャッシュ・グループのデータが障害時リカバリ・システム上のOracle Databaseにコピーされます。 次の |
localIP |
const char* |
複製操作に使用するローカル・ネットワーク・インタフェースのエイリアスまたはIPアドレス(IPv4またはIPv6)を指定する、NULLで終わる文字列。ローカル・ネットワーク・インタフェースを指定しない場合は、これをNULL に設定します。この場合、互換性のあるインタフェースは使用できます。 |
remoteIP |
const char* |
複製操作のために使用するリモート・ネットワーク・インタフェースのエイリアスまたはIPアドレス(IPv4またはIPv6)を指定する、NULLで終わる文字列。リモート・ネットワーク・インタフェースを指定しない場合は、これをNULL に設定します。この場合、互換性のあるインタフェースは使用できます。
注意: |
crsManaged |
int |
内部で使用
0(ゼロ)(デフォルト)に設定する必要があります。 |
ttRepDuplicateExArg
flags
要素は、次の値で構成されています。
値 | 説明 |
---|---|
TT_REPDUP_NOFLAGS |
フラグがないことを示します。 |
TT_REPDUP_COMPRESS |
複製処理に対して、ネットワークを介して送信されるデータの圧縮を有効にします。 |
TT_REPDUP_REPSTART |
ttRepDuplicateEx に対して、リモート・データベースがネットワークを介してコピーされる前に、リモート・データベースの(ローカル・データベースに対する)レプリケーションの状態をstartに設定するように指示します。これによって、複製処理の後で行われたすべての更新が、リモート・データベースから新しく作成またはリストアされたローカル・データベースにレプリケートされます。 |
TT_REPDUP_RAMLOAD |
複製処理の完了時に、メモリー内にデータベースを保持します。データベースのRAMポリシーがmanual に変更されます。 |
TT_REPDUP_DELXLA |
ttRepDuplicateEx に対して、すべてのXLAブックマークを複製処理の一部として削除するように指示します。 |
TT_REPDUP_NOKEEPCG |
キャッシュ・グループ定義を保持しないため、ttRepDuplicateEx は、すべてのキャッシュ・グループ表を通常の表に変換します。
デフォルトでは、キャッシュ・グループ定義は保持されます。 |
TT_REPDUP_RECOVERINGNODE |
AWTまたは自動リフレッシュ・キャッシュ・グループを含むレプリケーション・スキームの障害ノードのリカバリにttRepDuplicateEx を使用すること指定します。新しいレプリケーション・スキームまたは変更したレプリケーション・スキームをノードに適用する場合、TT_REPDUP_RECOVERINGNODE は指定しないでください。ttRepDuplicateEx でOracle Databaseに格納されているメタデータを更新できず、すべての増分自動リフレッシュ・キャッシュ・グループがレプリケートされる場合、メタデータへの更新は、キャッシュおよびレプリケーション・エージェントが開始されるまで、自動的に延期されます。 |
TT_REPDUP_DEFERCACHEUPDATE |
キャッシュおよびレプリケーション・エージェントが開始され、エージェントがOracle Databaseに接続できるまで、Oracle Databaseに格納されているメタデータの更新を強制的に延期します。このオプションを使用すると、増分キャッシュ・グループの一部がレプリケートされない場合、またはttRepDuplicateEx を使用して新しいレプリケーション・スキームまたは変更したレプリケーション・スキームをノードに適用する場合に、完全な自動リフレッシュが行われます。 |
TT_REPDUP_INITCACHEDR |
障害時リカバリを初期化します。データ構造体でcacheuid およびcachepwd も指定する必要があります。データ構造体で、nThreads4initDR も参照してください。 |
例
この例では、データベース・パス名がC:\dsns\payroll
であるremote_payroll
というリモートのTimesTen DSNのレプリカをlocal_payroll
というローカルDSNに作成します。
ttUtilHandle utilHandle; int rc; ttRepDuplicateExArg arg; memset(&arg, 0, sizeof(arg)); arg.size = sizeof(ttRepDuplicateExArg); arg.flags = TT_REPDUP_REPSTART | TT_REPDUP_DELXLA; arg.localHost = "mylocalhost"; arg.uid="myuid"; arg.pwd="mypwd"; rc=ttRepDuplicateEx(utilHandle,"DSN=local_payroll","payroll","remotehost", &arg);
説明
ttBackup
C関数またはttBackup
ユーティリティを使用して作成したバックアップから、接続文字列で指定したデータベースをリストアします。データベースがすでに存在している場合、ttRestore
はデータベースを上書きしません。
TimesTenのバックアップとリストア機能の概要は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の移行、バックアップおよびリストアに関する説明を参照してください。
構文
ttRestore (ttUtilHandle handle, const char* connStr, ttRestoreType type, const char* backupDir, const char* baseName, ttUtFileHandle stream, unsigned intflags)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char* |
これは、リストアするデータベースについて記述する接続文字列を指定する、空文字で終了する文字列です。 |
type |
ttRestoreType |
ファイル・バックアップまたはストリーム・バックアップのどちらからデータベースをリストアするかを指定します。有効な値は、次のとおりです。
|
backupDir |
const char* |
TT_RESTORE_FILE の場合、バックアップ・ファイルが保存されるディレクトリを指定します。
|
baseName |
const char* |
TT_RESTORE_FILE の場合、backupDir パラメータで指定されたバックアップ・ディレクトリにあるバックアップ・ファイルのファイル接頭辞を指定します。
|
stream |
ttUtFileHandle |
TT_RESTORE_STREAM の場合、バックアップを読み取るストリームを指定します。
UNIXの場合は、 Windowsの場合は、
|
フラグ |
unsigned int |
これは、将来使用するために予約されています。0(ゼロ)に設定します。 |
説明
TimesTenユーティリティ・ライブラリ環境ハンドルにメモリーを割り当て、アプリケーションで使用されるTimesTenユーティリティ・ライブラリ・インタフェースを初期化します。アプリケーションでは、他のすべてのTimesTenユーティリティ・ライブラリ関数より前に、ttUtilAllocEnv
をコールする必要があります。また、TimesTenユーティリティ・ライブラリ・インタフェースを使用して処理を行う場合、アプリケーションは、ttUtilFreeEnv
をコールする必要があります。
構文
ttUtilAllocEnv (ttUtilHandle* handle_ptr, char* errBuff, unsigned int buffLen, unsigned int* errLen)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle_ptr |
ttUtilHandle* |
TimesTenユーティリティ・ライブラリ環境ハンドルが返される記憶域へのポインタを指定します。 |
errBuff |
char* |
これは、エラー・メッセージがある場合に返される、ユーザーが割り当てるバッファです。返されるエラー・メッセージは、空文字で終了する文字列です。エラー・メッセージは、その長さがbuffLen -1を超えると、buffLen -1に切り捨てられます。このパラメータがNULLの場合、buffLen は無視され、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
buffLen |
unsigned int |
バッファerrBuff のサイズを指定します。このパラメータが0(ゼロ)の場合、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
errLen |
unsigned int* |
これは、エラー・メッセージの実際の長さが返される、符号なし整数へのポインタです。NULL の場合、このパラメータは無視されます。 |
リターン・コード
このユーティリティは、ttutillib.h
で定義されている次のコードを返します。
コード | 説明 |
---|---|
TTUTIL_SUCCESS |
成功時に返します。 |
これ以外の場合、tt_errCode.h
に定義されているTimesTen固有のエラー・メッセージおよび対応するエラー・メッセージが、コール元によって提供されるバッファに返されます。
説明
TimesTenユーティリティ・ライブラリ環境ハンドルに関連付けられているメモリーを解放します。
アプリケーションでは、他のすべてのTimesTenユーティリティ・ライブラリ関数より前に、ttUtilAllocEnv
をコールする必要があります。また、TimesTenユーティリティ・ライブラリ・インタフェースを使用して処理を行う場合、アプリケーションは、ttUtilFreeEnv
をコールする必要があります。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
errBuff |
char* |
これは、エラー・メッセージが返される、ユーザーが割り当てるバッファです。返されるエラー・メッセージは、空文字で終了する文字列です。エラー・メッセージは、その長さがbuffLen -1を超えると、buffLen -1に切り捨てられます。このパラメータがNULL の場合、buffLen は無視され、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
buffLen |
unsigned int |
バッファerrBuff のサイズを指定します。このパラメータが0(ゼロ)の場合、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
errLen |
unsigned int* |
これは、エラー・メッセージの実際の長さが返される、符号なし整数へのポインタです。NULL の場合、このパラメータは無視されます。 |
リターン・コード
このユーティリティは、ttutillib.h
で定義されている次のコードを返します。
コード | 説明 |
---|---|
TTUTIL_SUCCESS |
成功時に返します。 |
TTUTIL_INVALID_HANDLE |
無効なユーティリティ・ライブラリ・ハンドルが指定されている場合に返します。 |
これ以外の場合、tt_errCode.h
に定義されているTimesTen固有のエラー・メッセージおよび対応するエラー・メッセージが、コール元によって提供されるバッファに返されます。
構文
ttUtilGetError (ttUtilHandle handle, unsigned int errIndex, unsigned int* retCode, ttUtilErrType* retType, char* errbuff, unsigned int buffLen, unsigned int* errLen)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
errIndex |
unsigned int |
TimesTenユーティリティ・ライブラリ・エラー配列から取得するエラーまたは警告レコードを指定します。有効な値は次のとおりです。
|
retCode |
unsigned int* |
tt_errCode.h で定義されているTimesTen固有のエラー・コードまたは警告コードを返します。 |
retType |
ttUtilErrType* |
返されたメッセージがエラーまたは警告のいずれであるかを示します。有効な戻り値は、次のとおりです。
|
errBuff |
char* |
これは、エラー・メッセージがある場合に返される、ユーザーが割り当てるバッファです。返されるエラー・メッセージは、空文字で終了する文字列です。エラー・メッセージは、その長さがbuffLen -1を超えると、buffLen -1に切り捨てられます。このパラメータがNULL の場合、buffLen は無視され、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
buffLen |
unsigned int |
バッファerrBuff のサイズを指定します。このパラメータが0(ゼロ)の場合、TimesTenはコール元のアプリケーションにエラー・メッセージを返しません。 |
errLen |
unsigned int* |
エラー・メッセージの実際の長さが返される、符号なし整数へのポインタ。NULL の場合、TimesTenではこのパラメータは無視されます。 |
リターン・コード
このユーティリティは、ttutillib.h
で定義されている次のコードを返します。
コード | 説明 |
---|---|
TTUTIL_SUCCESS |
成功時に返します。 |
TTUTIL_INVALID_HANDLE |
無効なユーティリティ・ライブラリ・ハンドルが指定されている場合に返します。 |
TTUTIL_NODATA |
エラー情報も警告情報も取得されない場合に返します。 |
例
この例では、payrollというDSNに対して、
ttDestroyDataStoreをコールした後にすべてのエラー情報または警告情報を取得します。
char errBuff[256]; int rc; unsigned int retCode; ttUtilErrType retType; ttUtilHandle utilHandle; rc = ttDestroyDataStore (utilHandle, "DSN=PAYROLL", 30); if ((rc == TTUTIL_SUCCESS) printf ("Datastore payroll successfully destroyed.\n"); else if (rc == TTUTIL_INVALID_HANDLE) printf ("TimesTen utility library handle is invalid.\n"); else while ((rc = ttUtilGetError (utilHandle, 0, &retCode, &retType, errBuff, sizeof (errBuff), NULL)) != TTUTIL_NODATA) { ... ... }
注意
各TimesTen C関数は、アプリケーションからの1回のコールで、複数のエラーおよび警告を生成する可能性があります。これらのエラーおよび警告のすべてを取得するには、TTUTIL_NODATAが返されるまで、アプリケーションで
ttUtilGetErrorを繰り返しコールする必要があります。
説明
TimesTen Cユーティリティ・ライブラリ関数(ttUtilAllocEnv
およびttUtilFreeEnv
を除く)への最後のコールによって生成されたエラーおよび警告の数を取得します。これらの各関数は、アプリケーションからの1回のコールで、複数のエラーおよび警告を生成する可能性があります。これらのエラーおよび警告のすべてを取得するには、TTUTIL_NODATAが返されるまで、アプリケーションで
ttUtilGetErrorを繰り返しコールする必要があります。
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
errCount |
unsigned int* |
TimesTenユーティリティ・ライブラリへの最後のコール(ttUtilAllocEnv およびttUtilFreeEnv を除く)によって生成されたエラーおよび警告の数を示します。 |
リターン・コード
このユーティリティは、ttutillib.h
で定義されている次のコードを返します。
コード | 説明 |
---|---|
TTUTIL_SUCCESS |
成功時に返します。 |
TTUTIL_INVALID_HANDLE |
無効なユーティリティ・ライブラリ・ハンドルが指定されている場合に返します。 |
例
この例では、payrollというDSNに対して
ttDestroyDataStoreをコールした後に、エラーおよび警告のカウント情報を取得します。
int rc; unsigned int errCount; ttUtilHandle utilHandle; rc = ttDestroyDataStore (utilHandle, "DSN=payroll", 30); if (rc == TTUTIL_SUCCESS) printf ("Datastore payroll successfully destroyed.\n") else if (rc == TTUTIL_INVALID_HANDLE) printf ("TimesTen utility library handle is invalid.\n"); else { rc = ttUtilGetErrorCount(utilHandle, &errCount); ... ... }
説明
指定したトランザクションIDによって示されたトランザクションをロールバックします。ttXactIdRollback
の対象ユーザーは、ttXactAdmin
ユーティリティです。ただし、他のスレッドの処理をロールバックできるスレッドを持つプログラムでは、処理を開始する前にそれらのスレッドでttXactIdGet
組込みプロシージャをコールし、トランザクションをロールバックするスレッドによって認識される場所にその結果を配置する必要があります。(『Oracle TimesTen In-Memory Databaseリファレンス』のttXactIdGetに関する説明を参照してください。)
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
handle |
ttUtilHandle |
ttUtilAllocEnv を使用して割り当てられるTimesTenユーティリティ・ライブラリ環境ハンドルを指定します。 |
connStr |
const char** |
ロールバックするトランザクションが含まれているデータベースの接続文字列を指定します。 |
xactId |
const char* |
ロールバックするトランザクションのトランザクションIDを示します。 |
例
この例では、payroll
というデータベースでIDが3.4567のトランザクションをロールバックします。
char errBuff [256]; int rc; unsigned int retCode; ttUtilErrType retType; ttUtilHandle utilHandle; ... rc = ttXactIdRollback (utilHandle, "DSN=payroll", "3.4567"); if (rc == TTUTIL_SUCCESS) printf ("Transaction ID successfully rolled back.\n"); else if (rc == TTUTIL_INVALID_HANDLE) printf ("TimesTen utility library handle is invalid.\n"); else while ((rc = ttUtilGetError (utilHandle, 0, &retCode, &retType, errBuff, sizeof (errBuff), NULL)) != TTUTIL_NODATA) { ... }