com::pcbsys::nirvana::client::nTransaction Class Reference

This class enables the client to perform transactional publishing, representing a nirvana transaction. More...

#include <nTransaction.h>

Public Member Functions

void abort ()
 Aborts the transaction associated with the txid provided and this channel. More...
 
void commit ()
 Commits the transaction id associated to this channel on the server. More...
 
void commit (longlong delay)
 Commits the transaction id associated to this channel on the server. More...
 
void commit (time_t timeToPublish, int millisecsToPublish)
 Commits the transaction id associated to this channel on the server. More...
 
nTransactionAttributesgetAttributes ()
 Gets the transaction attributes object associated with this transaction. More...
 
longlong getEndEID ()
 Gets the end event id of the range to be published by this transaction. More...
 
longlong getStartEID ()
 Gets the start event id of the range to be published by this transaction. More...
 
longlong getTXID ()
 Gets the end transaction id associated with this transaction. More...
 
bool isAborted ()
 Checks if this transaction is aborted. More...
 
bool isAborted (bool forceRemoteCheck)
 Method that checks if this transaction is aborted. More...
 
bool isCommitted ()
 Checks if this transaction is committed. More...
 
bool isCommitted (bool forceRemoteCheck)
 Method that checks if this transaction is committed. More...
 
void publish (std::list< nConsumeEvent * > &events)
 Adds the specified collection of nConsumeEvent objects to this transaction. More...
 
void publish (nConsumeEvent *pEvt)
 Adds the specified nConsumeEvent to this transaction. More...
 
void push (nConsumeEvent *pEvt)
 Pushes the specified nConsumeEvent to this transaction. More...
 

Static Public Member Functions

static bool getCacheLocalBeforeCommit ()
 Gets the cacheLocalBeforeCommit value- if true then events will be cached before commit. More...
 
static void setCacheLocalBeforeCommit (bool bCacheLocal)
 Sets cacheLocalBeforeCommit value- if true then events will be cached before commit. More...
 

Detailed Description

This class enables the client to perform transactional publishing, representing a nirvana transaction.

Member Function Documentation

void com::pcbsys::nirvana::client::nTransaction::abort ( )

Aborts the transaction associated with the txid provided and this channel.

Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nChannelNotFoundExceptionThe channel, typically, has been deleted
nSecurityExceptionThe client does not have permissions to perform this operation
nUnexpectedResponseExceptionThe server responded with with an unknown response, see the message for more information
nTransactionNotStartedExceptionThe transaction has not been started
nTransactionNoSuchTXIDExceptionThere is no known TXID, typically the transaction has timed out
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nSessionPausedExceptionThe session is currently paused
void com::pcbsys::nirvana::client::nTransaction::commit ( )

Commits the transaction id associated to this channel on the server.

We then wait for the server to respond. The server responds with the EIDs of the events that have been put on to this channel for the supplied transaction id. Once this process is complete we remove the supplied transaction id from the list of transactions found within the controlling nSession.

Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nChannelNotFoundExceptionThe channel, typically, has been deleted
nSecurityExceptionThe client does not have permissions to perform this operation
nUnexpectedResponseExceptionThe server responded with with an unknown response, see the message for more information
nTransactionNotStartedExceptionThe transaction has not been started
nTransactionNoSuchTXIDExceptionThere is no known TXID, typically the transaction has timed out
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nSessionPausedExceptionThe session is currently paused
void com::pcbsys::nirvana::client::nTransaction::commit ( longlong  delay)

Commits the transaction id associated to this channel on the server.

This method allows the transaction to be delayed until t+delay before it is committed

We then wait for the server to respond. The server responds with the EIDs of the events that have been put on to this channel for the supplied transaction id. Once this process is complete we remove the supplied transaction id from the list of transactions found within the controlling nSession.

Parameters
delay- the number of milliseconds to delay the commit for at the server
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nChannelNotFoundExceptionThe channel, typically, has been deleted
nSecurityExceptionThe client does not have permissions to perform this operation
nUnexpectedResponseExceptionThe server responded with with an unknown response, see the message for more information
nTransactionNotStartedExceptionThe transaction has not been started
nTransactionNoSuchTXIDExceptionThere is no known TXID, typically the transaction has timed out
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nSessionPausedExceptionThe session is currently paused
void com::pcbsys::nirvana::client::nTransaction::commit ( time_t  timeToPublish,
int  millisecsToPublish 
)

Commits the transaction id associated to this channel on the server.

This method allows the transaction to be committed at a future date, rather than immediately.

We then wait for the server to respond. The server responds with the EIDs of the events that have been put on to this channel for the supplied transaction id. Once this process is complete we remove the supplied transaction id from the list of transactions found within the controlling nSession.

Parameters
timeToPublishdate at which the transaction will be committed
millisecsToPublishthe number of milliseconds after timeToPublish to publish
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nChannelNotFoundExceptionThe channel, typically, has been deleted
nSecurityExceptionThe client does not have permissions to perform this operation
nUnexpectedResponseExceptionThe server responded with with an unknown response, see the message for more information
nTransactionNotStartedExceptionThe transaction has not been started
nTransactionNoSuchTXIDExceptionThere is no known TXID, typically the transaction has timed out
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nSessionPausedExceptionThe session is currently paused
nTransactionAttributes* com::pcbsys::nirvana::client::nTransaction::getAttributes ( )

