Upgrade of NetOps Portal fails with errors for unknown Tier column
search cancel

Upgrade of NetOps Portal fails with errors for unknown Tier column

book

Article ID: 235321

calendar_today

Updated On:

Products

CA Performance Management - Usage and Administration DX NetOps

Issue/Introduction

Upgraded from 21.2.6 to 21.2.8 and now NetOps responds with a 403 after entering credentials.

Upgrade from 21.2.6 to 21.2.10 returns generic NullPointerException error to the command line.

403 errors after upgrading the NetOps Portal 

Errors in PC and DM logs: Unknown column 'Tier' in 'field list'

Sample error from a PCService.log file:

ERROR | qtp1704107571-4618       | 2022-02-22 14:30:00,818 | com.ca.im.portal.api.services.interfaces.user.RoleService
      | service.role.error.getting.access.rights.for.role 3
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT ar.CategoryID, ar.AccessRightName, IFNULL(i18n.DisplayName, ar.DisplayName) AS DisplayName, IFNULL(i18n.Description, ar.Description) AS Description, rr.Enabled, rr.Tier FROM access_rights ar LEFT JOIN (SELECT dflt.CategoryID, dflt.AccessRightName, IFNULL(locale.DisplayName, dflt.DisplayName) AS DisplayName, IFNULL(locale.Description, dflt.Description) AS Description FROM access_rights_i18n dflt LEFT JOIN access_rights_i18n locale ON dflt.CategoryID=locale.CategoryID AND dflt.AccessRightName=locale.AccessRightName AND locale.CultureID=(IF((SELECT CultureID FROM access_rights_i18n WHERE CultureID='en-US' LIMIT 1) = 'en-US', 'en-US', (SELECT DISTINCT CultureID FROM access_rights_i18n WHERE CultureID LIKE (CONCAT(SUBSTR('en-US',1,2),'%')) LIMIT 1))) WHERE dflt.CultureID='en-US') i18n ON i18n.CategoryID=ar.CategoryID AND i18n.AccessRightName=ar.AccessRightName INNER JOIN role_access_rights rr ON ar.AccessRightName = rr.AccessRightName AND ar.CategoryID=rr.CategoryID WHERE rr.RoleID=? AND ar.CategoryID=? AND rr.Enabled = 'Y' ORDER BY rr.Tier, ar.DisplayName]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'rr.Tier' in 'field list'DMService.logERROR | pool-6-thread-1          | 2022-02-22 14:38:09,630 | com.ca.im.portal.dm.productsync.DataSourcePoller
      | Exception thrown by sync task: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [INSERT INTO menus (MenuID, PageID, ParentID, TenantID, Name, Tier, UserID, UserLevel, RoleBased, ContainerType, MenuType, Cloneable, Package) VALUES (1901235,1901235,3,NULL,'Chassis Power',0,0,7,'N',4,0,'Y', 'com.ca.im.sync.pc')]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'Tier' in 'field list'
java.util.concurrent.ExecutionException: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [INSERT INTO menus (MenuID, PageID, ParentID, TenantID, Name, Tier, UserID, UserLevel, RoleBased, ContainerType, MenuType, Cloneable, Package) VALUES (1901235,1901235,3,NULL,'Chassis Power',0,0,7,'N',4,0,'Y', 'com.ca.im.sync.pc')]; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'Tier' in 'field list'
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:?]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:?]

The run of CAPerfCenterSetup.bin ends with the following error.

Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
Stack Trace:
java.lang.NullPointerException
        at Flexeraaw6.ax(Unknown Source)
        at com.zerog.ia.installer.Installer.install(Unknown Source)
        at com.zerog.ia.installer.LifeCycleManager.consoleInstallMain(Unknown Source)
        at com.zerog.ia.installer.LifeCycleManager.executeApplication(Unknown Source)
        at com.zerog.ia.installer.Main.main(Unknown Source)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at com.zerog.lax.LAX.launch(Unknown Source)
        at com.zerog.lax.LAX.main(Unknown Source)
This Application has Unexpectedly Quit: Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

The dbmigrate.log (full name is dbmigrate.log.<date><time>) shows these errors:

May 12, 2022 9:01:43 AM com.ca.im.installanywhere.util.DbExecutePlugin execute
SEVERE: Error executing command: REPLACE INTO page_layout2 (PageID, InstanceID, ModelID, ParentPageID, ParentInstanceID, Tier) VALUES (1,1,200,NULL,NULL,0)
 Unknown column 'Tier' in 'field list'
java.sql.SQLSyntaxErrorException: Unknown column 'Tier' in 'field list'
 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
 at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
 at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:763)
 at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648)
 at com.ca.im.installanywhere.util.DbExecutePlugin.execute(DbExecutePlugin.java:94)
 at com.ca.im.installanywhere.util.DbMigrate.runScript(DbMigrate.java:746)
 at com.ca.im.installanywhere.util.DbMigrate.loadScripts(DbMigrate.java:590)
 at com.ca.im.installanywhere.util.DbMigrate.run(DbMigrate.java:267)
 at com.ca.im.installanywhere.util.DbMigrate.processManifest(DbMigrate.java:882)
 at com.ca.im.installanywhere.util.DbMigrate.runScript(DbMigrate.java:733)
 at com.ca.im.installanywhere.util.DbMigrate.loadScripts(DbMigrate.java:590)
 at com.ca.im.installanywhere.util.DbMigrate.run(DbMigrate.java:267)
 at com.ca.im.installanywhere.util.DbMigrateApp.runDBMigrate(DbMigrateApp.java:384)
 at com.ca.im.installanywhere.util.DbMigrateApp.runMigrateMode(DbMigrateApp.java:305)
 at com.ca.im.installanywhere.util.DbMigrateApp.run(DbMigrateApp.java:170)
 at com.ca.im.installanywhere.util.DbMigrateApp.main(DbMigrateApp.java:55)

Environment

All supported DX NetOps Performance Management releases

Cause

MySql upgrade did not complete before the upgrade of the NetOps Portal services.

This has been observed in multiple environmental configurations. It's been seen for both remote MySql server installs as well as local MySql server installs.

Resolution

Seeing this problem in an environment with a remote MySql installation?

  • Mysql needs to be upgraded before upgrading the NetOps Portal system
  • To upgrade the MySql server first run the CAPerfCenterSetup.bin on the MySql server.
  • After that is completed successfully run the installer on the NetOps PC Portal system.

Seeing this problem in an environment with a local MySql installation?

  1. Run the following command. Replace MyPasswordHere references with the current complex MySql password. It's one single command.
    • /opt/CA/PerformanceCenter/Tools/bin/npcshell.sh postmysqlupgrade --production --dbhost localhost --dbport 3306 --dbuser 'root' --origDbPass 'MyPasswordHere' --dbpass 'MyPasswordHere' --log /opt/CA/PerformanceCenter/InstallLogs/post_mysql_upgrade.log.`date +%F_%H-%M`
  2. When it completes re-run the full install via the CAPerfCenterSetup.bin command.

Additional Information

In some instances after fixing the problems above the rerun of the installer still returns the NPE error to the command line. In those instances the following installer command is required. The -jvmxmx tells the installer to use more memory to run than it does by default.

  • ./CAPerfCenterSetup.bin -i console -jvmxmx 4096m