“Problem(Abstract): When db2licm is used to generate a compliance report, it shows Violation against a certain feature. This indicates that the feature is not licensed, but has been used. “
DB2 License compliance report returns a VIOLATION status against a certain feature
When “db2licm” is used to generate a compliance report, it shows “Violation” against a certain feature. This indicates that the feature is not licensed, but has been used.
This can be demonstrated with the help of the following example. The following db2licm command would return the compliance information,
db2licm -g /tmp/report.out ; cat /tmp/report.out
LIC1440I License compliance report generated successfully.
License Compliance Report
DB2 Enterprise Server Edition In compliance
DB2 Database Partitioning: “Not used” DB2 Performance Optimization ESE: “Not used” DB2 Storage Optimization: “Violation” DB2 Advanced Access Control: “Not used” DB2 Geodetic Data Management: “Not used” IBM Homogeneous Replication ESE: “Not used”
So the DB2 Storage Optimization feature is in “VIOLATION”
Diagnosing the problem
The problem can be diagnosed as follows:
The output of “db2licm -l” should be checked to confirm if the use of the feature in “violation” is entitled to be used. If it returns an an output, similar to the following,
db2licm -l Product name: “DB2 Enterprise Server Edition” License type: “CPU Option” Expiry date: “Permanent” Product identifier: “db2ese” Version information: “9.7” Enforcement policy: “Soft Stop” Features: DB2 Performance Optimization ESE: “Not licensed” DB2 Storage Optimization: “Not licensed” DB2 Advanced Access Control: “Not licensed” DB2 Geodetic Data Management: “Not licensed” IBM Homogeneous Replication ESE: “Not licensed”
It would mean that the license for the feature in “Violation” has not been applied.
The following link should be checked, and the queries pertaining to the feature in “Violation” should be executed
Considering the example above, the following queries can be executed to check if “DB2 Storage Optimization” is being used or not,
SELECT TABSCHEMA, TABNAME FROM SYSCAT.TABLES WHERE COMPRESSION IN ('R', 'B') SELECT TABSCHEMA, TABNAME, INDNAME, COMPRESSION FROM SYSCAT.INDEXES WHERE COMPRESSION = 'Y' SELECT TABSCHEMA, TABNAME FROM SYSIBMADM.ADMINTABINFO WHERE DICTIONARY_SIZE <> 0 OR XML_DICTIONARY_SIZE <> 0
Resolving the problem
If the “select” queries mentioned above returns 0 records, then the following command should be tried out to reset the license compliance information,
The license compliance report can be re generated after resetting the compliance information, and if it still shows the same feature in Violation, DB2 Technical Support should be engaged.