SDSSecondary Dynamic Object Type

The SDSSecondary dynamic object type has a name attribute value of SDSSecondary and a type attribute value of SDS_Secondary (3). The SDSSecondary dynamic object returned by the sdsGetSecondaryInfo method called on a primary or the sdsGetMyServerInfo method called on a secondary is always populated on the secondary, and it therefore has the same attributes.

The dynamic attributes for this secondary object type for both the block write and journal switch synchronization modes are listed in the following table.

Name Type Description
activeTransactions Integer Number of active transactions
connectionCheckInterval Integer Number of seconds at which the secondary database polls the primary to determine reachability via the communication paths, specified in the ConnectionPollInterval parameter in the [SyncDbService] section of the JADE initialization file
connectionState Integer State of the connection to the primary (see the first of the following tables)
currentReplayJournalNumber Integer Number of the journal currently replaying
currentReplayJournalTimeStamp TimeStamp Timestamp of the journal currently replaying converted to a local value
currentReplayJournalTimeStampUTC TimeStamp Timestamp of the journal currently replaying as a UTC value
interruptedTransactions Integer Number of interrupted transactions
lastErrorCode Integer Number of the last error that occurred
lastReplayJournalNumber Integer Number of the last journal that was replayed
lastReplayJournalTimeStamp TimeStamp Timestamp of the last journal that was replayed converted to a local value
lastReplayJournalTimeStampUTC TimeStamp Timestamp of the last journal that was replayed as a UTC value
latestReadyJournalNumber Integer Number of the latest journal that is ready to be replayed
latestReadyJournalTimeStamp TimeStamp Timestamp of the latest journal that is ready to be replayed converted to a local value
latestReadyJournalTimeStampUTC TimeStamp Timestamp of the latest journal that is ready to be replayed as a UTC value
latestReplayedAuditTimeStamp TimeStamp Timestamp of the last audit record replayed by the database tracker converted to a local value
latestReplayedAuditTimeStampUTC TimeStamp Timestamp of the last audit record replayed by the database tracker as a UTC value
latestStableAuditTimeStamp TimeStamp Timestamp of the last audit record written to disk in block write mode converted to a local value
latestStableAuditTimeStampUTC TimeStamp Timestamp of the last audit record written to disk in block write mode as a UTC value
myHostName String Computer name of the secondary host
myName String Name of the secondary, specified in the MyName parameter in the [SyncDbService] section of the JADE initialization file
nextReplayJournalNumber Integer Number of the next journal to replay
nextReplayJournalTimeStamp TimeStamp Timestamp of the next journal to replay converted to a local value
nextReplayJournalTimeStampUTC TimeStamp Timestamp of the next journal to replay as a UTC value
primaryHostName String Computer name of the primary host
primaryServerName String Name of the primary, specified in the PrimaryServerName parameter in the [SyncDbService] section of the JADE initialization file
readAccessDisabled Boolean Specifies whether read access is disabled (the value of the ReadAccessDisabled parameter in the [SyncDbService] section of the JADE initialization file)
readAccessGranted Boolean Specifies whether read access has been granted
reasonTrackingStopped Integer Reason tracking stopped (see the second of the following tables)
reconnectInterval Integer Frequency (in seconds) at which a secondary database server attempts to reconnect to its primary server when a primary server is not available (the value of the ReconnectInterval parameter in the [SyncDbService] section of the JADE initialization file)
recoveryRequired Boolean Specifies whether recovery is required
reorgStatus Integer Reorganization status (see the third of the following tables)
rpsStorageMode Integer Storage mode represented by one of the RpsStorageMode_Full (0), RpsStorageMode_MappedExtent (1), or RpsStorageMode_WorkingSet (2) JadeDatabaseAdmin class constants
rpsTransitionHaltCode Integer RPS transition halt code (see the fourth of the following tables)
rpsWorkers Integer Number of RPS worker threads
state Integer State of the secondary in relation to the primary (see the fifth of the following tables)
subrole Integer Database role (see the sixth of the following tables)
syncMode Integer Mode of journal synchronization, specified in the SyncMode parameter in the [SyncDbService] section of the JADE initialization file (see the seventh of the following tables)
tracking Boolean Contains true when tracking is active or it contains false if tracking is stopped for any reason
trackingDisabled Boolean Specifies whether database tracking (journal replay) process is disabled (the value of the TrackingDisabled parameter in the [SyncDbService] section of the JADE initialization file)

The values of the connectionState attribute are represented by one of the SDSConnectionState category global constants listed in the following table.

Global Constant Integer Value
SDS_Connected 2
SDS_Connecting 3
SDS_ConnectionFailed 4
SDS_ConnectionStateUndefined 0
SDS_Disconnected 1

