Introscope EM fails to connect to CA APM Database - error: Connections could not be acquired from the underlying database!

Document ID : KB000019587
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Introscope EM shuts down or is not able to start and the Log shows Exception Messages:

[ERROR] [PO:AppMapAgentPO Mailman 9] [Manager.AppMapSubsystem] Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
[DEBUG] [PO:AppMapAgentPO Mailman 9] [Manager.AppMapSubsystem]
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection

Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!

Solution:

These exceptions indicate that the EM is having a problem connecting to the APM Database (APMDB/CEMDB).

Make sure every CA APM cluster EM points to the same APM Database by following these steps:

To configure the connection to the APM database after installation:

Open the tess-db-cfg.xml file for each EM for editing with Notepad or a similar text editor.

The file is located in the following directory, depending on your operating system:

Windows: <EM_home>\config\
Linux: <EM_home>/rootFiles/config/

For the hibernate.connection.url property, replace the current settings
with the database hostname (or IP address), port, and database name.

For example:
<property name="hibernate.connection.url">jdbc:postgresql://127.0.0.1:5432/cemdb</property>
<property name="hibernate.connection.url">jdbc:postgresql://APM DatabaseServer:5432/cemdb</property>

Important: You must follow the steps below after making changes to the APM Database Host name / IP Address:

For the hibernate.connection.username property, specify the database user name.
Note: This is not the PostgreSQL administrator user name.

For the hibernate.connection.password property, specify the database user password in plain text.

For the plainTextPasswords property, change the setting to true. This allows you to enter the password in plain text.
When the Enterprise Manager restarts, Introscope sets the plainTextPasswords property back to false and encrypts the password.