CODBL0004W in IBM License Metric Tool

After installing the IBM License Metric Tool, you might see:
CODBL0004W
Essential periodic calculations did not occur when expected. The last day processed is Apr 25, 2011 while it should be Apr 29, 2011.

By default the tool processes the data collected 2 days prior, so you’ll see the specified dates are a few days old. IBM wants you to collect a bunch of data, and open a ticket, but you may be able to correct this yourself. In CODIF8140E Essential periodic calculations did not occur when expected IBM tells you that it’s probable that the TLMSRV user doesn’t have the correct privileges to the database, and to turn on debugging and send the logs to IBM. At the bottom of the page, it tells you what is actually needed:
Direct CREATETAB authority = YES 
Direct BINDADD authority = YES 
Direct CONNECT authority = YES

You can save yourself a lot of time and check it yourself. 'su' to your db2 user (probably db2inst1), run db2, and connect to the database as the tlmsrv user:
db2 => connect to TLMA user TLMSRV using XXXXXXX

   Database Connection Information

 Database server        = DB2/AIX64 9.7.0
 SQL authorization ID   = TLMSRV
 Local database alias   = TLMA
Then run 'get authorizations':
db2 => get authorizations

 Administrative Authorizations for Current User

 ...
 Direct CREATETAB authority                 = NO
 Direct BINDADD authority                   = YES
 Direct CONNECT authority                   = YES
...
 Indirect CREATETAB authority               = YES
 Indirect BINDADD authority                 = YES
 Indirect CONNECT authority                 = YES
...

If any of those direct and indirect privilleges say no, you can grant the privilege to the user. If the privileges are OK, you can skip this step. First, re-connect to the database to get the necessary privileges:
db2 => connect to TLMA

   Database Connection Information

 Database server        = DB2/AIX64 9.7.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TLMA

Then grant the appropriate privilege:

db2 => grant CREATETAB on database to TLMSRV
DB20000I  The SQL command completed successfully.
db2 => grant BINDADD on database to TLMSRV
DB20000I  The SQL command completed successfully.
db2 => grant CONNECT on database to TLMSRV
DB20000I  The SQL command completed successfully.

My Privileges are OK, what do I do now?


In IZ98530: NO INFO: CPU CORE ON PARTITION/LOGICAL CPU CORE ON PARTITION there is a note that this can also be caused by known issues in populating the database during installation. This SHOULD be fixed in version 7.2.2, but you can do some simple steps to correct the issue.

First, login to the database as above and reset the Tier Table Version field:

db2 => connect to TLMA

   Database Connection Information

 Database server        = DB2/AIX64 9.7.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TLMA

db2 => update adm.CONTROL set value = '2010-10-01' where name = 'TIER_TABLE_VERSION'
DB20000I  The SQL command completed successfully.

Now go to the ILMT web page and import a new Tiers XML file. Navigate to License Metric Tool -> Administration -> Import Systems Tier Table -> Import. I manually click on the link provided there and download the file, then import that file via the provided form. If you have Internet access setup, you can have the tool download it for you also.

Now stop the ILMT server, and go back to DB2. We need to clear out a table, the command in the website isn't quite right. Here's what I used:

db2 => connect to tlma

   Database Connection Information

 Database server        = DB2/AIX64 9.7.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TLMA

db2 => select * from adm.PRD_AGGR_TIME
...
  3 record(s) selected.

db2 => delete from adm.PRD_AGGR_TIME
DB20000I  The SQL command completed successfully.
db2 => select * from adm.PRD_AGGR_TIME
...
  0 record(s) selected.

While we're in there, we need to reset the LAST_AGGREGATE_STEP field:

db2 => update adm.CONTROL set value = '0' where name = 'LAST_AGGREGATE_STEP'
DB20000I  The SQL command completed successfully.

Now restart the ILMT processes, wait 24 hours, and see if the problem goes away. If not, you're back to turning debugging up and calling IBM. But hopefully it won't come to that.