Top Description Methods
org.apache.derby.impl.store.raw.log

public Interface StreamLogScan

extends LogScan
Known Direct Implementers
org.apache.derby.impl.store.raw.log.FlushedScan, org.apache.derby.impl.store.raw.log.Scan
Imports
org.apache.derby.iapi.store.raw.log.LogInstant, .LogScan, org.apache.derby.iapi.store.raw.xact.TransactionId, org.apache.derby.shared.common.error.StandardException, org.apache.derby.iapi.services.io.ArrayInputStream, java.io.InputStream, .IOException

LogScan provides methods to read a log record and get its LogInstant in an already defined scan. A logscan also needs to know how to advance to the next log record.

Method Summary

Modifier and TypeMethod and Description
public void
close()

Close this log scan.

public long

Returns:

INVALID_LOG_INSTANT if no records have been returned yet or the scan has completed.
getInstant
()

Get the instant of the record just retrieved with getNextRecord().

public LogInstant

Returns:

null if no records have been returned yet or the scan has completed.
getLogInstant
()

Get the LogInstant for the record just retrieved with getNextRecord().

public long

Returns:

INVALID_LOG_INSTANT if this is not a FORWARD scan or, no record have been returned yet or the scan has completed.
getLogRecordEnd
()

Get the log instant that is right after the record just retrieved with getNextRecord().

public LogRecord

Returns:

an object that represents the log record, return null if the scan has completed.
getNextRecord
(ArrayInputStream
the ArrayInputStream to put the log record
input
,
TransactionId
if non-null, only log record that equals tranId will be returned. If null, log records are not filtered on transaction Id.
tranId
,
int
if non-zero, only log record whose Loggable's group value is included in the groupmask is returned. groupmask can be a bit wise OR of many Loggable groups. If zero, log records are not filtered on the Loggable's group.
groupmask
)

Get the next record in the scan and place its data in the passed in array.

public boolean

Returns:

true if fuzzy log end found during forward scan, this happens if there was a partially written log records before the crash.
isLogEndFuzzy
()

public void
resetPosition(LogInstant
the log instant to reset to
instant
)

Reset the scan to the given LogInstant so that getNextRecord get the log record AFTER the given LogInstant.

Method Detail

closeback to summary
public void close()

Close this log scan.

getInstantback to summary
public long getInstant()

Get the instant of the record just retrieved with getNextRecord().

Returns:long

INVALID_LOG_INSTANT if no records have been returned yet or the scan has completed.

getLogInstantback to summary
public LogInstant getLogInstant()

Get the LogInstant for the record just retrieved with getNextRecord().

Returns:LogInstant

null if no records have been returned yet or the scan has completed.

getLogRecordEndback to summary
public long getLogRecordEnd()

Get the log instant that is right after the record just retrieved with getNextRecord(). Only valid for a forward scan and on a successful retrieval.

Returns:long

INVALID_LOG_INSTANT if this is not a FORWARD scan or, no record have been returned yet or the scan has completed.

getNextRecordback to summary
public LogRecord getNextRecord(ArrayInputStream input, TransactionId tranId, int groupmask) throws StandardException, IOException

Get the next record in the scan and place its data in the passed in array. The scan is advanced to the next log record. If the input array is of insufficient size, getNextRecord must expand the array to accomodate the log record. User can optionally pass in a transaction Id and a group mask. If provided, only log record that matches the transaction Id and the group mask is returned.

Parameters
input:ArrayInputStream

the ArrayInputStream to put the log record

tranId:TransactionId

if non-null, only log record that equals tranId will be returned. If null, log records are not filtered on transaction Id.

groupmask:int

if non-zero, only log record whose Loggable's group value is included in the groupmask is returned. groupmask can be a bit wise OR of many Loggable groups. If zero, log records are not filtered on the Loggable's group.

Returns:LogRecord

an object that represents the log record, return null if the scan has completed.

Exceptions
StandardException:
Standard Clooudscape error policy
IOException:
Some I/O exception raised during reading the log record.
isLogEndFuzzyback to summary
public boolean isLogEndFuzzy()
Returns:boolean

true if fuzzy log end found during forward scan, this happens if there was a partially written log records before the crash.

resetPositionback to summary
public void resetPosition(LogInstant instant) throws IOException, StandardException

Reset the scan to the given LogInstant so that getNextRecord get the log record AFTER the given LogInstant.

Parameters
instant:LogInstant

the log instant to reset to

Exceptions
IOException:
Some I/O exception raised when accessing the log file
StandardException:
reset to illegal position or beyond the limit of the scan.