Description
Using CloudBees CD (CloudBees Flow) with an Oracle RAC configuration requires using the ectool setDatabaseConfiguration
command with the customDatabaseUrl
argument.
Setup
Given the following Oracle TNS string:
ECLOUDI = (DESCRIPTION = (SDU = 32768) (enable = broken) (ADDRESS = (PROTOCOL = TCP)(HOST = myhost2.electric-cloud.com)(PORT = 1525)) (ADDRESS = (PROTOCOL = TCP)(HOST = myhost3.electric-cloud.com)(PORT = 1525)) (CONNECT_DATA = (SERVICE_NAME = ECLOUDIC) ) )
Solution
Use the following steps:
-
Take the portion of the TNS after the
ECLOUDI =
and remove all spaces and newlines:(DESCRIPTION=(SDU=32768)(enable=broken)(ADDRESS=(PROTOCOL=TCP)(HOST=myhost2.electric-cloud.com) (PORT=1525))(ADDRESS=(PROTOCOL=TCP)(HOST=myhost3.electric-cloud.com)(PORT=1525)) (CONNECT_DATA=(SERVICE_NAME=ECLOUDIC)))
-
Prepend
jdbc:oracle:thin:@
to this string:jdbc:oracle:thin:@(DESCRIPTION=(SDU=32768)(enable=broken)(ADDRESS=(PROTOCOL=TCP) (HOST=myhost2.electric-cloud.com)(PORT=1525))(ADDRESS=(PROTOCOL=TCP) (HOST=myhost3.electric-cloud.com)(PORT=1525))(CONNECT_DATA=(SERVICE_NAME=ECLOUDIC)))
-
Then call
ectool
, making sure to place the URL in quotes. It is not necessary to specify the other arguments if you have already supplied them in another call tosetDatabaseConfiguration
.ectool setDatabaseConfiguration --databaseType oracle --userName dbuser --password dbpassword --customDatabaseUrl "jdbc:oracle:thin:@(DESCRIPTION=(SDU=32768)(enable=broken)(ADDRESS=(PROTOCOL=TCP)(HOST=myhost2.electric-cloud.com) (PORT=1525))(ADDRESS=(PROTOCOL=TCP)(HOST=myhost3.electric-cloud.com)(PORT=1525))(CONNECT_DATA=(SERVICE_NAME=ECLOUDIC)))"
-
Restart CloudBees CD (CloudBees Flow).
This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.