startDeltaRead()メソッドをコールして、readRecords()メソッドが使用するデルタ(増分)読取りのカーソルを作成します。
-
create()メソッドをコールし、ServiceAddressオブジェクトおよびレコード・ストア・インスタンス名を渡して、レコード・ストア・サーバーへの接続を作成します。
ServiceAddress address = new ServiceAddress(host, port, contextPath);
RecordStoreLocator locator = RecordStoreLocator.create(address, instanceName);
-
getService()メソッドをコールして、レコード・ストア・インスタンスを作成します。
RecordStore recordStore = locator.getService();
-
startTransaction()メソッドをコールして、READトランザクションを開始します。
TransactionId transactionId = recordStore.startTransaction(TransactionType.READ);
-
startDeltaRead()メソッドをコールして、ReadCursorIdオブジェクトを作成します。
ReadCursorId readCursorId = recordStore.startDeltaRead(transactionId, startGeneration, endGeneration);
-
読取りカーソルからのすべてのレコードが読み取られるまで、readRecords()によって返されるレコードをループ処理します。
List<Record> records;
do {
records = recordStore.readRecords(readCursorId, numRecordsPerFetch);
// do something with the records
} while (!records.isEmpty());
-
endRead()メソッドをコールして、READトランザクションを終了します。
recordStore.endRead(readCursorId);
-
commitTransaction()メソッドをコールして、トランザクションをコミットします。
recordStore.commitTransaction(transactionId);
デルタ読取りの実行例
ServiceAddress address = new ServiceAddress(host, port, contextPath);
RecordStoreLocator locator = RecordStoreLocator.create(address, instanceName);
RecordStore recordStore = locator.getService();
TransactionId transactionId = recordStore.startTransaction(TransactionType.READ);
ReadCursorId readCursorId = recordStore.startDeltaRead(transactionId, startGeneration, endGeneration);
List<Record> records;
do {
records = recordStore.readRecords(readCursorId, numRecordsPerFetch);
// do something with the records
} while (!records.isEmpty());
recordStore.endRead(readCursorId);
recordStore.commitTransaction(transactionId);