We are using Oracle for the APM backend database which seems to be working without any issues however below error is still getting logged in EM logs:
[Manager.com.timestock.tess.util.DbConfigurationUtil] Could not get the Database Configuration.
java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(String.java:1955)
at com.timestock.tess.util.DbConfigurationUtil.parseDBUrlPostgres(DbConfigurationUtil.java:415)
at com.timestock.tess.util.DbConfigurationUtil.getDbConfigurationFromXml(DbConfigurationUtil.java:100)
at com.timestock.tess.util.DbConfigurationUtil.getDbConfigurationFromXml(DbConfigurationUtil.java:55)
at com.timestock.tess.util.DbConfigurationUtil.getDbConfiguration(DbConfigurationUtil.java:46)
at com.timestock.tess.util.TessConfigConstants.getValue(TessConfigConstants.java:12)
at com.timestock.tess.util.TessConfigConstants.getIntConstant(TessConfigConstants.java:43)
How can we address this ? Why is EM trying to parse the Database URL as Postgres instead of Oracle ?
APM 10.x
Issue is caused due to the fact that the required entry in the tess-db-cfg.xml <property name="em.dbtype"> had incorrect value specified.
Property is case sensitive and in this case customer had specified "oracle" instead of "Oracle" due to which EM was parsing the Database connection URL as Postgres instead of Oracle and throwing the error.
1) Open the <EM-HOME>/config/tess-db-cfg.xml
2) Update the em.dbtype property as below:
<property name="em.dbtype">oracle</property>
to
<property name="em.dbtype">Oracle</property>