Qorus Integration Engine® Enterprise Edition 6.0.25_prod
|
A class for inbound/reading data from the remote instance, I/O is handled in a background thread and is made available in the getData() and getAllData() methods. More...
Public Member Methods | |
constructor (DbRemoteBase remote, string stream, string table_name, *hash< auto > options) | |
constructor taking an OMQ::DbRemoteBase object for the remote connection More... | |
constructor (DbRemoteBase remote, string table_name, *hash< auto > options) | |
constructor taking an OMQ::DbRemoteBase object for the remote connection and assuming the "select" stream More... | |
constructor (string remote, string datasource, string stream, string table_name, *hash< auto > options) | |
constructor taking a string giving the name of the remote connection for the remote server More... | |
constructor (string remote, string datasource, string table_name, *hash< auto > options) | |
constructor taking a string giving the name of the remote connection for the remote server and assuming the "select" stream More... | |
constructor (QorusSystemRestHelper remote, string datasource, string stream, string table_name, *hash< auto > options) | |
constructor taking an OMQ::QorusSystemRestHelper object for the remote connection More... | |
constructor (QorusSystemRestHelper remote, string datasource, string table_name, *hash< auto > options) | |
constructor taking an OMQ::QorusSystemRestHelper object for the remote connection and assuming the "select" stream More... | |
openStream (string stream, string table_name, *hash< auto > options) | |
flushes the current stream and reopens a new stream with the same remote connection and in the same datasource More... | |
commit () | |
Commit remote transaction. More... | |
rollback (bool action=DO_DISCONNECT) | |
Rollback remote transaction. More... | |
disconnect () | |
Disconnects the connection. | |
*hash< auto > | getData (*timeout timeout_ms) |
returns queued data as soon as it is available, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue; once this method return NOTHING it signifies that the end of stream data condition has been reached; do not call this method again after it returns NOTHING More... | |
*hash< auto > | getAllData (*timeout timeout_ms) |
returns all data recevied by the object in a single call, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue More... | |
*list< auto > | getDataRows (*timeout timeout_ms) |
returns queued data as a list<auto> of rows as soon as it is available, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue; once this method return NOTHING it signifies that the end of stream data condition has been reached; do not call this method again after it returns NOTHING More... | |
*list< auto > | getAllDataRows (*timeout timeout_ms) |
returns all data recevied by the object in a single call as a list<auto> of rows, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue More... | |
OMQ::StreamConfig | config () |
returns the configuration object | |
Public Member Methods inherited from OMQ::AbstractParallelReceiveStream | |
destructor () | |
disconnects and aborts the I/O thread if it's still running | |
nothing | cleanup () |
called when the thread resource is still allocated and the thread exits or one of Qore::throw_thread_resource_exceptions() or Qore::throw_thread_resource_exceptions_to_mark() is called | |
abstract private | throwAbortedExceptionImpl (string meth) |
throw a user-friendly exception about why the I/O thread was aborted and the connection forcibly closed and how to avoid such situations in the future | |
Private Member Methods | |
constructor (*hash< auto > options, DbRemoteBase remote, string sql, *list< auto > args) | |
Private constructor. | |
constructor (*hash< auto > options, string remote, string datasource, string sql, *list< auto > args) | |
Private constructor. | |
constructor (*hash< auto > options, QorusSystemRestHelper remote, string datasource, string sql, *list< auto > args) | |
Private constructor. | |
throwAbortedExceptionImpl (string meth) | |
throw a user-friendly exception about why the I/O thread was aborted and the connection forcibly closed and how to avoid such situations in the future | |
startStreamImpl () | |
opens the remote transaction if necessary | |
socketThreadImpl () | |
receive reimplementation | |
nothing | recvDataImpl (auto rdata) |
An abstract method to handle incoming data. More... | |
nothing | recvDataDoneImpl (*string err) |
called when all data has been received or the background I/O operation terminates due to an error | |
checkComplete (string meth) | |
checks if data is requested after the transfer is complete | |
Private Member Methods inherited from OMQ::AbstractParallelReceiveStream | |
abortInternMethod (string meth) | |
if the I/O thread is running, then abort it, disconnect the connection, and throw a user-friendly exception what happened and how to avoid such situations in the future | |
abortIntern (string meth, string fmt) | |
if the I/O thread is running, then abort it, disconnect the connection, and throw a user-friendly exception what happened and how to avoid such situations in the future | |
Private Attributes | |
DbSelectStreamConfig | m_config |
stream configuration | |
bool | complete |
flag indicating that all data has been taken from the Queue | |
A class for inbound/reading data from the remote instance, I/O is handled in a background thread and is made available in the getData() and getAllData() methods.
"Qorus-Connection: Continue-Persistent"
header when opening the stream if the "transaction"
constructor() option is set to True. Remote transactions must be explicitly committed (by calling DbRemoteReceive::commit() for example) or aborted (by calling DbRemoteReceive::disconnect() for example); otherwise the remote transaction status is left unchanged by the DbRemoteReceive object.transaction
option is set, otherwise the remote transaction status is left unchanged OMQ::DbRemoteReceive::commit | ( | ) |
Commit remote transaction.
OMQ::DbRemoteReceive::constructor | ( | DbRemoteBase | remote, |
string | stream, | ||
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking an OMQ::DbRemoteBase object for the remote connection
remote | an OMQ::DbRemoteBase object |
stream | the system.sqlutil service stream to be used |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
optionOMQ::DbRemoteReceive::constructor | ( | DbRemoteBase | remote, |
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking an OMQ::DbRemoteBase object for the remote connection and assuming the "select"
stream
remote | an OMQ::DbRemoteBase object |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
"select"
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
optionOMQ::DbRemoteReceive::constructor | ( | QorusSystemRestHelper | remote, |
string | datasource, | ||
string | stream, | ||
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking an OMQ::QorusSystemRestHelper object for the remote connection
remote | an OMQ::QorusSystemRestHelper object |
datasource | a string with name of the remote datasource to use |
stream | the system.sqlutil service stream to be used |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
optionOMQ::DbRemoteReceive::constructor | ( | QorusSystemRestHelper | remote, |
string | datasource, | ||
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking an OMQ::QorusSystemRestHelper object for the remote connection and assuming the "select"
stream
remote | an OMQ::QorusSystemRestHelper object |
datasource | a string with name of the remote datasource to use |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
"select"
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
optionOMQ::DbRemoteReceive::constructor | ( | string | remote, |
string | datasource, | ||
string | stream, | ||
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking a string giving the name of the remote connection for the remote server
remote | a string giving the name of the remote connection for the remote server |
datasource | a string with name of the remote datasource to use |
stream | the system.sqlutil service stream to be used |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
optionOMQ::DbRemoteReceive::constructor | ( | string | remote, |
string | datasource, | ||
string | table_name, | ||
*hash< auto > | options | ||
) |
constructor taking a string giving the name of the remote connection for the remote server and assuming the "select"
stream
remote | a string giving the name of the remote connection for the remote server |
datasource | a string with name of the remote datasource to use |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
"select"
transaction
option is set, otherwise the remote transaction status is left unchangedforupdate
select_option must be manually included in the "select"
option hash to initiate a "select for update"
; this is not automatically set by setting the "transaction"
option*hash< auto > OMQ::DbRemoteReceive::getAllData | ( | *timeout | timeout_ms | ) |
returns all data recevied by the object in a single call, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue
timeout_ms | an override for the the timeout for waiting on the queue; integers are interpreted as milliseconds; relative date/time values are interpreted literally with a maximum resolution of milliseconds; if the timeout limit is exceeded before data is available, a QUEUE-TIMEOUT error is thrown. If no value is given here, the default queue timeout value configured for the object is used (see the "queue_timeout" option in the constructor()) |
DB-REMOTE-RECEIVE-ERROR | this exception is thrown if this method is called after it returns NOTHING signifying end of stream |
QUEUE-TIMEOUT | no data was posted to the queue in the timeout period |
STREAM-TERMINATED | if the I/O thread was terminated prematurely, this exception will be thrown |
*list< auto > OMQ::DbRemoteReceive::getAllDataRows | ( | *timeout | timeout_ms | ) |
returns all data recevied by the object in a single call as a list<auto> of rows, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue
timeout_ms | an override for the the timeout for waiting on the queue; integers are interpreted as milliseconds; relative date/time values are interpreted literally with a maximum resolution of milliseconds; if the timeout limit is exceeded before data is available, a QUEUE-TIMEOUT error is thrown. If no value is given here, the default queue timeout value configured for the object is used (see the "queue_timeout" option in the constructor()) |
DB-REMOTE-RECEIVE-ERROR | this exception is thrown if this method is called after it returns NOTHING signifying end of stream |
QUEUE-TIMEOUT | no data was posted to the queue in the timeout period |
STREAM-TERMINATED | if the I/O thread was terminated prematurely, this exception will be thrown |
*hash< auto > OMQ::DbRemoteReceive::getData | ( | *timeout | timeout_ms | ) |
returns queued data as soon as it is available, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue; once this method return NOTHING it signifies that the end of stream data condition has been reached; do not call this method again after it returns NOTHING
timeout_ms | an override for the the timeout for waiting on the queue; integers are interpreted as milliseconds; relative date/time values are interpreted literally with a maximum resolution of milliseconds; if the timeout limit is exceeded before data is available, a QUEUE-TIMEOUT error is thrown. If no value is given here, the default queue timeout value configured for the object is used (see the "queue_timeout" option in the constructor()) |
DB-REMOTE-RECEIVE-ERROR | this exception is thrown if this method is called after it returns NOTHING signifying end of stream |
QUEUE-TIMEOUT | this exception is thrown if a timeout occurs on the Queue |
STREAM-TERMINATED | if the I/O thread was terminated prematurely, this exception will be thrown |
*list< auto > OMQ::DbRemoteReceive::getDataRows | ( | *timeout | timeout_ms | ) |
returns queued data as a list<auto> of rows as soon as it is available, if the timeout is omitted or equal or less than 0, no timeout is used and the call will block until data is available on the queue; once this method return NOTHING it signifies that the end of stream data condition has been reached; do not call this method again after it returns NOTHING
timeout_ms | an override for the the timeout for waiting on the queue; integers are interpreted as milliseconds; relative date/time values are interpreted literally with a maximum resolution of milliseconds; if the timeout limit is exceeded before data is available, a QUEUE-TIMEOUT error is thrown. If no value is given here, the default queue timeout value configured for the object is used (see the "queue_timeout" option in the constructor()) |
DB-REMOTE-RECEIVE-ERROR | this exception is thrown if this method is called after it returns NOTHING signifying end of stream |
QUEUE-TIMEOUT | this exception is thrown if a timeout occurs on the Queue |
STREAM-TERMINATED | if the I/O thread was terminated prematurely, this exception will be thrown |
OMQ::DbRemoteReceive::openStream | ( | string | stream, |
string | table_name, | ||
*hash< auto > | options | ||
) |
flushes the current stream and reopens a new stream with the same remote connection and in the same datasource
stream | the system.sqlutil service stream to be used |
table_name | a string with remote table name located in the remote datasource |
options | optional Streaming API Constructor Options as follows:
|
|
privatevirtual |
An abstract method to handle incoming data.
rdata | data arrive in hash format: keys = columns, values = lists of row values |
Implements DataStreamClient::DataStreamRecvMessage.
OMQ::DbRemoteReceive::rollback | ( | bool | action = DO_DISCONNECT | ) |
Rollback remote transaction.
action | an optional bool value to keep connection open or close the connection. Connection closing is the default |