我在grails下面有数据源配置。
dataSource_staging_oracle {
dbCreate = "none"
pooled = true
url = "jdbc:oracle:thin:@//my-box-oracle.com:1521/DB1"
driverClassName = "oracle.jdbc.OracleDriver"
username = "USER_1"
password = "encryptedpassword"
passwordEncryptionCodec = PropertiesCodec
}
dataSource_prod_oracle {
dbCreate = "none"
pooled = true
autoReconnect = true
url = "jdbc:oracle:thin:@//my-oracle-prod-box.com:1521/DB2"
driverClassName = "oracle.jdbc.OracleDriver"
username = "user_2"
password = "encrypted_password"
passwordEncryptionCodec = PropertiesCodec
}
应用程序能够获取数据库连接并正常工作。但是,经过1-2小时的处理,我看到了连接关闭的异常。
错误util.JDBCExceptionReporter-闭合的连接
我相信这与数据源配置属性有关。哪些grails设置可帮助我刷新连接?我已经将
autoReconnect
和pooled
设置为true
我使用grails 2.3.3
最佳答案
数据源属性将通知数据库,中间件服务器将从数据库中获得什么。如果您的Oracle服务器与Grails想要使用的设置不一致,则有时会出现一些隐秘的错误消息。
使用池化连接可以告诉Oracle为应用程序保留许多打开的连接。如果应用程序正在运行1-2个小时并持续进行处理,则我期望该池可能没有足够的有效连接。对于某些背景,请查看下面包含的链接。
请查看Grails configuration docs(第4.4节)以查看高级数据源配置选项。您是否定义了验证查询? (例如select 1 from dual;
)
查看此AskTom帖子,以了解connection pooling的清晰说明。
mysqlt的Previous StackOverflow question但类似的错误。
关于grails - grails oracle连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987061/