Resin 3.0

Web Applications
Servlets and Filters
Admin (JMX)
EJB 3.0

Servlets and Filters
Resin 3.0

Resin supports the use of any database that is available with a JDBC driver.

Database Configuration

Resin provides a robust and tested connection pool that is used to obtain connections to databases.

Third-party Database Configuration

A list of third party databases and example driver configurations.

Database Cookbook

Common usage patterns for databases.

Using a database from a Servlet

Obtain and use a database connection from a Servlet.

Database Tutorials
Basic JDBC Database Pattern

This tutorial describes the standard pattern for using a database in Resin.

Using Dependency-Injection with JDBC Databases

This tutorial describes the standard pattern for using a database in Resin, following the Dependency-Injection/Inversion-of-Control pattern.

Databases Scrapbook

A repository of notes and comments that will eventually make their way into the documentation. Please treat the information here with caution, it has often not been verified.

What is the class I get as a DataSource?

The DataSource you get is really a com.caucho.sql.DBPool item.

What happens when a request is made and all the connections are in use?

If I have a dbpool set to 20 max connections, and say 60 people hit the jsp that makes connections to the database, what happens to the other 40 people that can't get an immediate open connection? How often does it try (or wait?) to get one?

How I protect the access to my database?

I need to put the database username and password in my configuration file, how can I make sure that only the Resin servers in my cluster can access the database? I don't want outside users to be able to access it.

Will the pool be automocatically set to queue if number of connections requested is more than max connections?

You mean block the waiting thread.

What are the Driver/XADataSource/ConnectionPoolDataSource driver interfaces?

Driver is the old JDBC 1.0 interface.

When is the connetion to the database made?

Does Resin connect to the database when lookup(Context.lookup()) is executed?

What does Resin do if it is given a JDBC Driver that does not support XAResource in a definition of an XA-capable resource?

E.g., the JDBC/ODBC bridge in a Resin with javax.sql.XADataSource.

Upon committing a UserTransaction spanning such a resource, I assume that the Driver underneath cannot take part in a 2-phase-commit?

So, it probably does not get a prepare call on prepare but still a regular non-XA commit call on commit? At least it seems to be this way, because an XA resource with a non-XA Driver beneath it gets committed by a UserTransaction commit.

Why do some vendors deliver ConnectionPoolDataSource implementations?

As far as I understand, most application servers including Resin and Tomcat/Tyrex use their own connection pool with the vendor's standard Driver/DataSource/XADataSource implementation.

What is the interaction between container, driver, and application in a distributed transaction?

The container is responsible for all pooling, registration with the TM, and the transaction management itself.

Using getConnection(username,password)

It turns out that Jeff's problem was that he had not specified the user/password in the resource-ref in the resin.conf file. In looking through the DBPool code, it's clear that if the getConnection(username,password) method is used, then it needs to match the user/password specified in the resource-ref.

Can the ping-on-idle interval be changed?

Is there a way to configure the ping-on-idle interval? What's the default interval?

Servlets and Filters
Resin 3.0
Copyright © 1998-2006 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.