Configure the CData JDBC Driver for Oracle Eloqua Reporting in a Connection Pool in Tomcat
The CData JDBC Drivers support standard JDBC interfaces to integrate with Web applications running on the JVM. This article details how to connect to Oracle Eloqua Reporting data from a connection pool in Tomcat.
Connect to Oracle Eloqua Reporting Data through a Connection Pool in Tomcat
- Copy the CData JAR and CData .lic file to $CATALINA_HOME/lib. The CData JAR is located in the lib subfolder of the installation directory.
- Add a definition of the resource to the context. Specify the JDBC URL here.
Oracle Eloqua Reporting supports the following authentication methods:
- Basic authentication (User and Password)
- OAuth 2.0 code grant flow
- OAuth 2.0 password grant flow
Basic Authentication (User and Password)
To perform authentication with a user and password, specify these properties:
- AuthScheme: Basic.
- Company: The company name associated with your Oracle Eloqua Reporting account.
- User: Your login account name.
- Password: Your login password.
OAuth Authentication (Code Grant Flow)
To authenticate with the OAuth code grant flow, you must set AuthScheme to OAuth and create a custom OAuth application. For information about how to create a custom OAuth application, see the Help documentation.
Then set the following properties:
- InitiateOAuth: GETANDREFRESH. Used to automatically get and refresh the OAuthAccessToken.
- OAuthClientId: The client Id assigned when you registered your application.
- OAuthClientSecret: The client secret that was assigned when you registered your application.
- CallbackURL: The redirect URI that was defined when you registered your application.
When you connect, the driver opens Oracle Eloqua Reporting's OAuth endpoint in your default browser. Log in and grant permissions to the application. When the access token expires, the driver refreshes it automatically.
OAuth Authentication (Password Grant Flow)
With the OAuth password grant flow, you can use your OAuth application's credentials alongside your user credentials to authenticate without the need to grant permission manually via a browser prompt. You must create an OAuth app (see the Help documentation) to use this authentication method.
Set the following properties:
- AuthScheme: OAuthPassword
- Company: The company's unique identifier.
- User: Your login account name.
- Password: Your login password.
- OAuthClientId: The client Id assigned when you registered your custom OAuth application.
- OAuthClientSecret: The client secret assigned when you registered your custom OAuth application.
Built-in Connection String Designer
For assistance in constructing the JDBC URL, use the connection string designer built into the Oracle Eloqua Reporting JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.oracleeloquareporting.jar
Fill in the connection properties and copy the connection string to the clipboard.
You can see the JDBC URL specified in the resource definition below.
<Resource name="jdbc/oracleeloquareporting" auth="Container" type="javax.sql.DataSource" driverClassName="cdata.jdbc.oracleeloquareporting.OracleEloquaReportingDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" url="jdbc:oracleeloquareporting:AuthScheme=Basic;User=user;Password=password;Company=MyCompany;" maxActive="20" maxIdle="10" maxWait="-1" />
To allow a single application to access Oracle Eloqua Reporting data, add the code above to the context.xml in the application's META-INF directory.
For a shared resource configuration, add the code above to the context.xml located in $CATALINA_BASE/conf. A shared resource configuration provides connectivity to Oracle Eloqua Reporting for all applications.
- Add a reference to the resource to the web.xml for the application.
Oracle Eloqua Reporting data JSP jdbc/OracleEloquaReporting javax.sql.DataSource Container
-
Initialize connections from the connection pool:
Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/OracleEloquaReporting"); Connection conn = ds.getConnection();
More Tomcat Integration
The steps above show how to connect to Oracle Eloqua Reporting data in a simple connection pooling scenario. For more use cases and information, see the JNDI Datasource How-To in the Tomcat documentation.