Connect to Cosmos DB Data from a Connection Pool in Jetty



The Cosmos DB JDBC Driver supports connection pooling: This article shows how to connect faster to Cosmos DB data from Web apps in Jetty.

The CData JDBC driver for Cosmos DB is easy to integrate with Java Web applications. This article shows how to efficiently connect to Cosmos DB data in Jetty by configuring the driver for connection pooling. You will configure a JNDI resource for Cosmos DB in Jetty.

Configure the JDBC Driver for Salesforce as a JNDI Data Source

Follow the steps below to connect to Salesforce from Jetty.

  1. Enable the JNDI module for your Jetty base. The following command enables JNDI from the command-line:

    java -jar ../start.jar --add-to-startd=jndi
  2. Add the CData and license file, located in the lib subfolder of the installation directory, into the lib subfolder of the context path.
  3. Declare the resource and its scope. Enter the required connection properties in the resource declaration. This example declares the Cosmos DB data source at the level of the Web app, in WEB-INF\jetty-env.xml.

    <Configure id='cosmosdbdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="cosmosdbdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="cosmosdbdemo"/></Arg> <Arg>jdbc/cosmosdbdb</Arg> <Arg> <New class="cdata.jdbc.cosmosdb.CosmosDBDriver"> <Set name="url">jdbc:cosmosdb:</Set> <Set name="AccountEndpoint">myAccountEndpoint</Set> <Set name="AccountKey">myAccountKey</Set> </New> </Arg> </New> </Configure>

    To obtain the connection string needed to connect to a Cosmos DB account using the SQL API, log in to the Azure Portal, select Azure Cosmos DB, and select your account. In the Settings section, click Connection String and set the following values:

    • AccountEndpoint: The Cosmos DB account URL from the Keys blade of the Cosmos DB account
    • AccountKey: In the Azure portal, navigate to the Cosmos DB service and select your Azure Cosmos DB account. From the resource menu, go to the Keys page. Find the PRIMARY KEY value and set AccountKey to this value.
  4. Configure the resource in the Web.xml:

    jdbc/cosmosdbdb javax.sql.DataSource Container
  5. You can then access Cosmos DB with a lookup to java:comp/env/jdbc/cosmosdbdb: InitialContext ctx = new InitialContext(); DataSource mycosmosdb = (DataSource)ctx.lookup("java:comp/env/jdbc/cosmosdbdb");

More Jetty Integration

The steps above show how to configure the driver in a simple connection pooling scenario. For more use cases and information, see the Working with Jetty JNDI chapter in the Jetty documentation.

Ready to get started?

Download a free trial of the Cosmos DB Driver to get started:

 Download Now

Learn more:

Cosmos DB Icon Cosmos DB JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with Cosmos DB document databases.