The values of the reasonTrackingStopped attribute are represented by one of the SDSStopTrackingCodes category global constants listed in the following table.

Global Constant Integer Value Description
SDS_ReasonAdminAudited 1  
SDS_ReasonAdminDirect 2  
SDS_ReasonAutoUpgradeMismatch 6  
SDS_ReasonDeltaModeEntered 12 Tracking stopped because the database entered delta mode.
SDS_ReasonEnablingDbCrypt 13 Tracking stopped to enable database encryption
SDS_ReasonErrorHalt 8 Tracking halted due to an error condition (the error code is saved in the SDSSecondary or SDSSecondaryProxy dynamic lastErrorCode attribute).
SDS_ReasonRestart 10 Tracking stopped and then restarted when the connection with the primary is lost.
SDS_ReasonRpsAdminHalt 4  
SDS_ReasonRpsReorgHalt 9 Tracking stopped at transition.
SDS_ReasonRpsRestart 11

Conditions that arise in processing on a primary causing JOM callbackID=2 audit records to be audited for replay purposes trigger the shutdown of applications running from affected schemas when it is replayed on a native or RPS secondary. On an RPS secondary, there is an additional requirement to restart the Datapump application to allow the kernel to close user class agents it may have in use as a result of the replication process.

Tracking and the Datapump application are then restarted.

SDS_ReasonRpsSnapshot 3  
SDS_ReasonTakeover 7 Tracking stopped during a takeover operation.
SDS_ReasonTransition 5  

The values of the reorgStatus attribute are represented by one of the SDSReorgState category global constants listed in the following table.

Global Constant Integer Value
SDS_ReorgStateNotReorging 1
SDS_ReorgStateOfflinePhase 5
SDS_ReorgStateReorgingFiles 4
SDS_ReorgStateRestarting 6
SDS_ReorgStateStarting 3
SDS_ReorgStateSeekingApproval 2

The values of the rpsTransitionHaltCode attribute are represented by one of the RPSTransitionHaltCode category global constants listed in the following table.

Global Constant Integer Value Description
RPS_HaltAutoScript 1 An automatic initiate alter script was generated (will be automatically loaded by the Datapump application if configured to automatically restart)
RPS_HaltManualScript 2 A manual alter script was generated (requires administration user intervention to apply changes to RDB before tracking can be resumed)
RPS_HaltMappingDeleted 3 The RPS mapping was deleted on the primary database, rendering the RPS node and associated RDB defunct
RPS_HaltNoScript 0 Changes do not affect RDB, so no script was generated

The values of the state attribute are represented by one of the SDSSecondaryState category global constants listed in the following table.

Global Constant Integer Value
SDS_StateCatchingUp 1
SDS_StateDisconnected 0
SDS_StateReorging 5
SDS_StateSynchronized 2
SDS_StateTrackingHalted 4
SDS_StateTransferHalted 3

The values of the subrole attribute are represented by one of the SDSDatabaseRoles category global constants listed in the following table.

Global Constant Integer Value
SDS_SubroleNative (native JADE Object Manager database) 1
SDS_SubroleRelational (relational database) 2

The values of the syncMode attribute are represented by one of the SDSSecondaryState category global constants listed in the following table.

Global Constant Integer Value
SDS_BlockWrite 2
SDS_JournalSwitch 1

When a secondary server is restarted in an interrupted mode, the recoveryRequired attribute is set but the active and interrupted transaction counts are not valid until the first journal has been replayed. The recoveryRequired attribute is reset when outstanding interrupted transactions complete.

For the block write synchronization mode only, the dynamic attributes for the secondary object update type are listed in the following table.

Name Type Description
latestReplayedAuditTimestamp TimeStamp Timestamp of the latest replayed audit record
latestStableAuditTimestamp TimeStamp Timestamp of the latest stable replayed audit record
maxCommittedTranID Decimal Transaction id of the maximum committed audit record
maxReplayedTranID Decimal Transaction id of the maximum replayed audit record
maxStableTranID Decimal Transaction id of the maximum stable audit record

To obtain the latest committed timestamp for a secondary in block write synchronization mode, compare the latestReplayedAuditTimestamp attribute with the latestStableAuditTimestamp value, by a single call to the JadeDatabaseAdmin class sdsGetSecondaryInfo method from the primary or the JadeDatabaseAdmin class sdsGetMyServerInfo method from a secondary. The difference between these attribute values should be very small and under normal conditions, they will differ only by network latency plus the journal disk write time on the secondary.

All audit timestamps are UTC values, which are converted to local time for dynamic attributes. The timestamps of both the primary and secondary proxy are both derived from the UTC audit timestamp recorded by the primary and converted to local time on the secondary proxy (catering for primary and secondary proxy time zones that differ).