Valued Contributor.. bbispo Valued Contributor..
Valued Contributor..
1907 views

BSM 9.26 Upgrade to APM 9.30 issue

Hello,

I am doing the upgrade from BSM 9.26 to APM 9.30. I had a 2-server architecture (GW and DPS) running on linux using an Oracle RAC database.

I uninstalled BSM 9.26 from both servers and installed APM 9.30 on both servers. Now when i run the BSM Upgrade Wizard on the DPS server i get the following error when connecting to RTSM schema:

2016-08-10 10:14:56,163 [pool-1-thread-1] (Step.java:82) ERROR - Task execution failed
com.mercury.infra.flowmngr.exceptions.JavaTaskInstantiationException: Failed to instantiate java task com.mercury.topaz.upgrade.tasks.ConnectCmdbDbTask
at com.mercury.infra.flowmngr.model.JavaTask.execute(JavaTask.java:89)
at com.mercury.infra.flowmngr.model.Step.executeStep(Step.java:79)
at com.mercury.infra.flowmngr.FlowManager.run(FlowManager.java:206)
at com.mercury.infra.wizard.WizardController$FlowManagerRunner.doInBackground(WizardController.java:87)
at com.hp.acm.swing.executor.SwingJob$SwingJobWorker.doInBackground(SwingJob.java:319)
at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at javax.swing.SwingWorker.run(SwingWorker.java:334)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at com.mercury.topaz.cmdb.server.manage.dal.ConnectionPoolFactory.schemaExists(ConnectionPoolFactory.java:84)
at com.hp.ucmdb.management.impl.DatabaseManagementImpl.schemaExists(DatabaseManagementImpl.java:185)
at com.hp.ucmdb.management.impl.DatabaseManagementImpl.connectCmdb8Database(DatabaseManagementImpl.java:172)
at com.hp.ucmdb.management.impl.DatabaseManagementImpl.connectCmdb9Database(DatabaseManagementImpl.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.hp.ucmdb.management.impl.CmdbManagementImpl$ContextClassLoaderInvocationHandler.invoke(CmdbManagementImpl.java:82)
at com.sun.proxy.$Proxy22.connectCmdb9Database(Unknown Source)
at com.mercury.topaz.upgrade.tasks.ConnectCmdbDbTask.execute(ConnectCmdbDbTask.java:41)
at com.mercury.infra.flowmngr.model.JavaTask.execute(JavaTask.java:79)
... 10 more
2016-08-10 10:14:56,165 [pool-1-thread-1] (NavigationRules.java:50) DEBUG - inputArg key : null, inputArg value is: null
2016-08-10 10:14:56,165 [pool-1-thread-1] (NavigationRules.java:57) INFO - navigationValue = failure
2016-08-10 10:14:56,165 [pool-1-thread-1] (Step.java:106) INFO - *** Step connect_oracle_cmdb_db was executed. Execution result : failure. Next step is: oracle_connect_credentials
2016-08-10 10:14:56,165 [pool-1-thread-1] (FlowManager.java:229) INFO - last_wait_step: oracle_connect_credentials
2016-08-10 10:14:56,199 [AWT-EventQueue-0] (UpgradeDbConnectCredentialsDescriptorHelper.java:34) DEBUG - handleError: [com.mercury.infra.flowmngr.exceptions.JavaTaskInstantiationException: Failed to instantiate java task com.mercury.topaz.upgrade.tasks.ConnectCmdbDbTask]
2016-08-10 10:14:56,200 [AWT-EventQueue-0] (UpgradeDbConnectCredentialsDescriptorHelper.java:39) DEBUG - handleError: error = [Failed to instantiate java task com.mercury.topaz.upgrade.tasks.ConnectCmdbDbTask]
2016-08-10 10:14:56,200 [AWT-EventQueue-0] (UpgradeDbConnectCredentialsDescriptorHelper.java:51) DEBUG - handleError: going to be handled by base class.

Can anyone help?

Thank you

Tags (2)
0 Likes
7 Replies
Micro Focus Expert
Micro Focus Expert

Re: BSM 9.26 Upgrade to APM 9.30 issue

Hi bbispo,

assuming that you properly followed the step described in
APM Upgrade Guide - BSM 9.25 or 9.26 to APM 9.30

Chapter 2: Prerequisites
10. Copy customized Java database connectivity properties (jdbc) - Oracle RAC (optional)

and also executing the correct upgrade wizard,
/opt/HP/BSM/bin/upgrade_wizard_run_from926.sh
(as there is one for the upgrade from 9.25 as well)

I would guess that there is an issue with the RTSM properties:
Caused by: java.lang.NullPointerException
at com.mercury.topaz.cmdb.server.manage.dal.ConnectionPoolFactory.schemaExists(ConnectionPoolFactory.java:84)
at com.hp.ucmdb.management.impl.DatabaseManagementImpl.schemaExists(DatabaseManagementImpl.java:185)

The connection information for the RTSM database is stored in the file <HPBSM>\odb\conf\cmdb.conf
which on my system looks like this:

#Created on: Fri Aug 05 16:19:42 CEST 2016
#Fri Aug 05 16:19:42 CEST 2016
dal.datamodel.db.name=VM013_RTSM
dal.datamodel.db.type=SQLServer
dal.datamodel.host.name=whateverhostname
dal.datamodel.password=wUstVEolq3ff6CDC/rwPXg\=\=
dal.datamodel.port=1433
dal.datamodel.sid=
dal.datamodel.user.name=sa

It's for MS SQL, but that shouldn't matter. 
Simply check if for example one line is missing or one entry has no value or a crap entry, for example
dal.datamodel.port=
or
dal.datamodel.port=bladibla

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
0 Likes
Valued Contributor.. bbispo Valued Contributor..
Valued Contributor..

Re: BSM 9.26 Upgrade to APM 9.30 issue

Hi Siggi,

Thank you very much for you quick reply. Yes i have followed the APM upgrade guide and did all those steps you mentioned.

1) Uninstall BSM 9.26 GW and DPS 

