Package com.nt.udc.ndk.node
Class OINode
java.lang.Object
com.nt.udc.ndk.node.DCNode
com.nt.udc.ndk.node.OINode
- All Implemented Interfaces:
AdminIfc
,ConfigIfc
,LoggerIfc
,NodeHealthIfc
,NodeStateManagementIfc
,PropertyIfc
,StateManagementIfc
- Direct Known Subclasses:
FFOINode
,GenevaOINode
,JDBCOINode
,OIFtpNode
,RadiusOINode
This class is the base class for all OI nodes. It provides methods to
set the FieldProcessor and Transport components of the node.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Thread
Manages the node's field processor.protected DCFieldProcessor
TheDCFieldProcessor
for this node.protected OITransport
TheOITransport
for this node.protected Thread
Manages the node's transport.Fields inherited from class com.nt.udc.ndk.node.DCNode
backupDir, config, configClass, configDir, configFile, configGUIClass, dcHandls, DEFAULT_PROCESSING_INTERVAL, fileMngr, generalMonitoringTimer, inputMonitoringAlarmRaised, inputMonitoringEnabled, inputMonitoringNARFileMgr, inputMonitoringPollingInterval, inputMonitoringPreviousCount, inputMonitoringSilenceCounter, inputMonitoringSilenceInterval, inputMonitoringSilenceIntervalText, KUBERNETES_POD_NAME, logDir, logger, majorType, minorType, node_pm, nodeid, NODEINIT, NODERECONFIG, nodeStartTime, nodeStateFileName, OCOMC_NODE_ID, OCOMC_POD_NAME, OCOMC_REPLICA_INDEX, OCOMC_STS_NAME, processingInterval, reconfiguring, savingStateOn, scratchDir, shutdown, stateManager, suspenseDir, TRANSACTION_NAR_ID, udcHome
Fields inherited from interface com.nt.udc.ndk.node.LoggerIfc
FC_CONFIGURATION, FC_CONNECTIVITY, FC_INITIALIZATION, FC_INTERNALERROR, FC_INVALIDDATA, FC_NODE_CONTROL, FC_RESOURCES, FC_SECURITY, FC_SERVER_CONTROL, FC_UNDEFINED, SF_CONF_CHANGE_ERROR, SF_CONF_CONFIG_FAIL, SF_CONF_ERR_NODE_CONF, SF_CONF_INV_FTP_CONF, SF_CONF_INV_NODE_CONF, SF_CONF_INV_PARAM, SF_CONF_INV_PARAM_VAL, SF_CONF_INV_REM_DIR, SF_CONF_MISSING_PARM, SF_CONF_MISSING_PARM2, SF_CONF_NM_CONF_ERROR, SF_CONF_NO_CONFIG, SF_CONF_NO_FTP_INT, SF_CONF_NODE_CREATION, SF_CONF_NODE_START, SF_CONF_NPL_CRITICAL, SF_CONF_NPL_ERROR, SF_CONF_READ_ERROR, SF_CONF_READ_PROPS, SF_CONF_SAVE_ERROR, SF_CONF_SOCKET_INIT, SF_CONF_VER_VALIDATION, SF_CONN_DB_CON_ERR, SF_CONN_DB_CON_LOST, SF_CONN_DEGRADED_ERR, SF_CONN_ECE_CON_ERR, SF_CONN_ERR_NODEINFO, SF_CONN_ERR_RCV_DATA, SF_CONN_ERR_SEND_ACK, SF_CONN_ERROR_TACHYON_USAGE, SF_CONN_FAILED_TO_RECEIVE_RESPONSE, SF_CONN_FILE_READ_ERR, SF_CONN_FTP_ERROR, SF_CONN_FTP_ERROR2, SF_CONN_FTP_LOGIN, SF_CONN_INTERFACING_CON_ERR, SF_CONN_INVALID_TACHYON_RECORD, SF_CONN_LDAP_CONNECT, SF_CONN_LOST_NM, SF_CONN_NM_API_ERR, SF_CONN_PDU_NULL, SF_CONN_POLL_ERR, SF_CONN_SNMP_SESS_OPEN_FAIL, SF_CONN_TIMED_OUT, SF_DATA_AGGR_ERROR, SF_DATA_ATTR_CREATE, SF_DATA_ATTR_PARSE, SF_DATA_ATTR_SHIFT, SF_DATA_CANNOT_ENCODE, SF_DATA_CANT_ACK, SF_DATA_CANT_ENCODE, SF_DATA_CONV_STR_TO_N, SF_DATA_CONV_TO_STR, SF_DATA_CONVERT_ATTR, SF_DATA_DATA_EXPIRED, SF_DATA_DATA_MISSING, SF_DATA_DATA_PROC_ERR, SF_DATA_ENCODE_ERR, SF_DATA_ERR_CREATE, SF_DATA_ERR_SEND_ACK, SF_DATA_ERROR_IN_NPL, SF_DATA_ERROR_ON_ACK, SF_DATA_FILE_DATA, SF_DATA_FILE_PROC_ERR, SF_DATA_FORMAT_ERROR, SF_DATA_IE_INVALID, SF_DATA_IE_MISSING, SF_DATA_INPUT_INVALID, SF_DATA_INV_ATT_TYPE, SF_DATA_INV_ATTR_NPL, SF_DATA_INV_RECORD, SF_DATA_INV_TRAF_VOL, SF_DATA_JDBC_DRIVER_ERR, SF_DATA_KEY_CREATE, SF_DATA_MISSING_ATTRS, SF_DATA_MSG_TOO_SMALL, SF_DATA_MSG_TYPE, SF_DATA_NAR_IS_NULL, SF_DATA_NO_DATA_FILE, SF_DATA_NO_OPT_IE, SF_DATA_REC_INCOMP, SF_DATA_RECORD_PROC, SF_DATA_RECORD_SAVE, SF_DATA_SRC_READ_ERR, SF_DATA_UNABLE_COMPLETE, SF_DATA_UNEXP_NAR, SF_DATA_UNEXPECTED, SF_DATA_VAL_NOT_FOUND, SF_DATA_WRONG_DECODER, SF_INIT_DB_CON_ERR, SF_INIT_DIR_CON_ERR, SF_INIT_IO_ERR, SF_INIT_LDM, SF_INIT_LDM_RUN, SF_INIT_NODE_CONFIG, SF_INIT_NODE_CREATION, SF_INIT_NODE_INIT, SF_INIT_NODE_START, SF_INIT_RDM, SF_INIT_RDM_RUN, SF_INIT_REG_ERROR, SF_INIT_RULE_LOAD_ERR, SF_INIT_SOCKET_CREATE, SF_INIT_SOCKET_INIT, SF_INT_ERR_ETRACE, SF_INT_ERR_EXCEPTION, SF_INT_ERR_EXPIRE_ERR, SF_INT_ERR_FIELD_NULL, SF_INT_ERR_PROC_ERR, SF_INT_ERR_SHUTDOWN, SF_NC_ERR_IN_NODE, SF_NC_ERR_MNG_SERVER, SF_NC_ERR_NODE_STATE, SF_NC_ERR_PROC_DATA, SF_NC_ERR_RESTARTING, SF_NC_ERR_STARTING, SF_NC_ERR_STOPPING, SF_NC_ERR_UNHEALTHY, SF_NC_NODE_CONF_ERROR, SF_NC_NODE_SHUTDOWN, SF_RES_CPU_MAJOR, SF_RES_CPU_MINOR, SF_RES_CPU_USAGE_ERR, SF_RES_DISK_CRITICAL, SF_RES_DISK_MINOR, SF_RES_DISK_STATUS, SF_RES_DISK_USAGE, SF_RES_ERR_DATA_READ, SF_RES_ERR_DATA_REM, SF_RES_ERR_DB_CLOSE, SF_RES_ERR_DB_OP, SF_RES_ERR_DEL_ENTRY, SF_RES_ERR_DIR_CLOSE, SF_RES_ERR_DIR_CREATE, SF_RES_ERR_DIR_DELETE, SF_RES_ERR_DIR_OPEN, SF_RES_ERR_DIR_PROC, SF_RES_ERR_DIR_READ, SF_RES_ERR_DIR_WRITE, SF_RES_ERR_ENT_CREATE, SF_RES_ERR_FILE_CLOSE, SF_RES_ERR_FILE_CREAT, SF_RES_ERR_FILE_DEL, SF_RES_ERR_FILE_MOVE, SF_RES_ERR_FILE_NAME, SF_RES_ERR_FILE_OPEN, SF_RES_ERR_FILE_PROC, SF_RES_ERR_FILE_READ, SF_RES_ERR_FILE_REN, SF_RES_ERR_FILE_WRITE, SF_RES_ERR_IN_TRANS, SF_RES_ERR_INST_CLASS, SF_RES_ERR_INST_REC, SF_RES_ERR_IO_ERR, SF_RES_ERR_OPEN_TRANS, SF_RES_ERR_READ_DU, SF_RES_ERR_SOCK_CLOSE, SF_RES_ERR_SOCK_CREAT, SF_RES_ERR_SOCK_OPEN, SF_RES_ERR_SOCK_WRITE, SF_RES_ERR_TABLE_ACC, SF_RES_ERR_TABLE_CLOS, SF_RES_ERR_TABLE_OPEN, SF_RES_ERR_TIMER_SCHED, SF_RES_ERR_USING_Q, SF_RES_IS_NULL, SF_RES_MEM_MAJOR, SF_RES_MEM_WARNING, SF_RES_NO_LICENSE, SF_RES_NODE_STATE_R, SF_RES_NODE_STATE_W, SF_SEC_NO_USER_AUTH, SF_SEC_USER_AUTH_FAIL, SF_SEC_USER_CFG_FAIL, SF_SRV_CNTRL, SF_UND_INTERRUPTED, SF_UND_SHUTDOWN_ERR
Fields inherited from interface com.nt.udc.ndk.node.PropertyIfc
ENVIRONMENT, RUNTIME
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
createDCStreamHandlers
(boolean isMultithreaded, int numThreads, boolean mtOrderChecked, int currThread) Creates DCStreamHandler object that this node is using for inter-node communication.void
createDCStreamHandlers
(boolean isMultithreaded, int numThreads, int currThread) Creates DCStreamHandler object that this node is using for inter-node communication.Returns theDCFieldProcessor
for this node.getFieldProcessor
(int i) Returns theDCFieldProcessor
for this node.Returns the thread in which is the FieldProcessor is running.getFieldProcessorThread
(int i) Returns the thread in which is the FieldProcessor is running.protected FileRetentionThread
This method collects the details required for creating FileRetentionThread and creates FileRetentionThread.Returns the 'Major Type' of this node.Returns the thread in which is the OIFileCycler is running.Returns the thread in which is the OIMultiThreadManager is running.Returns theOITransport
for this node.getTransport
(int i) Returns theOITransport
for this node.Returns the thread in which is the OITransport is running.boolean
This method is used to check the transport's state of health.boolean
This method is used to check the nodes general monitoring thread's health.boolean
Returns whether the node state is used (and whether the node can be recovered.void
Sets theDCFieldProcessor
for this node.void
setFieldProcessor
(DCFieldProcessor fp, int i) Sets theDCFieldProcessor
for this node at given index.void
Sets theDCFieldProcessor
to run within its own thread.void
setFieldProcessorThread
(DCFieldProcessor fp, int i, String name) Sets theDCFieldProcessor
to run within its own thread.void
setOIFileCyclerThread
(OIFileCycler oiFileCycler) Sets theOIFileCycler
to run within its own thread.void
setOIMTManagerThread
(OIMultiThreadManager oiMtMgr, String name) Sets theOIMultiThreadManager
to run within its own thread.void
setTransport
(OITransport oit) Sets theOITransport
for this node.void
setTransport
(OITransport oit, int i) Sets theOITransport
for this node.void
Sets theOITransport
to run within its own thread.Methods inherited from class com.nt.udc.ndk.node.DCNode
addNodeEventListener, backup, clearStatus, clearStatus, clearStatus, createCounters, getAndResetRecordStatistics, getBackupDir, getConfig, getConfigDataClass, getConfigDataGuiClass, getConfigDir, getConfigFile, getDCNodeType, getDCStreamHandler, getDCStreamHandler, getDiscardedStatsProcessor, getDisplayString, getDuplicateStatsProcessor, getHomeDir, getInputStatsProcessor, getItem, getLogDir, getLogger, getMinorType, getNodeClass, getNodeEventListeners, getNodeId, getNodeStateManager, getOutputStatsProcessor, getPerformanceMetrics, getProperty, getPropertyKeys, getPropertyTypes, getRejectTransactionId, getScratchDir, getStateManagementType, getStateManager, getStatus, getStoredStatsProcessor, getStreamHandler, getStreamHandler, getSuspenseDir, initialize, inputMonitoringCallback, inputMonitoringPollInputCounter, isDebugEnabled, isInfoEnabled, isNodeStateImplemented, isReconfigPending, isReconfiguring, isRejectTransaction, isShutdown, isStateUsed, logCritical, logDebug, logError, logInfo, logMajor, logMinor, logTrace, logWarning, logWarning, reconfigure, registerThreadForHealthMonitoring, rejectTransaction, restoreState, saveState, saveState, setConfig, setDCStreamHandler, setDCStreamHandler, setIsReconfiguringFlag, setItem, setProperty, setSNMPTrapGenerator, setStreamHandler, setStreamHandler, shutdown, shutdownDCStreamHandler, shuttingDown, startup, unregisterThreadFromHealthMonitoring, warmRestartImplemented
-
Field Details
-
processor
TheDCFieldProcessor
for this node. -
transport
TheOITransport
for this node. -
fpThread
Manages the node's field processor. -
transThread
Manages the node's transport.
-
-
Constructor Details
-
OINode
public OINode()Default Constructor; instantiates objects necessary to define the DCNodeTypeIfc methods. -
OINode
Constructor for the class. Calls the super class DCNode with the given array of arguments.
Subclasses should instantiate theprocessor
and thetransport
attributes via the appropriate 'set' methods. The DataProvider(s) and DataReceiver(s) must be set, as necessary, for theprocessor
andtransport
.- Parameters:
args
- Arguments to be passed to the DCNode super class.- Throws:
NodeStartException
-
OINode
Constructor for the class. Calls the super class DCNode with the given array of arguments.
Subclasses should instantiate theprocessor
and thetransport
attributes via the appropriate 'set' methods. The DataProvider(s) and DataReceiver(s) must be set, as necessary, for theprocessor
andtransport
.- Parameters:
args
- Arguments to be passed to the DCNode super class.mtCheck
- Parameter to indicate multi-threaded node Note: In case of multi-threaded FFOINode, DCStreamHandler is handled separately.- Throws:
NodeStartException
-
-
Method Details
-
createDCStreamHandlers
public void createDCStreamHandlers(boolean isMultithreaded, int numThreads, int currThread) Creates DCStreamHandler object that this node is using for inter-node communication.- Parameters:
isMultithreaded
- indicates multi threaded nodenumThreads
- number of threads configuredcurrThread
- current thread
-
createDCStreamHandlers
public void createDCStreamHandlers(boolean isMultithreaded, int numThreads, boolean mtOrderChecked, int currThread) Creates DCStreamHandler object that this node is using for inter-node communication.- Parameters:
isMultithreaded
- indicates multi threaded nodenumThreads
- number of threads configuredmtOrderChecked
- indicates order needed or notcurrThread
- current thread
-
createDCStreamHandlers
public void createDCStreamHandlers() -
getMajorType
Returns the 'Major Type' of this node.- Specified by:
getMajorType
in classDCNode
- Returns:
- Returns the major-type identifier of this node.
-
setFieldProcessor
Sets theDCFieldProcessor
for this node.- Parameters:
fp
- TheDCFieldProcessor
to be used within this node.
-
setFieldProcessor
Sets theDCFieldProcessor
for this node at given index.- Parameters:
fp
- TheDCFieldProcessor
to be used within this node.i
- Index to add to list of field processors
-
getFieldProcessor
Returns theDCFieldProcessor
for this node.- Returns:
- Returns the node's
DCFieldProcessor
.
-
getFieldProcessor
Returns theDCFieldProcessor
for this node.- Parameters:
i
- Index to return DCFieldProcessor from fld processors list- Returns:
- Returns the node's
DCFieldProcessor
.
-
setTransport
Sets theOITransport
for this node.- Parameters:
oit
- TheOITransport
to be used within this node.
-
setTransport
Sets theOITransport
for this node.- Parameters:
oit
- TheOITransport
to be used within this node.i
- Index to add transport list
-
getTransport
Returns theOITransport
for this node.- Returns:
- Returns the node's
OITransport
.
-
getTransport
Returns theOITransport
for this node.- Parameters:
i
- Index to return transport- Returns:
- Returns the node's
OITransport
.
-
setFieldProcessorThread
Sets theDCFieldProcessor
to run within its own thread.- Parameters:
fp
- A runnableDCFieldProcessor
object.
-
setOIMTManagerThread
Sets theOIMultiThreadManager
to run within its own thread.- Parameters:
oiMtMgr
- A runnableOIMultiThreadManager
object.
-
setOIFileCyclerThread
Sets theOIFileCycler
to run within its own thread.- Parameters:
oiFileCycler
- A runnableOIMultiThreadManager
object.
-
setFieldProcessorThread
Sets theDCFieldProcessor
to run within its own thread.- Parameters:
fp
- A runnableDCFieldProcessor
object.i
- Index of a runnable DCFieldProcessor object.name
- Name of runnable DCFieldProcessor object.
-
getFieldProcessorThread
Returns the thread in which is the FieldProcessor is running.- Returns:
- Returns
DCFieldProcessor
's thread.
-
getFieldProcessorThread
Returns the thread in which is the FieldProcessor is running.- Parameters:
i
- Index of a runnable DCFieldProcessor object.- Returns:
- Returns
DCFieldProcessor
's thread.
-
getOIMTManagerThread
Returns the thread in which is the OIMultiThreadManager is running.- Returns:
- Returns
OIMultiThreadManager
's thread.
-
getOIFileCyclerThread
Returns the thread in which is the OIFileCycler is running.- Returns:
- Returns
OIFileCycler
's thread.
-
setTransportThread
Sets theOITransport
to run within its own thread.- Parameters:
oit
- A runnableOITransport
object.
-
getTransportThread
Returns the thread in which is the OITransport is running.- Returns:
- Returns
OITransport
's thread.
-
isNodeStateUsed
public boolean isNodeStateUsed()Returns whether the node state is used (and whether the node can be recovered. Currently disabled for all OI Nodes.- Specified by:
isNodeStateUsed
in interfaceNodeStateManagementIfc
- Overrides:
isNodeStateUsed
in classDCNode
- Returns:
- true, if node state is being used
-
isHealthy
public boolean isHealthy()This method is used to check the transport's state of health. The criterion for determining the node's health is based on the transport's health and whether all registered threads are alive. It is to be overridden by subclasses.- Specified by:
isHealthy
in interfaceNodeHealthIfc
- Overrides:
isHealthy
in classDCNode
- Returns:
- true if the transport is healthy, false otherwise
-
isMonitorThreadHealthy
public boolean isMonitorThreadHealthy()This method is used to check the nodes general monitoring thread's health. It is to be overridden by subclasses.- Returns:
- true if the general monitoring thread is healthy, false otherwise
-
getFileRetentionThread
This method collects the details required for creating FileRetentionThread and creates FileRetentionThread. This method will be used by subclasses like FFOINode for creating FileRetentionThread.- Returns:
- FileRetentionThread FileRetentionThread will be created invalid input: '&' returned after successful operation. If configured archivefolder doesn't exists or not creatable, NodeStartException will be thrown.
- Throws:
NodeStartException
-