Exception handling
- Last UpdatedApr 24, 2025
- 2 minute read
If the user code is directly using the High Performance database (HPDB), it may encounter several exceptions. The following sections list several categories of exceptions and how to handle them.
Note: In the event that an exception is thrown, the Application Calculation Engine (ACE) detects this and disables the routine; however, the ACE is not restarted.
Exceptions that do not disable the ACE Configuration (aceconfig), but log a Warning level message
These errors are logged but do not cause alarms and do not disable the aceconfig as they may occur as part of normal system operations: They will likely be cleared upon a future aceconfig execution.
Frequent messages that are logged at a Warning level in the ACEEngine.log file:
OASySDNA.RealTime.HighPerformanceDB.VDBException.NOT_MANUAL
OASySDNA.RealTime.HighPerformanceDB.VDBException.OFFSCAN
Exceptions that do not disable aceconfig, but log an error message
These errors are logged but do not cause alarms and do not disable the aceconfig as they may occur as part of normal system operations: They will likely be cleared upon a future aceconfig execution.
Infrequent messages that are logged at a DebugLog level in the oasErrLog:
OASySDNA.RealTime.HighPerformanceDB.VDBException.DB_LOCKED
OASySDNA.RealTime.HighPerformanceDB.VDBException.OWNING_SYS_NOT_AVAIL
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_PRGM_COM_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_MMI_COM_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_TAG_CLS_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_TAG_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_TAG_MULTI_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.PNT_TAG_OPN_INH
OASySDNA.RealTime.HighPerformanceDB.VDBException.REC_LOCKED
OASySDNA.RealTime.HighPerformanceDB.VDBException.REMOTE_SEND_FAIL
OASySDNA.RealTime.HighPerformanceDB.VDBException.RTU_LOCAL
OASySDNA.RealTime.HighPerformanceDB.VDBException.TAG_WARNING
OASySDNA.RealTime.ACE.ACEPubSubNoDataException
Exceptions that will disable the aceconfig record
All exceptions not covered in the previous two sections will disable the aceconfig record and cause an alarm to be raised.
Exception workaround
The ACE will assume that several types of the above exceptions are errors associated with updating the output point, and it will not disable the aceconfig record when these errors are found. This may be misleading if the code is directly manipulating database records as through fldput.
In this case, an exception can be thrown and the output point will not be updated, but the aceconfig record will not be alarmed or disabled. In general, when doing these types of operations, a try-catch block is needed so that errors can be handled appropriately in the user code. If the error should disable the aceconfig record, a generic exception object can be used in a throw statement.