dinsdag 3 oktober 2017

You want to upgrade to WCC 12c and suddenly the Upgrade Assistant refuses to work

Sometimes things just go wrong, and at first glance you just can't get your head around it....

So here I am trying to do something very simple AND supported: do an in-place update of WCC 11.1.1.8 to 12.2.1.3.
I made sure to do all the pre-work, correct Java version, you know the drill.

Then I run the Upgrade Assistant. The tool correctly identifies that there are missing schema. Everything seems OK but then the upgrade of the OCS schema fails. Looking at the logs I found an interesting message: "There is no schema version registry entry for component OCS".

Subsequently ua will fail because it can't determine how to do the upgrade because it can't identify the source version of the schema. The nightmare scenario is unfolding. You promised the customer an easy upgrade and it crashes. And of course they are looking over your shoulder when it happens.....

After a short investigation I was able to find what was going on. When WCC 11g was initially installed it was done correctly using RCU to create the schema in the DB. During first install, the schema was created with a name IECM_OCS, where I stands for Integration, so indicating which environment it is. At some point the DBA's decided to rename the schema to have the same names accross all environments which makes it easier for them to maintain the DB management scripts.
And that is where things go wrong. When RCU creates a schema, it will keep track of this is a special table in the DB. And since the rename of the schema was done manually, that table was referring to the old names. Guees what UA will read that table to find the schema and validate this against the information in the domain. Since it can't find the new schema name and owner it crashes.

So what can you do?

  1. Use RCU to delete any objects already created by UA
  2. Use RCU to create the 2 schema that need to be created upfront: xxx_STB and xxx_OPSS
  3. Get DBA access on the DB or get help from the DBA people to edit the following table: SYSTEM.SCHEMA_VERSION_REGISTRY$. Edit the line of the schema that was changed and make sure it is correct.
  4. Rerun UA.
Another tip: when you have separated machines for admin server and managed servers I found that UA works better when you run it on a machine where the domain directory contains an actual managed server of WCC.
EDIT: I found that if you run UA from a machine that does not contain a UCM managed server in the domain directory, UA will always fail. It will tell you that the domain directory is invalid. So do this on one of the machines in the cluster that hold a UCM managed server.