Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions obp-api/src/main/resources/props/sample.props.template
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,16 @@ connector=star

#OBP uses Hikari as the default database connection pool. OBP supports the following 5 configurations at the moment.
#https://github.com/brettwooldridge/HikariCP#frequently-used
#hikari.connectionTimeout=
#hikari.maximumPoolSize=
#hikari.idleTimeout=
# All values are in milliseconds unless noted otherwise. Defaults match HikariCP built-in defaults
# except keepaliveTime which defaults to 30000 (HikariCP default is 0 = disabled).
#hikari.connectionTimeout=30000
#hikari.maximumPoolSize=10
#hikari.idleTimeout=600000
# keepaliveTime must be set below the database/firewall idle TCP timeout to prevent stale-connection
# failures on the first call after a period of inactivity. HikariCP will ping each idle connection
# at this interval (in ms), keeping it alive. Recommended: 30000 (30s) when DB/firewall timeout is ~60s.
#hikari.keepaliveTime=30000
#hikari.maxLifetime=
#hikari.maxLifetime=1800000

## if connector = star, then need to set which connectors will be used. For now, obp support rest, akka.
starConnector_supported_types=mapped,internal
Expand Down
28 changes: 10 additions & 18 deletions obp-api/src/main/scala/bootstrap/liftweb/CustomDBVendor.scala
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,17 @@ class CustomDBVendor(driverName: String,
object HikariDatasource {
val config = new HikariConfig()

val connectionTimeout = APIUtil.getPropsAsLongValue("hikari.connectionTimeout")
val maximumPoolSize = APIUtil.getPropsAsIntValue("hikari.maximumPoolSize")
val idleTimeout = APIUtil.getPropsAsLongValue("hikari.idleTimeout")
val keepaliveTime = APIUtil.getPropsAsLongValue("hikari.keepaliveTime", 30000L)
val maxLifetime = APIUtil.getPropsAsLongValue("hikari.maxLifetime")

if(connectionTimeout.isDefined){
config.setConnectionTimeout(connectionTimeout.head)
}
if(maximumPoolSize.isDefined){
config.setMaximumPoolSize(maximumPoolSize.head)
}
if(idleTimeout.isDefined){
config.setIdleTimeout(idleTimeout.head)
}
val connectionTimeout = APIUtil.getPropsAsLongValue("hikari.connectionTimeout", 30000L)
val maximumPoolSize = APIUtil.getPropsAsIntValue("hikari.maximumPoolSize", 10)
val idleTimeout = APIUtil.getPropsAsLongValue("hikari.idleTimeout", 600000L)
val keepaliveTime = APIUtil.getPropsAsLongValue("hikari.keepaliveTime", 30000L)
val maxLifetime = APIUtil.getPropsAsLongValue("hikari.maxLifetime", 1800000L)

config.setConnectionTimeout(connectionTimeout)
config.setMaximumPoolSize(maximumPoolSize)
config.setIdleTimeout(idleTimeout)
config.setKeepaliveTime(keepaliveTime)
if(maxLifetime.isDefined){
config.setMaxLifetime(maxLifetime.head)
}
config.setMaxLifetime(maxLifetime)
//Liftweb DB.scala will set all the new connections to false, so here we set default to false
val autoCommitValue: Boolean = false
config.setAutoCommit(autoCommitValue)
Expand Down