Question
Paul D'Amato · Oct 18, 2019

What do these $ZU values control?

In our Iris Messages.log file, we have this line:

CTALERT: ZU Changes: $ZU(69,10) has changed; $ZU(69,68) has changed; $ZU(69,70) has changed

 

I'd like to understand what changed.

 

Thank you,
Paul

0
0 817
Discussion (3)3
Log in or sign up to continue

$ZUTIL(69,10) - Sets system behavior when journal is full.

Calls:

  • $ZU(69,10,n) - set journaling behavior
  • $ZU(69,10) - get journaling behavior

Parameters:

  • n - The boolean value that specifies which system behavior applies when a journal is full. Values:
    • 0 = Journaling suspends and processing continues.
    • 1 = System freezes.

Description
$ZUTIL(69,10) determines Caché behavior when an error occurs in writing to the journal.

  • If this option is set to “true” (1), as soon as the error occurs all global activities that are normally journaled are blocked, which causes other jobs to block. The typical outcome is that Caché goes into a hang state until the journaling problem is resolved, and then resumes running. While Caché is hanging, the administrator can take corrective measures, such as freeing up space on a disk that is full, switching the journal to a new disk, etc. This option has the advantage that once the problem is fixed and Caché resumes running, no journal information has been lost. It has the disadvantage that the system is less available while the problem is being solved.
  • If this option is set to “false” (0), when a journaling error occurs journaling is entirely disabled, while Caché continues running as normal. Caché sends a console message to alert the administrator, who can fix the problem and then run ^JRNSWTCH at the console to restart journaling.

The default is zero (0). The native default for this switch is “false” (0); that is, to suspend journaling and allow Caché processing to continue. Invoking $ZUTIL(69,10) without specifying n returns the current switch setting.

This system-wide default can be configured. Go to the System Management Portal, select [Home] > [Configuration] >[Journal Settings]. View and edit the current setting of Freeze on error. The default is “No”.  Setting $ZUTIL(69,10) changes the system configuration setting shown in the System Management Portal; this changepersists across a Caché shutdown and restart.
 


$ZUTIL(69,68) - Enables or disables the encryption of journal files system-wide.

Calls:

  • $ZU(69,68,n) - set encryption
  • $ZU(69,68) - get encryption

Parameters:

  • n: The boolean value that specifies whether or not Caché should establish encryption for future journal files. Values:
    • 1 = encrypt journal files.
    • 0 = do not encrypt journal files. The default is 0.

Description
The $ZUTIL(69,68) function disables or enables the encryption of journal files system-wide. $ZUTIL(69,68) takes effect when the next journal file is initiated.
Invoking
$ZUTIL(69,68) without specifying n returns the current switch setting

 
$ZUTIL(69,70) - Enables or disables $DOUBLE returning INF and NAN values system-wide.

Calls:

  • $ZU(69,70) - get $DOUBLE behaviour
  • $ZU(69,70,n)- set $DOUBLE behaviour  

Parameters

  • n - A boolean that specifies whether to generate Caché error messages or return INF, –INF, and NAN values for unresolvable IEEE floating point conversions. Values:
    • 0 - $DOUBLE returns INF, –INF, or NAN when given an unresolvable numeric expression.
    • 1 - $DOUBLE generates Caché <MAXNUMBER>, <ILLEGAL VALUE>, and <DIVIDE> errors when given an unresolvable numeric expression. This is the default.

Description
The $ZUTIL(69,70) function sets the $DOUBLE function return value behavior system-wide. If 0, $DOUBLE returns INF (infinity), –INF, and NAN (Not A Number) for unresolvable IEEE floating point conversions. If 1, $DOUBLE generates Caché errors for unresolvable IEEE floating point conversions.
$ZUTIL(69,70) controls the issuing of INF, –INF, and NAN when a $DOUBLE numeric operation cannot be resolved to a numeric value. It does not control the issuing of INF, –INF, and NAN in all cases. $DOUBLE always returns INF, –INF, or NAN when you supply one of these strings as the input value, regardless of the $ZUTIL(69,70) setting.
Mathematical operations on
$DOUBLE numbers that result in an INF, –INF, or NAN are controlled by $ZUTIL(69,70).
These include arithmetic operations, exponentiation, and logarithmic and trigonometric functions.
Invoking
$ZUTIL(69,70) without specifying n returns the current switch setting.

Hello Paul,

I believe that log message comes from your own code and I am not sure how your code determined those calls changed. Note that $zu calls are deprecated, undocumented, and subject to change at any time, so you should replace them with supported APIs.

Obsolete And Deprecated Functionality

I would recommend reaching out to the WRC or your ISC sales rep to discuss further if you have doubts. Perhaps Eduard's post is sufficient for you to replace the functionality.

Edit: upon further inspection of the linked documentation, replacements do seem to be available for the calls you mentioned.

Config.Journal
FreezeOnError


Security.System
DBEncJournal
 

Config.Miscellaneous
IEEEError