Skip to main content

DataCheck Setup Procedure

DataCheck Setup Procedure

You can set up DataCheck destination systems with the ^DATACHECK routine and enable DataCheck source systems through the Management Portal. To set up a new DataCheck system, do the following:

  1. Create new destination system.

  2. Set up/edit destination system configurations, as follows:

    1. For non-mirror-based configurations, specify the hostname/IP address, superserver port, and optional TLS configuration for the TCP connection to the source system.

      For mirror-based configurations, specify the mirror member you want to check.

    2. For non-mirror-based configurations, specify the set of databases to be checked and their corresponding paths on the source system.

      For mirror-based configurations, all mirrored databases are included.

    3. Optionally, specify global selection masks and subscript ranges for fine-grained control over which databases, globals, and global ranges to include or exclude. For more information, see Specifying Globals and Subscript Ranges to Check in this chapter.

    4. Optionally, adjust the dynamically tunable settings to control the performance and system resource consumption for the check. For more information, see Performance Considerations in this chapter.

    5. Optionally, modify the workflow specifying the strategy for the check. For more informations, see “DataCheck Workflow” in this chapter.

  3. Enable the %Service_DataCheck service on the source system. For more information, see “Enabling the DataCheck Service” in this chapter.

  4. Start the destination system, which controls the checking.

  5. Monitor the status of the check, as follows:

    • On the source system, view the status and log file.

    • On the destination system, view the status and log file, as well lists of queries and results.

Enabling the DataCheck Service

Use the Management Portal from the InterSystems IRIS instance running on the source system to enable the data checking service and, optionally, restrict connections:

  1. Navigate to the Services page (System Administration > Security > Services) of the Management Portal.

  2. Click %Service_DataCheck in the list of service names to edit the data checking service properties.

  3. Select the Service enabled check box. Before clicking Save, you may want to first restrict which IP addresses can connect to this database source. If so, perform the next step, and then click Save.

    Note:

    When configured to check a mirror, DataCheck uses TLS if the mirror is set to use TLS (for more information, see DataCheck for Mirror Configurations in this chapter). The DataCheck service, however, does not automatically restrict access only to mirror members. If you wish to restrict DataCheck connections from other systems, you must configure the Allowed Incoming Connections for the %Service_DataCheck service.

  4. Optionally, to restrict access to the service, in the Allowed Incoming Connections box (which displays previously entered server addresses), click Add to add an IP Address. Repeat this step until you have entered all permissible addresses.

    You may delete any of these addresses individually by clicking Delete in the appropriate row, or click Delete All to remove all addresses, therefore allowing connections from any address.

Specifying Globals and Subscript Ranges to Check

DataCheck lets you specify global names and subscript ranges to include in or exclude from checking using the options detailed in the following.

Note:

