ttXlaNextUpdate関数と同様の処理を行いますが、使用可能なレコードがログにない場合に待機する秒数を指定するパラメータsecondsがあります。実際に待機する秒数は、secondsに指定された値より最大で2秒長くなる場合があります。
この関数の使用方法については、「トランザクション・ログからの更新レコードの取得」を参照してください。
SQLRETURN ttXlaNextUpdateWait(ttXlaHandle_h handle,
out ttXlaUpdateDesc_t ***records,
SQLINTEGER maxrecords,
out SQLINTEGER * nreturned,
SQLINTEGER seconds)
パラメータ
|
型
|
説明
|
---|---|---|
handle | ttXlaHandle_h | データ・ストアのトランザクション・ログ・ハンドル。 |
records | out ttXlaUpdateDesc_t *** | 完了したトランザクション・レコードを保持するバッファ。 |
maxrecords | SQLINTEGER | フェッチされるレコードの最大数。 |
nreturned | out SQLINTEGER * | 実際に返されたレコードの数。secondsの待機時間内に使用可能な更新データがない場合は、0(ゼロ)が返されます。 |
seconds | SQLINTEGER | ログが空の場合に待機する時間(秒)。 |
コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。
最大100個のレコードを取得し、使用可能なレコードがログにない場合に最大60秒待機します。
ttXlaUpdateDesc_t **records;
SQLINTEGER nreturned;
SQLINTEGER i;
rc = ttXlaNextUpdateWait(xlahandle, &records, 100,
&nreturned, 60);
/* Check for errors; if none, process the records */
for (i = 0; i < nreturned; i++) {
process(records[i]);
}