指定したトランザクションIDによって示されたトランザクションをロールバックします。ttXactIdRollbackの対象ユーザーは、ttXactAdminユーティリティです。ただし、他のスレッドの処理をロールバックできるスレッドを持つプログラムでは、処理を開始する前にそれらのスレッドで組込みプロシージャttXactIdGetをコールし、ロールバックを行うスレッドによって認識される場所にその結果を配置する必要があります。
ttXactIdRollback (ttUtilHandle handle, const char* connStr,
const char* xactId);
ttXactIdRollback には、次のパラメータがあります。
パラメータ | 型 | 説明 |
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)
{
...............
}