Package com.streambase.liveview.client
Interface TablePublisher
- All Superinterfaces:
AutoCloseable
,Closeable
An instance of a publisher for publishing tuples into a table. A publisher can be used to publish new or updated
tuples to a table. The server determines if the tuple is new or updated based on the table's primary key.
A publisher is created from
Table.getTablePublisher(String)
where a publisher name is specified. Tuples
published will include the name of the publisher and the specified sequenceNumber for tracking and recoverability
purposes.-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The default number of tuples buffered on the client side before publishing to the server.static final long
The default time between buffer flushes when the buffer does not fill up completely.static final TimeUnit
Default publish interval units:TimeUnit.MILLISECONDS
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes client and server resources held by the publishervoid
flush()
Force the currently buffered tuples to be sent to the server.Gets thePublisherListener
associated with thisTablePublisher
Schema needed to create tuples for the publish method.Gets the latestPublisherStatus
for the currentTablePublisher
void
Publish a tuple with a sequenceNumber.void
Publish a tuple with a sequenceNumber.void
Publish a tuple without regard for recovering since no sequence number is specified.void
Publish a tuple without regard for recovering since no sequence number is specified.
-
Field Details
-
PUBLISH_BUFFER_SIZE_DEFAULT
static final int PUBLISH_BUFFER_SIZE_DEFAULTThe default number of tuples buffered on the client side before publishing to the server. Value 100.- See Also:
-
PUBLISH_INTERVAL_DEFAULT
static final long PUBLISH_INTERVAL_DEFAULTThe default time between buffer flushes when the buffer does not fill up completely. Value 250L, inPUBLISH_INTERVAL_TIME_UNIT_DEFAULT
units.- See Also:
-
PUBLISH_INTERVAL_TIME_UNIT_DEFAULT
Default publish interval units:TimeUnit.MILLISECONDS
.
-
-
Method Details
-
getSchema
Schema getSchema()Schema needed to create tuples for the publish method. This schema does not include any internal fields maintained by LiveView. It will only be the necessary data fields of the table.- Returns:
- the schema
-
publish
Publish a tuple with a sequenceNumber. There are no specific requirements on sequenceNumber, but it can be used as a mechanism for recovery, so a monotonically increasing number is recommended such that the server, on recovery, can report what the last successfully published sequence number was per named publisher. With this approach, a publisher only needs to re-publish tuples starting from the last reported successful published sequenceNumber in LiveView.- Parameters:
sequenceNumber
- the identifier known to the publishertuple
- the tuple to publish- Throws:
LiveViewException
- if any server side exception occurs during publishing
-
publish
Publish a tuple with a sequenceNumber. If CQSDelete is true, the row that matches the primary key values set in the tuple will be deleted.- Parameters:
sequenceNumber
- the identifier known to the publisherCQSDelete
- - true if you wish to delete the row defined by the primary key valuestuple
- the tuple to publish. If CQSDelete is true the row which matches the primary key values is removed.- Throws:
LiveViewException
- if any server side exception occurs during publishing- Since:
- 1.6
-
publish
Publish a tuple without regard for recovering since no sequence number is specified.- Parameters:
tuple
- the tuple to publish- Throws:
LiveViewException
- if any server side exception occurs during publishing
-
publish
Publish a tuple without regard for recovering since no sequence number is specified. If CQSDelete is true, the row that matches the primary key values set in the tuple will be deleted.- Parameters:
CQSDelete
- true if you wish to delete the row defined by the primary key valuestuple
- the tuple to publish. If CQSDelete is true the row which matches the primary key values is removed.- Throws:
LiveViewException
- if any server side exception occurs during publishing- Since:
- 10.5.0
-
getStatus
Gets the latestPublisherStatus
for the currentTablePublisher
- Returns:
PublisherStatus
to get the latestPublisherStatus
of currentTablePublisher
- Throws:
LiveViewException
- Since:
- 10.5.0
-
getPublisherListener
Gets thePublisherListener
associated with thisTablePublisher
- Returns:
PublisherListener
to receivePublisherStatusEvent
. Returns null if there is no associatedPublisherListener
.- Throws:
LiveViewException
- Since:
- 10.5.0
-
flush
Force the currently buffered tuples to be sent to the server. This method blocks while flushing occurs.- Throws:
LiveViewException
-
close
void close()Closes client and server resources held by the publisher- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-