public class NoSQLPublisher extends Object implements org.reactivestreams.Publisher<StreamOperation>
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_MAX_CONCURRENT_SUBS
Default maximum number of subscriptions.
|
static long |
DEFAULT_SHARD_TIMEOUT_MS
Default shard timeout in milliseconds.
|
Modifier and Type | Method and Description |
---|---|
void |
close(boolean delDir)
Closes a publisher without error, shut down all connection to source and
free resources.
|
void |
close(Throwable cause,
boolean delDir)
Closes a publisher, shut down all connection to source and free
resources.
|
static void |
createCheckpointTable(KVStore kvs,
String ckptTableName)
Creates a checkpoint table
|
static NoSQLPublisher |
get(NoSQLPublisherConfig config)
Returns a handle to the NoSQL publisher after verifying that the store
exists and is accessible.
|
static NoSQLPublisher |
get(NoSQLPublisherConfig config,
Logger logger)
Returns a handle to the NoSQL publisher after verifying that the store
exists and is accessible.
|
static NoSQLPublisher |
get(NoSQLPublisherConfig config,
LoginCredentials loginCred)
Returns a handle to the NoSQL publisher after verifying that the store
exists and is accessible.
|
static NoSQLPublisher |
get(NoSQLPublisherConfig config,
LoginCredentials loginCred,
Logger logger)
Returns a handle to the NoSQL publisher after verifying that the store
exists and is accessible.
|
long |
getStoreId()
Gets kvstore store id
|
String |
getStoreName()
Gets the kvstore name
|
boolean |
isClosed()
Returns true is the publisher has already shutdown
|
void |
subscribe(org.reactivestreams.Subscriber<? super StreamOperation> s)
A Subscriber establishes a NoSQL Subscription to initiate the flow of
elements from the Publisher.
|
public static final int DEFAULT_MAX_CONCURRENT_SUBS
public static final long DEFAULT_SHARD_TIMEOUT_MS
public static NoSQLPublisher get(NoSQLPublisherConfig config)
config
- publisher configurationPublisherFailureException
- if unable to create a publisherpublic static NoSQLPublisher get(NoSQLPublisherConfig config, Logger logger) throws PublisherFailureException
config
- publisher configurationlogger
- private loggerPublisherFailureException
- if unable to create a publisherpublic static NoSQLPublisher get(NoSQLPublisherConfig config, LoginCredentials loginCred)
config
- publisher configurationloginCred
- login credentialsPublisherFailureException
- if unable to create a publisherpublic static NoSQLPublisher get(NoSQLPublisherConfig config, LoginCredentials loginCred, Logger logger) throws PublisherFailureException
config
- publisher configurationloginCred
- login credentialslogger
- private loggerPublisherFailureException
- if unable to create a publisherpublic static void createCheckpointTable(KVStore kvs, String ckptTableName) throws PublisherFailureException, IllegalArgumentException
kvs
- kvstore instanceckptTableName
- name of checkpoint tablePublisherFailureException
- if unable to create the checkpoint
table at kvstore.IllegalArgumentException
- if required parameter is invalidpublic void subscribe(org.reactivestreams.Subscriber<? super StreamOperation> s) throws NullPointerException
NoSQLSubscriber.getSubscriptionConfig()
. The configuration
contains information needed by the Publisher to start or resume the
stream. Normal completion of this method results in
NoSQLSubscriber.onSubscribe(org.reactivestreams.Subscription)
being invoked.
Each publisher can have at most one subscriber from a subscription
group specified in NoSQLSubscriptionConfig
. For example, for a
subscription group with three subscribers, each must run in a separate
publisher, preferably on separate nodes. In other words, within each
Publisher, all concurrent subscriptions must be from distinct groups. If
a user tries to subscribe two subscriptions from the same group to same
Publisher, a SubscriptionFailureException
will be raised.
Note his method is not allowed to throw any exceptions other than NullPointerException. All other exceptions must be delivered via onError, according to rule Publisher.9 in reactive stream spec.
subscribe
in interface org.reactivestreams.Publisher<StreamOperation>
s
- subscriber trying to use the publisherNullPointerException
- if subscriber is nullpublic void close(boolean delDir)
delDir
- true if delete the publisher root directorypublic void close(Throwable cause, boolean delDir)
cause
- null if normal close, otherwise it is the cause of
failure that leads to publisher close.delDir
- true if delete the publisher root directorypublic long getStoreId()
public String getStoreName()
public boolean isClosed()
Copyright (c) 2011, 2017 Oracle and/or its affiliates. All rights reserved.