2) Install BSM 9.30 GW and DPS

3) Copy customized jdbc.drivers.properties and bsm-tnsnames.ora to /opt/HP/BSM/conf and jdbc.properties to /opt/HP/BSM/odb/conf

4) Launched upgrade_wizard_run_from926.sh from DPS

When i launch upgrade_wizard_run_from926.sh i can successfully connect to MANAGEMENT and PROFILE schemas. Then when i try to connect to RTSM schema i get that error.

I have enabled debug and i can see that it can connect to RTSM schema:

2016-08-10 12:12:40,638 [pool-1-thread-1] (BasicSchemaValidatorTask.java:42) INFO - Check that the following tables exists [CM_CONFIGURATION] in database dbType=(ORACLE Server); hostName=dbrac632.corporativo.pt; dbName=POCHP_RTSM; userName=POCHP_RTSM; server=dbrac632.corporativo.pt; sid=hpbsm_prd; port=1521
2016-08-10 12:12:40,639 [pool-1-thread-1] (BasicSchemaValidatorTask.java:63) DEBUG - Execute query select count(*) from CM_CONFIGURATION
2016-08-10 12:12:40,639 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:288) INFO - Attempting to read JDBC Driver conf file: /opt/HP/BSM/conf/jdbc.drivers.properties
2016-08-10 12:12:40,640 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:200) DEBUG - Loaded driver configuration properties: {ddmssql.allowPortWithNamedInstance=true , 200=ddmssql, ddmssql.User=${user}, jtds.prepareSQL=3, ddoracle.url=jdbc:mercury:oracle:TNSNamesFile=/opt/HP/BSM/conf/bsm-tnsnames.ora;TNSServerName=HPBSM_PRD, ddmssql.transactionMode=explicit, ddoracle.BatchPerformanceWorkaround=true, ddmssql.SendStringParametersAsUnicode=false, 100=ddoracle, mysql.user=${user}, ddoracle.Password=${password}, ddmssql.ApplicationName=Data Direct JDBC Driver, jtds.progName=jTDS JDBC Driver, mysql.password=${password}, ddoracle.MaxPooledStatements=0, ddoracle.LoginTimeout=30, ddoracle.User=${user}, jtds.sendStringParametersAsUnicode=false, 250=ddmssql, jtds.loginTimeout=30, ddmssql.MaxPooledStatements=5, ddmssql.class=com.mercury.jdbc.sqlserver.SQLServerDriver, ddmssql.LoginTimeout=30, jtds.class=net.sourceforge.jtds.jdbc.Driver, jtds.password=${password}, ddoracle.class=com.mercury.jdbc.oracle.OracleDriver, jtds.appName=jTDS JDBC Driver, jtds.url=jdbc:jtds:sqlserver://${host}:${port}/${database}, jtds.user=${user}, ddmssql.DatabaseName=${database}, jtds.charset=${charset}, mysql.class=com.mysql.jdbc.Driver, ddmssql.Password=${password}, ddoracle.ApplicationName=Data Direct JDBC Driver, ddoracle.WireProtocolMode=2, ddmssql.url=jdbc:mercury:sqlserver://${host}:${port}, 300=mysql, mysql.loginTimeout=30, mysql.url=jdbc:mysql://${host}:${port}/${database}?autoReconnect=true}
2016-08-10 12:12:40,640 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:133) INFO - Following driver config will be used for db of type 'SQL Server':
class = 'com.mercury.jdbc.sqlserver.SQLServerDriver', url = 'jdbc:mercury:sqlserver://${host}:${port}', info = {allowPortWithNamedInstance=true , ApplicationName=Data Direct JDBC Driver, DatabaseName=${database}, MaxPooledStatements=5, Password=${password}, LoginTimeout=30, SendStringParametersAsUnicode=false, User=${user}, transactionMode=explicit}
2016-08-10 12:12:40,640 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:133) INFO - Following driver config will be used for db of type 'ORACLE Server':
class = 'com.mercury.jdbc.oracle.OracleDriver', url = 'jdbc:mercury:oracle:TNSNamesFile=/opt/HP/BSM/conf/bsm-tnsnames.ora;TNSServerName=HPBSM_PRD', info = {ApplicationName=Data Direct JDBC Driver, MaxPooledStatements=0, Password=${password}, BatchPerformanceWorkaround=true, WireProtocolMode=2, LoginTimeout=30, User=${user}}
2016-08-10 12:12:40,640 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:133) INFO - Following driver config will be used for db of type 'MSDE':
class = 'com.mercury.jdbc.sqlserver.SQLServerDriver', url = 'jdbc:mercury:sqlserver://${host}:${port}', info = {allowPortWithNamedInstance=true , ApplicationName=Data Direct JDBC Driver, DatabaseName=${database}, MaxPooledStatements=5, Password=${password}, LoginTimeout=30, SendStringParametersAsUnicode=false, User=${user}, transactionMode=explicit}
2016-08-10 12:12:40,640 [pool-1-thread-1] (DefaultJDBCDriverConfigurtor.java:133) INFO - Following driver config will be used for db of type 'mysql':
class = 'com.mysql.jdbc.Driver', url = 'jdbc:mysql://${host}:${port}/${database}?autoReconnect=true', info = {user=${user}, password=${password}, loginTimeout=30}
2016-08-10 12:12:40,709 [pool-1-thread-1] (BasicSchemaValidatorTask.java:81) INFO - Table CM_CONFIGURATION exists (row count 1)
2016-08-10 12:12:40,716 [pool-1-thread-1] (BasicSchemaValidatorTask.java:50) INFO - Validation passed successfully
2016-08-10 12:12:40,716 [pool-1-thread-1] (BasicSchemaValidatorTask.java:53) DEBUG - Leave BasicSchemaValidatorTask

