Ready to get started?

Learn more about the CData JDBC Driver for Cosmos DB or download a free trial:

Download Now

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="Server">anhohmongo.documents.azure.com</Set> <Set name="Port">10255</Set> <Set name="Database">test</Set> <Set name="User">contoso123:0Fc3IolnL123</Set> <Set name="Password">test</Set> </New> </Arg> </New> </Configure>

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

    • Server: Set this to the Host value. You can specify the port here or in Port.
    • Port: Specify the port number.
    • Database: Set this to the database you want to read from and write to.
    • User: Set this to the username to be used to perform MongoDB authentication to the database.
    • Password: Set this to the user's password.

    To access Cosmos DB tables you can use automatic schema discovery or write your own schema definitions. Schemas are defined in .rsd files, which have a simple format that makes them easy to extend. You can also execute free-form queries that are not tied to the schema.

  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.