Jay Taylor's notes

back to listing index

Documentation: SettingsJDBC — Playframework

[web search]
Original source (www.playframework.org)
Tags: play-framework play 2.0 application.conf database-pool-configuration www.playframework.org
Clipped on: 2012-08-13

Configuring the JDBC pool.

The Play 2.0 JDBC datasource is managed by BoneCP .

Special URLs

Play supports special url format for both MySQL and PostgreSQL:

# To configure MySQL

# To configure PostgreSQL


In addition to the classical driver, url, user, password configuration properties, it also supports additional tuning parameters if you need them:

# The JDBC driver to use

# The JDBC url

# User name

# Password

# Set a connection's default autocommit setting

# Set a connection's default isolation level

# In order to reduce lock contention and thus improve performance, 
# each incoming connection request picks off a connection from a 
# pool that has thread-affinity. 
# The higher this number, the better your performance will be for the 
# case when you have plenty of short-lived threads. 
# Beyond a certain threshold, maintenance of these pools will start 
# to have a negative effect on performance (and only for the case 
# when connections on a partition start running out).

# The number of connections to create per partition. Setting this to 
# 5 with 3 partitions means you will have 15 unique connections to the 
# database. Note that BoneCP will not create all these connections in 
# one go but rather start off with minConnectionsPerPartition and 
# gradually increase connections as required.

# The number of initial connections, per partition.

# When the available connections are about to run out, BoneCP will 
# dynamically create new ones in batches. This property controls 
# how many new connections to create in one go (up to a maximum of 
# maxConnectionsPerPartition). Note: This is a per-partition setting.

# After attempting to acquire a connection and failing, try to 
# connect this number of times before giving up.

# How long to wait before attempting to obtain a 
# connection again after a failure.
db.default.acquireRetryDelay=5 seconds

# The maximum time to wait before a call 
# to getConnection is timed out.
db.default.connectionTimeout=1 second

# Idle max age
db.default.idleMaxAge=10 minute

# This sets the time for a connection to remain idle before sending a test query to the DB. 
# This is useful to prevent a DB from timing out connections on its end. 
db.default.idleConnectionTestPeriod=5 minutes

# An initial SQL statement that is run only when 
# a connection is first created.
db.default.initSQL="SELECT 1"

# If enabled, log SQL statements being executed.

# The maximum connection age.
db.default.maxConnectionAge=1 hour