grails - grails oracle连接超时

标签 grails gorm

我在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设置可帮助我刷新连接?我已经将autoReconnectpooled设置为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/

相关文章:

Grails 独特的复合键问题

grails - 用枚举类型查询时,GRAILS GORM显示错误结果

grails - 等于grails中的域类

grails - Grails withTransaction()和事务服务方法之间的区别

hibernate - 在 session 中存储 Grails/GORM 域对象 - 为什么不呢?

grails - 多对多Grails-查找包含特定对象列表的所有对象

javascript - 在单个下拉列表中填充来自两个不同列的值

grails - 编译之前访问进程i18n属性文件

grails - Grails:如何从BuildConfig.groovy中知道正在执行哪个命令

hibernate - 什么时候不使用Grails域类中的版本号?