Gets the transaction attributes object associated with this transaction.

Returns
a nTransactionAttributes object with the attributes for this transaction
static bool com::pcbsys::nirvana::client::nTransaction::getCacheLocalBeforeCommit ( )
static

Gets the cacheLocalBeforeCommit value- if true then events will be cached before commit.

Returns
a bool
longlong com::pcbsys::nirvana::client::nTransaction::getEndEID ( )

Gets the end event id of the range to be published by this transaction.

Returns
a long specifying the end event id of the range to be published by this transaction
Exceptions
nTransactionNotCommittedExceptionis thrown if the transaction is not yet committed
longlong com::pcbsys::nirvana::client::nTransaction::getStartEID ( )

Gets the start event id of the range to be published by this transaction.

Returns
a long specifying the start event id of the range to be published by this transaction
Exceptions
nTransactionNotCommittedExceptionis thrown if the transaction is not yet committed
longlong com::pcbsys::nirvana::client::nTransaction::getTXID ( )

Gets the end transaction id associated with this transaction.

Returns
a long specifying the transaction ID
bool com::pcbsys::nirvana::client::nTransaction::isAborted ( )

Checks if this transaction is aborted.

Returns
a bool value specifying if this transaction has been aborted
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nSessionPausedExceptionThe session is currently paused
nTransactionIncompleteExceptionthe transaction is invalid or incomplete
bool com::pcbsys::nirvana::client::nTransaction::isAborted ( bool  forceRemoteCheck)

Method that checks if this transaction is aborted.

Parameters
forceRemoteCheckif false, the transaction will check its local state first before checking with the realm server, if true, it will check with the realm server only
Returns
a bool value specifying if the transaction has been aborted
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nSessionPausedExceptionThe session is currently paused
nTransactionIncompleteExceptionthe transaction is invalid or incomplete
bool com::pcbsys::nirvana::client::nTransaction::isCommitted ( )

Checks if this transaction is committed.

Returns
a bool value specifying if this transaction has been committed
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nSessionPausedExceptionThe session is currently paused
nTransactionIncompleteExceptionthe transaction is invalid or incomplete
nUnknownTransactionIdExceptionthe transaction id is not known on this server
bool com::pcbsys::nirvana::client::nTransaction::isCommitted ( bool  forceRemoteCheck)

Method that checks if this transaction is committed.

Parameters
forceRemoteCheckif false, the transaction will check its local state first before checking with the realms server, if true, it will check with the realm server only
Returns
a bool value specifying if the transaction has been committed
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nRequestTimedOutExceptionThe server did not respond within the timeout period
nSessionPausedExceptionThe session is currently paused
nTransactionIncompleteExceptionthe transaction is invalid or incomplete
nUnknownTransactionIdExceptionthe transaction id is not known on this server
void com::pcbsys::nirvana::client::nTransaction::publish ( std::list< nConsumeEvent * > &  events)

Adds the specified collection of nConsumeEvent objects to this transaction.

No events will be published until this transaction is committed.

Parameters
eventsthe List collection of nConsumeEvent objects to be added to this transaction
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nSecurityExceptionThe client does not have permissions to perform this operation
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nTransactionNoEventsExceptionThere are no nConsumeEvents in the list
nSessionPausedExceptionThe session is currently paused
void com::pcbsys::nirvana::client::nTransaction::publish ( nConsumeEvent pEvt)

Adds the specified nConsumeEvent to this transaction.

No events will be published until this transaction is committed

Parameters
*pEvtthe nConsumeEvent object to be added to this transaction
Exceptions
nSessionNotConnectedExceptionThe session is not currently connected to the server when this call was made
nSecurityExceptionThe client does not have permissions to perform this operation
nTransactionAlreadyCommittedExceptionThe transaction has already been committed
nTransactionAlreadyAbortedExceptionThe transaction has already been aborted
nSessionPausedExceptionThe session is currently paused
void com::pcbsys::nirvana::client::nTransaction::push ( nConsumeEvent pEvt)

Pushes the specified nConsumeEvent to this transaction.

No events will be published until this transaction is committed

Parameters
*pEvtthe nConsumeEvent object to be added to this transaction
Exceptions
nSessionNotConnectedExceptionis thrown if the session is not connected
nTransactionAlreadyCommittedExceptionis thrown if the transaction is already committed
nTransactionNoEventsExceptionis thrown if the transaction has no events pushed
nSecurityExceptionis thrown if the user has insufficient privileges
nTransactionAlreadyAbortedExceptionis thrown if the transaction has been aborted.
nSessionPausedExceptionThe session is currently paused
static void com::pcbsys::nirvana::client::nTransaction::setCacheLocalBeforeCommit ( bool  bCacheLocal)
static

Sets cacheLocalBeforeCommit value- if true then events will be cached before commit.

Default value is "false". Can be set in anytime in runtime

Parameters
bCacheLocal-the new value of cacheLocalBeforeCommit