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).