CA APM tess-db-cfg.xml file does not get updated with correct Oracle parameters for the APM database after a new APM EM install

book

Article ID: 19834

calendar_today

Updated On:

Products

APP PERF MANAGEMENT CA Application Performance Management Agent (APM / Wily / Introscope) CUSTOMER EXPERIENCE MANAGER INTROSCOPE

Issue/Introduction

After installing CA APM EM and choosing Oracle for the APM database the tess-db-cfg.xml file in the config directory still has the default PostgreSQL database connection data instead of the Oracle data entered at the UI.

The main install log Introscope_x.x.x.x_InstallLog.log contains this Non Fatal Error:

Custom Action:

com.wily.introscope.installer.DatabaseConfigFileModifier                    

                         Status: ERROR                                     

                         Additional Notes: ERROR -     class               

com.wily.introscope.installer.DatabaseConfigFileModifier.install() runtime exception: 

Cause

The root cause of the exception and subsequent failure to update the tess-db-cfg.xml file was found to be a "$" character in the database password.
"$" is a special character used by the InstallAnywhere software to refer to variables.
A single quote character "'" is also known to be another special character for InstallAnywhere that can cause a similar error.

Environment

APM 9.x, 10.x

Resolution

There are 2 options:

1. Uninstall the EM and reinstall it after changing the Oracle password so that it does not contain either of the above special characters. If required the password can always be changed back after the install and the tess-db-cfg.xml file updated accordingly.

2. Stop the EM.
Backup the tess-db-cfg.xml file and change it to replace Postgres parameters with required Oracle parameters as follows (bold strings need to be changed accordingly):
      <property name="em.dbtype">Oracle</property>
      <property name="hibernate.connection.username">apmdb</property>
      <property name="hibernate.connection.password">PLAIN_TEXT_PASSWORD</property>
      <property name="plainTextPasswords">true</property>
      <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
      <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
      <property name="hibernate.connection.url">jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DATABASE_HOSTNAME)(PORT=DATABASE_LISTENER_PORT))(CONNECT_DATA=(SERVICE_NAME=ORACLE_SERVICE_NAME)))</property>
      <property name="hibernate.connection.tcpKeepAlive">true</property>