ID | IEP-50 |
Author | |
Sponsor | |
Created |
|
Status | DRAFT |
Thin clients should be able to perform Continuous Queries.
Continuous query involves the following:
Remote Filter is a BinaryObject
:
PlatformContext.createContinuousQueryFilter
(see ClientCacheScanQueryRequest
)ContinuousQueryWithTransformer
is out of scope: it is a separate class, and should have a separate client operation.
Name | Code |
---|---|
OP_QUERY_CONTINUOUS | 2006 |
OP_QUERY_CONTINUOUS_EVENT_NOTIFICATION | 2007 |
Request | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
int | cacheId | ||||||||||||||||||||||||||||||||
byte | flags: standard cache flags, see ClientCacheRequest. Only KEEP_BINARY is applicable to Continuous Query. When KEEP_BINARY is set, the filter should receive key/val in binary form. | ||||||||||||||||||||||||||||||||
int | bufferSize (see AbstractContinuousQuery, default 1) | ||||||||||||||||||||||||||||||||
long | timeInterval (see AbstractContinuousQuery, default 0) | ||||||||||||||||||||||||||||||||
bool | includeExpired (see AbstractContinuousQuery, default false) | ||||||||||||||||||||||||||||||||
BinaryObject | filter | ||||||||||||||||||||||||||||||||
byte | filterPlatform (see ClientCacheScanQueryRequest, 1= Java, 2 = .NET) (when filter is not null) | ||||||||||||||||||||||||||||||||
byte | initialQueryType (0 = NONE, 1 = SQL, 2 = SCAN) | ||||||||||||||||||||||||||||||||
initialQuery (when initialQueryType > 0) | when initialQueryType == 1 (SCAN)
when initialQueryType == 2 (SQL)
|
Response | |
---|---|
long | continuousQueryId |
int | columnCount (when initial query is SQL) |
n * string | column names (when initial query is SQL) |
Resulting continuousQueryId should be used to stop the query with OP_RESOURCE_CLOSE and (when applicable) retrieve initial query data with OP_QUERY_SCAN_CURSOR_GET_PAGE or OP_QUERY_SQL_CURSOR_GET_PAGE, respectively.
Note: AbstractContinuousQuery.autoUnsubscribe should be always true for thin client continuous queries.
As a result of OP_QUERY_CONTINUOUS and until OP_RESOURCE_CLOSE is called, client should expect OP_QUERY_CONTINUOUS_EVENT_NOTIFICATION messages from the server:
int | event count | ||||||||
n * CacheEntryEvent |
|