3

I have successfully set up a deployer against broker db running on Oracle, but it was necessary for me to use an SID. I attempted to configure the storage to use the oracle service name with no luck. I believe it is Oracle 11g, but will have to check the environment to be sure.

My configuration is as follows (with private info removed of course):

<Storage Type="persistence" Id="defaultdb" dialect="ORACLESQL" Class="com.tridion.storage.persistence.JPADAOFactory">
    <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
    <DataSource Class="oracle.jdbc.pool.OracleDataSource">
        <Property Name="driverType" Value="thin"/>
        <Property Name="networkProtocol" Value="tcp"/>
        <Property Name="serverName" Value="THE_SERVER_ADDRESS"/>
        <Property Name="portNumber" Value="1521"/>
        <Property Name="databaseName" Value="SID"/>
        <Property Name="user" Value="some_user"/>
        <Property Name="password" Value="some_password"/>
    </DataSource>
</Storage>

Not knowing the proper placement, I made two different attempts with the service name in the serverName and the databaseName. In all attempts to use the service name I got JDBC connection exception. I don't have the exception handy at the moment, but will update the post with it very soon.

Does anyone have experience with properly configuring cd_storage against an Oracle instance using the service name and NOT the SID. I do not wish to have any configuration requiring an SID if at all possible.

2
  • What version of Tridion are you using? Dec 30, 2013 at 9:47
  • I am using Tridion 2013 Jan 4, 2014 at 5:14

2 Answers 2

6

You can use Oracle's JDBC thin driver syntax like so:

<Storage
    Type="persistence"
    Id="database"
    dialect="ORACLESQL"                                                                 
    Class="com.tridion.storage.persistence.JPADAOFactory"
    Url="jdbc:oracle:thin:@(DESCRIPTION=
        (ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=PORT))
        (CONNECT_DATA=
            (SERVER=DEDICATED)
            (SERVICE_NAME=SERVICE_NAME)
            (FAILOVER_MODE=(TYPE=select)(METHOD=BASIC)(RETRIES=180)
            (DELAY=5))
        ))"
    Username="SCHEMA_USER_USERNAME"
    Password="SCHEMA_USER_PASSWORD"
    Driver="oracle.jdbc.driver.OracleDriver">

More options, like load balancing, are also possible.

1
  • 1
    Works. Looks similar to my tnsnames.ora connection string. Feb 15, 2018 at 18:44
3

Have you tried serviceName instead of databaseName? SDL Tridion online manual has an instruction for the property when using service name in Oracle. That instruction can be found in "Configuring content storage" section (login required).

1
  • 1
    I appreciate your input. I don't think I stated it very clearly in the original question, but I did try the service name in place of the database name as suggested and also seen in the doc link you posted. I received the following exception from trying this: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor Jan 4, 2014 at 5:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.