Maintenance is complete- We've moved from the saas.hpe.com domain to softwaregrp.com click to read more
As part of our journey to complete our separation work and our future integration with Micro Focus, we've now updated our domain for the community. This is an interim step, which will be followed by a series of future update / improvements: - Piloting Idea boards - Refreshing the entire UI. (more to come later) - and more
Application Perf Mgmt (BAC / BSM) Practitioners Forum
cancel

BSM 9.26 Upgrade to APM 9.30 issue

bbispo
Regular Contributor.

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

7 REPLIES
Siggi Gladitsch
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.
bbispo
Regular 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

Siggi Gladitsch
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.
bbispo
Regular 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

Rufeng Xu-Fried
Super 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
Rufeng Xu-Fried
Super Contributor.

Re: BSM 9.26 Upgrade to APM 9.30 issue

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

Rufeng
Rufeng Xu-Fried
Super 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