After upgrading TDM Portal from TDM 4.9 to TDM 4.9.1 we aren't able to access any of our environments that have been created in Portal. When clicking on the Environments link, we see an error pop up stating
"Could not preform the action because of an internal server problem. Refer to logs, for more information.
The Server replied: Server encountered an error processing the request. See server logs for more details"
The most common cause for this error is:
To determine the root cause:
Release : 4.9
Component : CA Test Data Manager
While troubleshoot the issue we noticed that the orientDB service fails to stay running, which could be the result of a misconfiguration or database corruption.
When using TDM Portal, the Data reservations for Find & Reserve are held in the orientDB database, so looking in the orientdbStartup.txt, and the TDMDataReservation.log and TDMFindReserve.log, should help determine the cause of the problem.
In this example we see from the TDMFidReserve.log The FindReserveDataMigration is failing due to an internal server error: 500
2021-01-14 20:54:29.466 UTC [ERROR] [Thread-35 ] --- [U:][M:][P:] c.c.t.f.FindReserveDataMigration: Failed to perform find reserve data migration
Looking at the TDMDataReservation.log we see the connection to the ReservationDB, on port 2424 is being refused by the orientDB.
2021-01-14 20:47:14.711 UTC [ERROR] [https-openssl-nio-8443-exec-2] --- [U:Administrator][M:GET][P:/api/ca/v1/environments] c.c.t.c.e.h.GlobalExceptionConvertor: HTTP Error - INTERNAL SERVER ERROR: Exception: Error in creating or accessing the database
java.net.ConnectException: Connection refused: connect
Wrapped by: com.orientechnologies.common.io.OIOException: Error on connecting to :2424/ReservationDB
Looking at the orientdbStartup.txt (which I failed to capture for an example) we noticed that the database listener shows to running on a different port than 2424. Instead the orientDB application is listening on port 2480, while TDM Portal is attempting to make the connection of port 2424. This is a clear indication that someone has made modifications to the orientDB configuration, causing the connection to the database to fail.
The oreintDB configuration is controlled by the C:\Program Files\CA\CA Test Data Manager Portal\orientdb|config|orientdb-server-config.xml (default location). In this xml file look for the <listeners> tag to see how the ports are configured. By default, the listener port for binary connections should be set to port 2424, while the http connections use port 2480. In this example, both listener ports were set up to listen on port 2480, and causing the database connection to fail.
As a best practice, Broadcom always recommends backing up your TDM Portal installation directory before running your upgrade. The main reason for this is to keep a working backup of your TDM Portal configuration files, as well as a copy of your orientDB configuration files and oreintDB database.
NOTE: When troubleshooting this type of issue in your own environment, you may find the orientDB service is running, but the orientdbStartup.txt shows the login attempt is failing. Looking through the orientdb-server-config.xml file, under the <users> tag you'll find the orientdb application stores the password as an encrypted value. This is also true if you look in the TDM Protal's application.properties file. However, the two encryption methods are different, so you cannot recover one by finding the encrypted value in the other file. Therefore, it's important to make note of the orientDB username and password that was set up at the time the application was installed. If the configuration is ever changed, and the encrypted password value is not correct, you will not be able to recover the orientDB password. Your only option will be to uninstall TDM Portal, which also uninstalls the orientDB database, and do a fresh installation.
For more information on upgrading TDM see: