Configurable column sizes for report data sync tables
We can customize the column length values of the tables that are created during report data synchronization..
The default value for all the entries is 255.
All the reporting related table schemas are stored in the ‘ENTITY_COLUMN’ table. The data that is stored in this table is used to create tables and columns at the time of data synchronization. As part of this fix, the ‘ENTITY_COLUMN’ table is altered to add one more column, 'COLUMN_LENGTH' to store the length of the column.
The customized column length value can be specified for a particular column by mentioning the entity and attribute name in the $ISIM_HOME\data\adhocreporting.properties file. The column length value is used to create the reporting tables. The column lengths of only the specified columns are changed, while other table columns are created with a default value of 255.
Properties introduced in adhocreporting.properties file
- The property lets us specify the value of the column length to be set while creating reporting tables during data synchronization. These values determine the maximum amount of information that is stored in the database for the attribute and displayed in reports.
- List the entity and its attribute names with required column length values in the following format: entity.column.<entity_name>.<attribute_name>.length=<length_of_column>
For example.
entity.column.systemrole.description.length=50.
- The unit of the value that is specified for the property is in bytes. For Oracle database the unit is as specified for the parameter NLS_LENGTH_SEMANTICS.
- The default value for the column length is 255. All the attribute values that are not specified by using this property has a default column length of 255. Permissible values for this property are in the range of 1 to 4000. The default value is used for invalid values.
- It is suggested not to set the column length value to less than the default value, 255, unless required. Setting a value that is less than the default value only for the attributes that are manually mapped using the schema mapping and not for implicitly mapped attributes.
- The column length of the default attributes that are added in the parent table for each entity such as DN, CONTAINERDN, SUPERVISOR, OWNERDN, SELFDN, TARGETCLASS cannot be configured by using this property. The length can be configured for only those attributes, which can be mapped using the report schema mapping. The ACI and AUDIT-related reporting tables’ column length values cannot be configured.
- The column length value of existing tables for already mapped attributes is not changed during the incremental synchronization. Full data synch must be run to reconfigure the existing tables.
- If we are running incremental data synchronization or data synchronization utility from a separate system, the values for newly added property in the adhocreporting.properties present on this system must sync with the values in adhocreporting.properties file that is present on the system where ISIM server resides.
How this fix works
- Full data synchronization
- The value of the particular entry in the ENTITY_COLUMN table is updated by reading the $ISIM_HOME/data/adhocreporting.properties file during the initial step of full data synchronization process.
- The value of the column length in the ENTITY_COLUMN table is used to create the reporting tables and the data is truncated while inserting the data into these tables.
- Incremental data synchronization
- The column length value in the ENTITY_COLUMN table is used to truncate the data while inserting the data into these tables.
- Incremental synchronization does not alter the schema of the existing tables that are already created for already mapped attributes. If the schema enforcement property is set to false, it neither creates or alters the table for newly mapped attributes nor updates the ENTITY_COLUMN table.
- If the schema enforcement property is set to true, the tables/columns are created/added to the existing reporting tables for newly mapped attributes with column length values that are specified in the property file and ENTITY_COLUMN table is updated with new column length value. The same column length value is used to truncate the data values while loading the data in the tables.
- If we want customized values for existing attributes, which are already mapped, they must run full data synchronization. The subsequent execution of the incremental synchronization truncates the data while populating the table.
Parent topic: Troubleshooting report problems