Does TDM Web Portal Support Repository on ORACLE RAC?

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

Does TDM Web Portal support Repository on ORACLE RAC?

Environment:
TDM Portal 3.6 and later;Repository on an Oracle RAC system - 3 database servers.
Cause:

When using the database connect string provided from the DBA, TDM Portal does not connect.  This is due to not being able to have all servers fully described.

Resolution:

Performing a tnsping <<DB_SERVER_NAME>> will verify the port that is being used. For instance in this case, you were expecting port XXXX and the result from the actual tnsping was different then you know your initial information was not what our software was looking at.  Also, if you add the service name as well as below  

For instance: 

C:\>tnsping localhost/OracleServiceXE 

Provides an output similar to this: 

TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production on 09-NOV-2016 13:49:43 

Copyright (c) 1997, 2010, Oracle. All rights reserved. 

Used parameter files: 
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora 

Used HOSTNAME adapter to resolve the alias 
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=OracleServiceXE))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))) 

OK (0 msec) 

Please note that it includes a method to contact it. This is especially important in a RAC environment. This is the method used to gather the information for the servers making up the RAC. This is then used in applicaton.properties file. See below for further information. 

In the application.properties file, instead of this paragraph 

# Database 
spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/xe 
spring.datasource.username=gtrep 
spring.datasource.password={cry}1jgNvYAXGPetw8mO2aqkqc54GyXoX+0r81te 
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver 

Use something like this one 

# Database 
spring.datasource.url=jdbc:oracle:thin: 
@(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=<<HOSTNAME>>) ) 
(ADDRESS=(PROTOCOL=TCP) (HOST=OFL.ZXY.ABD.KL1) (PORT=XXXX) ) 
(ADDRESS=(PROTOCOL=TCP) (HOST=OFL.ZXY.ABD.KL2) (PORT=XXXX) ) 
(ADDRESS=(PROTOCOL=TCP) (HOST=OFL.ZXY.ABD.KL3) (PORT=XXXX) ) ) 
spring.datasource.username=gtrep 
spring.datasource.password={cry}1jgNvYAXGPetw8mO2aqkqc54GyXoX+0r81te 
spring.datasource.driver-class-name=oracle.jdbc.OracleDrive

Please note that the description comes directly from the tnsping command result as mentioned above that added the service name to the tnsping command of the hostname.

Note: The example tnsping was NOT from a RAC system but from a standard single DB Server.  If it had been from a RAC system, the Description would have been similar to the RAC Description as above. 

Another note worthy Debugging tool is to edit C:\Program Files\CA\CA Test Data Manager Portal\conf\logback-tdm.xml and change this line 

<!-- <logger name="com.ca.tdm" level="DEBUG" />-->

to this

<logger name="com.ca.tdm" level="DEBUG" />

save and restart the service.  This will put debug information out for our Development to review.  When finished replicating the issue, stop the service, revert the line back, save, and restart the service.

 

Additional Information: