The DATASETS table contains information about each DMSII data set as permitted by the DATABridge host support library filters. The DATASETS table contains state information for each data set visible to the Client, including the current replication phase of the data set. When the data has been successfully extracted, this table includes the location in the audit trail from which the last group of updates for the data set were read, including the audit file number, the audit block sequence number, the segment number, an index that identifies the physical location of the block in the audit file, and a timestamp.
For example, one DMSII data set with a nested OCCURS item can generate multiple tables. If you do not want to clone any of these tables, use the active column in the DATASETS client control table to turn off cloning. For more information on selectively cloning data sets, Tips for More Efficient Cloning.
The following table contains descriptions of each column in the DATASETS client control table. Included is the abbreviated column name that the display command writes to the log file.
|
|
|
|
|
|
Column name
|
Display
|
Description
|
data_source
|
|
This column contains the name of the data source that identifies the DMSII database from which the data was taken. The data source name is defined when you run a define command. It must match the name on the SOURCE statement in the DBServer parameter file on the host.
|
dataset_name
|
ds
|
This column contains the name of the DMSII data set.
|
rectype
|
/type
|
This column, which is zero for all fixed-format data sets, contains the record type of a DMSII variable-format data set as follows:
|
Record Type
|
Description
|
0
|
For a variable-format data set, this represents records that have no variable part.
|
1–254
|
Represents the variable-format record type as defined in the DASDL.
|
set_name
|
set
|
This column contains the name of the DMSII set that DBEngine uses as an index source for tables mapped from the data set. The names "aa_set", "user_set", and "pk_set" are special set names that the DATABridge Client uses when a DMSII set is not available. The name "aa_set" indicates that AA values (or RSNs) will be used as the source for the index. The name "user_set" indicates that the set is user‑defined. The name "pk_set" indicates that the set is defined in GenFormat using the PRIMARY KEY statement.
|
active
|
A
|
During a define or redefine command, this column determines whether or not a data set is mapped. During a process command, the value of this column determines if the data set is to be selected for cloning or updating. The default, 1, indicates that the data set will be mapped (cloned or updated). A value of 0 indicates that the data set will not be mapped (cloned or updated). The define and redefine commands change the value in the active column to 0 if the data set contains global database information, if it is the restart data set, or if it is a remap of another data set.
Note: When you change the DATASETS active column value to 0 to disable cloning, all tables related to the data set are disabled. For example, if a DMSII data set is represented by three relational database tables, none of the three relational database tables will be cloned.
|
strnum
|
ST#
|
This column contains the DMSII data set structure number.
|
audit_filenum
|
AFN
|
This column contains the current DMSII audit file number. DMSII audit files are created and stored on the host; they contain a record of all updates to the DMSII database and are named as follows:
databasename/AUDITnnnn
where databasename is the name of the DMSII database, AUDIT is a literal, and nnnn is the AFN (audit file number) whose value is a number between 1 and 9999. Before you run a process command to clone a DMSII database, the audit file number (and all the other audit file location information) is zero; subsequent process commands fill these records with the ending audit file location.
|
audit_block
|
ABSN
|
This column contains the audit block serial number in the audit file. Because DMSII now uses 32-bit audit block serial numbers, the data type for this column is binary (raw in Oracle). All displays in the log file show this value as a 10-digit unsigned number. If you access this column via a relational database query tool, the hexadecimal value appears instead.
|
audit_seg
|
SEG
|
This column contains the segment number within the audit file.
|
audit_inx
|
INX
|
This column contains the index within the audit file segment.
|
audit_ts
|
Time Stamp
|
This column contains the audit file timestamp represented as a relational database date/time data type.
|
ds_mode
|
M
|
There are a few cases where you may need to change the mode. The ds_mode value provides the following information about the data set:
|
Value
|
Description
|
0
|
The data set is ready to be cloned; any existing table with the same name is dropped and a new table with the same name is created.
|
1
|
The data set is in the fixup phase; data extraction is complete and the table is being updated with changes that occurred during the extraction. The integrity of the data in the tables mapped from the data set is not guaranteed to be correct until the fixup phase is complete.
|
2
|
The data set is ready to be updated. This implies that it has already been cloned and the fixup has been completed. This is the most common mode.
|
11
|
An error occurred during index creation or the tables mapped from this data set do not have an index defined.
|
12
|
The data set is using AA values as keys, and the AA values are no longer valid because the data set has been reorganized.
|
31
|
The data set must be reorganized (DBV_MODE_NEEDREORG) and the redefine command has created scripts to make the relational database table match the DMSII data set. You must run the reorg command in order to run the reorganization scripts created by the redefine command.
|
33
|
The reorg command failed for this data set (DBV_MODE_REORGFAILED). In this case, you must manually update the table by trying to fix the failed script. Then, set ds_mode to 31 and repeat the reorganize command. If that fails, you must reclone it.
|
host_fmtlevel
|
|
This column contains the format level as seen by the host. The value is the update level received from DBEngine in the last STATEINFO record.
|
client_fmtlevel
|
FMT
|
This column contains the format level as seen by the DATABridge Client. The value is determined by the define and redefine commands. Typically, the host and client format levels are the same until a DMSII reorganization is detected.
|
recsz_bytes
|
RSZ
|
This column contains the size of the record in bytes.
|
parent_strnum
|
P#
|
This column contains the parent structure number. This column is used for embedded data set information.
|
num_children
|
#C
|
This column contains the number of child structures for the parent structure. This column is used for embedded data set information.
|
base_strnum
|
B#
|
This column contains the base structure number. If the value in this column is not equal to the value in the strnum column, this data set is a remap of the data set whose structure number is base_strnum.
|
subtype
|
ST
|
This column contains the structure subtype of the DMSII data set:
|
Value
|
Description
|
0
|
Standard data set
|
1
|
Random data set
|
2
|
Ordered data set
|
3
|
Unordered data set
|
4
|
Global data
|
5
|
Direct data set
|
6
|
Compact data set
|
16
|
Restart data set
|
17
|
Virtual data set
|
in_sync
|
|
The in_sync column tracks data sets whose stateinfo is synchronized with the stateinfo stored in the Global_DataSet row for the data source in the DATASETS client control table.
Global_DataSet is a dummy data set that holds the common stateinfo for data sets whose ds_mode is 2. When the DATABridge Client is finished updating, the stateinfo in the Global_DataSet is copied to all data sets that need to be updated with the stateinfo. Values in this column indicate the following:
|
Value
|
Description
|
0
|
The data set stateinfo is current.
|
1
|
The data set stateinfo must be corrected at the end of update processing to reflect the stateinfo as it is stored in the Global_DataSet.
|
item_count
|
ICNT
|
The value in this column indicates the number of items in the DMSII data set and is used by DBEngine to detect filler substitutions and changes in DBGenFormat.
|
audit_time6
|
|
The value in the audit_time6 column is the DMSII timestamp stored as 6 binary characters. The Client uses this value when it sends state information (stateinfo) to DBEngine at the beginning of a process or clone command. The Client does not use the value in the audit_ts column as it is not accurate enough to use in communications with the DBEngine. Instead, the original DMSII timestamp is used. It is much more accurate and has a much smaller granularity than relational database date/time values.
Caution: When you enter values for the stateinfo, you must set the audit_time6 column to 0 because the DBEngine uses this value to detect DMSII rollbacks. If the value of the timestamp is 0, DBEngine bypasses this test.
For SQL Server, set audit_time6=0. For Oracle, set audit_time6='000000000000'. For DB2, set audit_time6=x'000000000000'.
|
host_info
|
|
The information in the host_info column is provided by the DBEngine during data extraction. It enables the DATABridge Client to recover fixups if the command is aborted. This information is stored as 6 binary characters.
|
ds_options
|
OP
|
The following bits, which can be set through customization user scripts, which control how data sets are mapped:
|
Bit
|
Description
|
1
|
DSOPT_Use_bi_ai - This bit is set by the define command for data sets that have OCCURS clauses (that were not flattened) when the configuration file parameter optimize_stateinfo was set to True. This bit causes the program to request that the DBEngine send all updates for the data set as BI/AI pairs. You can set this bit to 0 via user scripts if you want to disable optimization of updates for this data set.
|
2
|
DSOPT_No_Loader - This bit causes the DATABridge client not to use the bulkloader during the data extraction phase of this data set. It is effectively a localized form of the /s option, which applies to all data sets. The DB2 client automatically sets this bit for data sets that contain tables with columns with binary data.
|
4
|
Reserved
|
8
|
DSOPT_Save_Updates - This bit causes the DATABridge Client to generate history tables for all tables that are mapped from the data set.
To determine whether the history tables are populated with clone data only or clone and update data, see history_tables.
|
16
|
DSOPT_Include_AA - This bit is deprecated and should not be used to force the client to use AA values (RSNs) as the source for the index. Use the bit DSOPT_Use_AA_Only instead.
|
32
|
DSOPT_Ignore_Dups - When set, this bit has exactly the same effect as the configuration parameter suppress_dup_warnings, except that it only applies to the individual data sets for which it is set.
|
64
|
DSOPT_Select_Only - This bit inhibits the creation of tables and stored procedures for the data set. It is used for data sets that provide input to virtual data sets and are not otherwise mapped to any tables.
|
128
|
DSOPT_Keep_Null_Alpha_Keys - This bit indicates that the program should treat NULL alpha keys as blanks instead of discarding such records.
|
256
|
DSOPT_Supp_New_Columns - This bit, which is initially set to reflect the value of the suppress_new_columns parameter for the corresponding data set, can be modified via user scripts or the Client Configurator. The redefine command uses this bit when determining how to handle new columns.
|
512
|
DSOPT_MultiInput - When the automate_virtuals and miser_databse parameters are enabled, this bit indicates that data for the virtual data set comes from more than one real data set.
When this bit is set, the Client tests the res_flag column (identified by a dms_subtype value of 255) before executing the stored procedure i_tablename. If the flag is set, the insert is done normally; otherwise, the stored procedure r_tablename is called to update the res_flag. If the update fails, an insert is performed instead.
|
1024
|
DSOPT_MultiSource - This bit indicates that the tables generated from the data set get their input from more than one data source and ensures that the DATABridge Client doesn't drop the tables. The DATABridge Client uses the cleanup scripts, which it generates for such tables, to remove the records that belong to the data source. The most common use of this option is to add DMSII data to a set of tables whose data comes from some other source.
|
2048
|
DSOPT_MergedTables - This bit allows the DATABridge Client to replicate multiple DMSII databases, which have the same layout, into a single relational database. Each data source is given a unique ID and a unique prefix (in the data_source_id column of the corresponding DATASOURCES table entries) that the program uses when it constructs the merged tables (though the stored procedures for each data source are separate). This prefix serves as an alias to the actual table.
These tables cannot be dropped during a DMSII reorganization. They must be altered in such a way that they can continue to be reused.
Note: This bit must be used with the DSOPT_MultiSource bit.
|
4096
|
DSOPT_CheckKeyChanges - This bit represents the value of the KEYCHANGEOK attribute of the DMSII SET used as an index for the tables. It is a copy of the DSFLG_KeyChg_Allowed bit in the misc_flags column of the DATASETS table. In version 6.2 and later, this bit is used to determine whether the Client needs to register the keys that are being used as the index with the DATABridge Engine. This causes the DATABridge Engine to compare the values in the before and after images to determine if any of the keys have changed. If they haven't changed, the DATABridge Engine sends the update to the client as a MODIFY record. If they have changed, it sends the update to the client as a BI/AI pair, which enables the client to delete the old record and insert the new one when a key change occurs.
|
8192
|
DSOPT_HistoryOnly - Causes the define and redefine commands to generate only history tables for the data set in question. This makes it possible to generate history tables for data sets that cannot be tracked because they lack a unique index. This bit implements the parameter history_tables=2 for individual data sets. See history_tables.
Note: If you set this bit, you must also set bit 8 (DSOPT_Save_Updates).
|
16,384
|
DSOPT_Use_AA_Only - This bit causes the define and redefine commands to use AA values or RSN as the index, even if the data set has a SET that qualifies for use as an index. This bit overrides the DSOPT_Include_AA bit, which has been deprecated.
|
32,768
|
DSOPT_Clrdup_Recs - This bit determines whether the Client runs the script script.clrduprecs.dataset_name when the creation of an index fails at the end of the data extraction phase. You can customize this bit.
|
65,536
|
DSOPT_Split_Vrfmt_ds - This bit causes the define and redefine commands to split variable format data set records (of types other than 0) into two parts. The fixed part is placed in the base table, which normally holds type 0 records. The variable part is placed in the secondary table name <ds_name>_type<nn> after the keys, which must also be included.
|
131,072
|
DSOPT_ExtCols_Set – This bit indicates that the external_columns column has been customized by the Client Configurator or by a user script. You must set this bit whenever you change the value of external_columns for a data set. Otherwise, the Client Configurator won't retain your change.
|
|
|
262,144
|
DSOPT_SetNameChange – This bit indicates that the set_name was changed to “user_set”. The Client sets this bit when the user defines a composite key using the Client Configurator. Its only purpose is to ensure that this change will be remembered.
|
|
524,288
|
DSOPT_Optimize_4_CDC – The initial value of this bit comes from the parameter optimize_col_updates. It optimizes updates so that no changes are made to columns whose values are unchanged. In place of stored procedures, pure SQL is used without the use of host variables. This significantly slows the client’s update speed, but the amount of replicated data sent to the remote database (SQL Server and Oracle only) is significantly less, which speeds up the overall process.
|
changes
|
These bits are used by the redefine command.
|
Bit
|
Description
|
1
|
CHG_new - New entry
|
2
|
CHG_modified - Modified entry
|
4
|
CHG_del_before - One or more entries before this one were removed.
|
8
|
CHG_del_after - One or more entries after this one were removed.
|
16
|
CHG_format_level - The data set’s format level changed (that is, a DMSII structural reorganization that affects this data set has occurred).
|
32
|
CHG_item_count - The data set’s item count has changed (that is, a filler substitution reorganization has occurred).
|
64
|
CHG_user_change - There were user changes to the DMS_ITEMS or the DATAITEMS tables (that is, the layout has changed as a result of actions by the user rather than a DMSII reorganization.
|
128
|
CHG_links_change - DMSII links changed for the data set.
|
256
|
CHG_AA_values_changed - This bit indicates that the data sets AA values are no longer valid. The bit is set by the redefine command but is otherwise not use by the Client.
|
1024
|
CHG_deleted - The item was deleted.
|
status_bits
|
SB
|
The following bits are used by this column:
|
Bit
|
Description
|
1
|
DS_Needs_Mapping - This bit indicates that the data set has not been mapped. All data sets that have their corresponding active column set to 0 in the data set selection script script.user_datasets.datasource also have this bit set. If you decide to clone such a data set, you must set the active column to 1 and run the redefine command to perform the mapping.
|
2
|
DS_Needs_Generating - This bit indicates to the generate command that the scripts for the data set need to be generated. Note that the generate command only generates scripts for data sets that have this bit set. The define and redefine commands automatically set this bit.
|
4
|
DS_Needs_Remapping - This bit forces the redefine command to refresh the mapping. After you make changes to the data table user_define customization scripts, you may want to set this bit before you execute a redefine command.
|
8
|
DS_Needs_Redefining - This bit is automatically set by the process and clone commands when DBEngine detects a structural reorganization or a filler substitution for the data set. You can set this bit to force the redefine command to refresh the DMSII layout.
|
16
|
reserved
|
32
|
reserved
|
64
|
This bit indicates that the AA values are invalid. Do not modify this value.
|
128
|
This bit indicates that the index creation failed. Do not modify this value.
|
256
|
This bit indicates that the data set is in fixup mode. Do not modify this value.
|
misc_flags
|
MISC
|
This column contains an integer that holds a series of flags set by DATABridge to reflect some characteristics of the individual data sets.
Note: Do not change the value of these bits.
|
Bit
|
Description
|
1
|
DSFLG_Valid_Parent_AA - This flag, set by the DATABridge Client, indicates that the parent structure of an embedded data set has a valid AA value.
|
2
|
DSFLG_VarFmt_DataSet - This flag, which is set by the DATABridge Client, indicates that this data set is a variable format data set.
|
4–8
|
Reserved
|
16
|
DSFLG_Links - This flag, set by the DBEngine in response to a DB_DataSets remote procedure call (RPC), indicates that the data set has DMSII links to other data sets.
|
32
|
DSFLG_Altered - This flag, set by the DBEngine in response to a DB_DataSets RPC, indicates that the data set was altered by the support library.
|
64
|
DSFLG_Static_AA - This flag, set by the DBEngine in response to a DB_DataSets RPC, indicates that the DBEngine is using RSNs (record serial numbers) in place of AA values. RSNs are only available in a DMSII XE system where each record in a data set is assigned a unique serial number. Using the RSN in place of AA values eliminates the need to reclone tables after a DMSII garbage collection reorganization.
|
128
|
DSFLG_Valid_AA - This flag, set by the DBEngine in response to a DB_DataSets RPC, indicates that the data set has valid AA values. Not all data sets have valid AA values. For details, see Composite Keys.
Note: This bit does not apply to RSNs, which are always valid; it applies to the AA values.
|
256
|
DSFLG_Has_Occurs - This flag indicates that the data set contains items with unflattened OCCURS clauses. The program uses this bit in conjunction with the optimize_updates parameter to determine whether the DSOPT_Use_bi_ai bit in the ds_options column should be set. The DSOPT_Use_bi_ai bit can be reset by the user to prevent the use of before/after images for data sets where this action offers no significant performance improvements (for example, an OCCURS 2 TIMES clause is probably not worth optimizing).
|
512
|
DSFLG_Uses_AA_values - This flag indicates that the data set uses AA values as keys. The program uses this flag to avoid having to look at the table columns to determine whether AA values are used.
Note: This bit is not set when the DATABridge Client uses RSNs instead of AA values.
|
1024
|
DSFLG_Has_Links - This flag indicates that the data set has active DMSII links. This bit can be zero if all the links have their active columns set to 0 in DMS_ITEMS.
|
2048
|
DSFLG_Is_LinkedTo - This flag indicates that one or more data sets have active DMSII links that use AA values as foreign keys to point to this data set. The program uses this information to force the AA values to be used as the keys for the tables derived from this data set.
|
4096
|
DSFLG_Occ_Depends - This flag indicates that the data set contains items with unflattened OCCURS DEPENDING ON clauses. The program uses this bit to request that the DBEngine send updates to this data set as before/after images, regardless of the value of DSOPT_Use_bi_ai bit in ds_options for this data set.
|
8192
|
DSFLG_Uses_Parent_AA - This flag indicates that the data set uses Parent_AA values as foreign keys. The program uses this to avoid having to look at the table columns to determine if the Parent_AA values are used.
|
16384
|
DSFLG_Data_Extracted - This flag indicates that the data set was successfully cloned. The program uses this flag to determine if a table is being recloned.
Note: This information is vital when preserving deleted records.
|
32,768
|
DSFLG_Key_Chg_Allowed - This flag represents the value of the KEYCHANGEOK attribute of the DMSII SET used as an index for the tables. This value is copied to the DSOPT_CheckKeyChanges bit (in the ds_options column of this table) when the check_key_changes configuration file parameter is set to True. You can modify the DSOPT_CheckKeyChanges bit via user scripts.
|
65,536
|
DSFLG_Data_Dirty - This flag is only meaningful for virtual data sets that get data from more than one DMSII data set. It indicates that phase two of the data extraction process is under way. This flag indicates that the appropriate cleanup script must be invoked when the table is recloned (such tables can be partially recloned).
Note: This information is vital to being able to partially reclone such tables.
|
max_records
|
MAXRECS
|
This column contains an integer that holds the maximum row count of the data set as estimated by the DBEngine. This is the exact number that appears in DBLister reports. The DBEngine computes this estimate by dividing the file size by the record size. This value is very inaccurate in the case of variable-format data sets because it is impossible to determine how many records of a given type exist in the data set without doing a full scan of the data set.
|
virtual_ds_num
|
VDS
|
This column contains an integer value that holds the structure number of the virtual data set to which the DMSII data set is linked. This column is used by the parent data set to point to the associated virtual data set. When more than one virtual data set is derived from a real data set, these data sets are chained together using this column.
|
real_ds_num
|
RDS/type
Note: This display name is combined with the real_ds_rectype value.
|
This column contains an integer that holds the structure number of the primary real data set from which the virtual data set is derived. When more than one virtual data set is derived from a real data set, these data sets all point back to the real data set through their real_ds_num column. These real data sets are chained together, starting with the primary data set, by using the otherwise unused real_ds_num columns of the actual data sets.
|
real_ds_rectype
|
|
The integer in this column represents the record type of the variable-format data set. This information serves to further identify a variable-format data set when it is cloned as a virtual. In addition, the variable-format data set is linked to the virtual data set through the virtual_ds_num and real_ds_num columns.
|
external_columns
|
EXTC
|
This column contains an integer value that determines which predefined non-DMSII columns are automatically added to this data set. For a description of these bits, see Numeric Date and Time in Non-Contiguous Columns.
|
ds_user_bmask
|
|
This column, which shadows the ds_options column, contains a bit mask that represents the columns in ds_options that were customized. This column is used by the redefine command to restore the portion of ds_options that has been customized while leaving the remaining bits intact.
|
links_sz_bytes
|
|
This column contains the size of the link data, in bytes. Link data is no longer stored in the actual record, instead the record is extended by the size of the link data where the link data is placed during data extraction. These areas are not necessarily contiguous in the DMSII record; the DMSII offsets have been adjusted to make them to look contiguous in the Client.
|
links_offset
|
|
This column is used by the Client to determine where the link area for the record starts.
|
vp_link_offset
|
|
Variable format data sets have links in both the fixed part and the variable part, causing the Client to receive two LINK_AI records. This offset value indicates where the second part of the links area starts. By comparing the offset received from the Engine, the Client can tell where the link data should be stored.
|