And then the error is when executing the Java task com.mercury.topaz.upgrade.tasks.ConnectCmdbDbTask

I have checked and i don't have any cmdb.conf file.

Thank you

0 Likes
Micro Focus Expert
Micro Focus Expert

Re: BSM 9.26 Upgrade to APM 9.30 issue

Hi,

thanks for the additional information, that's really really odd.
They might be two different ways of accessing the RTSM depending on the mdoule it does. 
Obviosuly part of APM can access the RTSM correctly, and others - who knows.
I don't have a APM installation with Oracle RAC, so my testing abilites are quite limited.

I only have two more ideas:

- if you created a backup of the BSM 9.26 environment, restore the file 
<HPBSM>\odb\conf\cmdb.conf,
check that it looks valid and try again

- disable RAC (I'm not a DBA, but I read that you can tell your Oracle RAC DB to behave like a "normal" Oracle DB) and try again

Greetings
Siggi

Customer Support
Micro Focus

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution.
0 Likes
Valued Contributor.. bbispo Valued Contributor..
Valued Contributor..

Re: BSM 9.26 Upgrade to APM 9.30 issue

Hi,

After you first reply the first thing i tried was to restore the cmdb.conf file from the other installation and no luck with that.

Regarding the Oracle RAC, unfortunately i cannot ask that to DBA team as there are other instances running there, but thank you very much for trying to help.

Kind Regards

Bruno

0 Likes
Rufeng Xu-Fried Honored Contributor.
Honored Contributor.

Re: BSM 9.26 Upgrade to APM 9.30 issue

We are facing the same issue when we upgrade from BSM 9.25 to APM 9.3.  We also have RAC DB.  The management DB connection is fine, so is profile DB. But RTSM DB connection fails.

I am able to connect to the RTSM DB via TOAD.

So I feel that RTSM DB is not looking at the same tns or DB config file.  In this chain, you mentioned odb/conf directory. But 9.25 does not have separate DB config fie there though.

Could you please advise where I can check?

Thanks,

Rufeng

Rufeng
0 Likes
Rufeng Xu-Fried Honored Contributor.
Honored Contributor.

Re: BSM 9.26 Upgrade to APM 9.30 issue

cmdb.confBSM 9.25 does not have cmdb.conf either. 

Rufeng
0 Likes
Rufeng Xu-Fried Honored Contributor.
Honored Contributor.

Re: BSM 9.26 Upgrade to APM 9.30 issue

I understand it now.  RTSM uses separate config file.  The file name is

/odb/conf/jdbc.properties.  If this file does not exist, please create one.

Inside, the file, add two lines

Oracle = ddoracle

cmdb.url =jdbc:mercury:oracle:TNSNamesFile=<APM_HOME>\\conf\\bsmtnsnames.ora;TNSServerName=<SERVICE NAME>

For example, in my case,

Oracle = ddoracle
cmdb.url = jdbc:mercury:oracle:TNSNamesFile=D:\\HPBSM\\conf\\bsm-tnsnames.ora;TNSServerName=BACD.WORLD;wireProtocolVersion=8

This works. This is documented in the DB guide.  But not mentioned in the upgrade guide. 

I hope this helps.

Thanks!

 

Rufeng
0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.