Only literal values are accepted as global names and subscripts when specifying global and subscript ranges.

  • Check All Globals in All [Mapped / Mirrored] Databases — Checks all globals in all mapped databases in non-mirror-based configurations; in mirror-based configurations, checks all globals in all mirrored databases.

  • Include/Exclude Some Globals/Databases — Checks globals in the selected database based on the specified mask(s). Subscripts are not allowed.

    You can add/edit a mask or comma-separated list of masks, as follows:

    • * — Checks all globals (default).

    • * as the last character — Checks all globals starting with the preceding character(s).

    • ' before a mask — Excludes globals from being checked.

    For example:

    • ABC* — all global names starting with ABC

    • A:D — all global names from A to D

    • A:D,Y* — all global names from A to D, and starting with Y

    • *,'C*,'D* — all globals except those starting with C or D

    • '* — exclude all globals

    In addition to defining a global selection mask for specific databases, you can explicitly set a “default global selection mask” that is used for databases for which no global selection mask has been defined. Initially, the default mask to set to *.

    Note:

    For mirror-based DataCheck, newly added mirrored databases are included in the next check. Therefore, if you do not want newly added mirrored databases to be checked automatically, set the default mask to '*.

    For example, to specify a default mask for all databases for which no mask is defined (*,'^DontCheckMe) as well as specify a global selection mask (A:D) specifically for the USER and USER2 databases, do the following from the Edit Configuration submenu of the ^DATACHECK routine (see ^DATACHECK Routine, later in this chapter):

    1) Import Settings from a Shadow
    2) Connection Settings
    3) Database Mappings
    4) Globals to Check
    5) Performance Settings
    6) Manage Workflow
     
    Option? 4
     
    1) Check All Globals in All Mapped Databases
    2) Include/Exclude Some Globals/Databases
    3) Include/Exclude Some Globals/Databases and Subscript Ranges
     
    Option? 1 => 2
    Save changes? Yes =>
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
     
    Option? 2
    Enter a mask string, * to include all, '* to exclude all, ? for help
    Mask: * => *,'^DontCheckMe
    Save changes? Yes =>
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
     
    Option? 3
     
    1) C:\InterSystems\IRIS\mgr\docbook\ [no mask defined, use default]
    2) C:\InterSystems\IRIS\mgr\user\ [no mask defined, use default]
    3) C:\InterSystems\IRIS\mgr\user2\ [no mask defined, use default]
     
    Database (multiple selections allowed): 2,3
    Enter a mask string, * to include all, '* to exclude all, ? for help
                         ! to delete this mask and revert to default
    Mask: A:D
     
    1) C:\InterSystems\IRIS\mgr\docbook\ [no mask defined, use default]
    2) C:\InterSystems\IRIS\mgr\user\ [A:D]
    3) C:\InterSystems\IRIS\mgr\user2\ [A:D]
     
    Database (multiple selections allowed):
    Save changes? Yes =>
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
     
    Option?
    
  • Include/Exclude Some Globals/Databases and Subscript Ranges — In addition to letting you perform the same tasks as the Include/Exclude Some Globals/Databases option, this option lets you identify subscript ranges in specific globals; global subscript ranges marked for inclusion are included whether or not the global is included in the global selection mask. For all subscript ranges within DataCheck, the beginning of a range is inclusive and the end exclusive.

    Note:

    DataCheck may mark data in an excluded range as matched if this is determined in the course of its operation. Discrepancies in excluded ranges, however, are never marked.

    For example, continuing with the preceding example, in which you specified a global selection mask (A:D) for the USER2 database; you can include a subscript range in the ^NAME global by responding to the prompts, as follows:

    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
     
    Option? 1
     
    1) Check All Globals in All Mapped Databases
    2) Include/Exclude Some Globals/Databases
    3) Include/Exclude Some Globals/Databases and Subscript Ranges
     
    Option? 2 => 3
    Save changes? Yes =>
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
    5) Add/Edit Subscript Ranges for a Global
    6) Delete All Subscript Ranges for a Global
    7) Delete All Subscript Ranges
    8) View Defined Subscript Ranges
     
    Option? 5
     
    1) C:\InterSystems\IRIS\mgr\docbook\
    2) C:\InterSystems\IRIS\mgr\user\
    3) C:\InterSystems\IRIS\mgr\user2\
     
    Database: 3 C:\InterSystems\IRIS\mgr\user2\
    Global Name: ^NAME
    There are no subscript ranges defined for this global.
    You may start by including all or excluding all subscripts.
    Answer YES to include, NO to exclude: no
     
    C:\InterSystems\IRIS\mgr\user2\        ^NAME
            ^NAME --Excluded--> [end]
     
    From (inclusive):  ?
     
      Enter a global reference with or without subscripts or null for end.
      The leading ^ may be omitted.  For subscripted references the entire
      global name may be omitted and simply begin with open parentheses
     
    From (inclusive):  (10)
    To (exclusive):  (20)
    Answer YES to include, NO to exclude: yes
     
    C:\InterSystems\IRIS\mgr\user2\        ^NAME
            ^NAME --Excluded--> ^NAME(10)
            ^NAME(10) --Included--> ^NAME(20)
            ^NAME(20) --Excluded--> [end]
     
    From (inclusive):
    Continue editing subscript ranges for this global? Yes => no
     
    C:\InterSystems\IRIS\mgr\user2\        ^NAME
            ^NAME --Excluded--> ^NAME(10)
            ^NAME(10) --Included--> ^NAME(20)
            ^NAME(20) --Excluded--> [end]
     
    Save changes? Yes =>
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
    5) Add/Edit Subscript Ranges for a Global
    6) Delete All Subscript Ranges for a Global
    7) Delete All Subscript Ranges
    8) View Defined Subscript Ranges
     
    Option? 
    

    You can view the mask information as follows:

    Option? 4
    The default include/exclude mask is:
        *,'^DontCheckMe
     
    The following databases are using non-default global selection criteria
     
      C:\InterSystems\IRIS\mgr\user\
        A:D
      C:\InterSystems\IRIS\mgr\user2\
        * Has additional global subscript ranges to include/exclude that apply
          regardless of whether those globals are included in this mask.
        A:D
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
    5) Add/Edit Subscript Ranges for a Global
    6) Delete All Subscript Ranges for a Global
    7) Delete All Subscript Ranges
    8) View Defined Subscript Ranges
     
    Option? 
    

    Since the mask information includes a note about subscript ranges, you can display that information, as follows:

    Option? 8
    Device:
    Right margin: 80 =>
     
    DataCheck Destination System: GLOBTEST
    Global Selection Subscript Ranges
     
    C:\InterSystems\IRIS\mgr\user2\        ^NAME
            ^NAME --Excluded--> ^NAME(10)
            ^NAME(10) --Included--> ^NAME(20)
            ^NAME(20) --Excluded--> [end]
     
    1) Options for selecting globals to check
    2) Set default include/exclude mask for databases with no mask defined
    3) Add or remove include/exclude mask for databases
    4) View include/exclude masks
    5) Add/Edit Subscript Ranges for a Global
    6) Delete All Subscript Ranges for a Global
    7) Delete All Subscript Ranges
    8) View Defined Subscript Ranges
     
    Option?
    
FeedbackOpens in a new tab