首页 > 解决方案 > Grails 4 oracle连接卡住

问题描述

当应用程序启动时,它正在验证连接。这是它坐在那里等待时的最后一个日志条目。

2020-07-29 15:01:20.743  INFO --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.Oracle12cDialect

它在数据库中建立连接并尝试运行它。

SELECT 'NUMBER' AS type_name
     , 2   AS data_type
     , 38  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'CHAR' AS type_name
     , 1   AS data_type
     , 2000 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'CHAR' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NCHAR' AS type_name
     , -15 AS data_type
     , 2000 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NCHAR' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'VARCHAR2' AS type_name
     , 12  AS data_type
     , 4000 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'VARCHAR2' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NVARCHAR2' AS type_name
     , -9  AS data_type
     , 4000 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'nVARCHAR2' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'DATE' AS type_name
     , 93  AS data_type
     , 7   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'DATE' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'DATE' AS type_name
     , 92  AS data_type
     , 7   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'DATE' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'TIMESTAMP' AS type_name
     , 93  AS data_type
     , 11  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'TIMESTAMP' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'TIMESTAMP WITH TIME ZONE' AS type_name
     , -101 AS data_type
     , 13  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'TIMESTAMP WITH TIME ZONE' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'TIMESTAMP WITH LOCAL TIME ZONE' AS type_name
     , -102 AS data_type
     , 11  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'TIMESTAMP WITH LOCAL TIME ZONE' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'INTERVALYM' AS type_name
     , -103 AS data_type
     , 5   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'INTERVALYM' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'INTERVALDS' AS type_name
     , -104 AS data_type
     , 4   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'INTERVALDS' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'RAW' AS type_name
     , -3  AS data_type
     , 2000 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'RAW' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'LONG' AS type_name
     , -1  AS data_type
     , 2147483647 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'LONG' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'LONG RAW' AS type_name
     , -4  AS data_type
     , 2147483647 AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'LONG RAW' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NUMBER' AS type_name
     , -7  AS data_type
     , 1   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , '(1)' AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NUMBER' AS type_name
     , -6  AS data_type
     , 3   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , '(3)' AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NUMBER' AS type_name
     , 5   AS data_type
     , 5   AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , '(5)' AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NUMBER' AS type_name
     , 4   AS data_type
     , 10  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , '(10)' AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NUMBER' AS type_name
     , -5  AS data_type
     , 38  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NUMBER' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'FLOAT' AS type_name
     , 6   AS data_type
     , 63  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'FLOAT' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'REAL' AS type_name
     , 7   AS data_type
     , 63  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 3   AS searchable
     , 0   AS unsigned_attribute
     , 1   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'REAL' AS local_type_name
     , -84 AS minimum_scale
     , 127 AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'BLOB' AS type_name
     , 2004 AS data_type
     , -1  AS precision
     , NULL AS literal_prefix
     , NULL AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 0   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'BLOB' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'CLOB' AS type_name
     , 2005 AS data_type
     , -1  AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'CLOB' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'NCLOB' AS type_name
     , 2011 AS data_type
     , -1  AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'NCLOB' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'REF' AS type_name
     , 2006 AS data_type
     , 0   AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'REF' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'ARRAY' AS type_name
     , 2003 AS data_type
     , 0   AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'ARRAY' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
UNION
SELECT 'STRUCT' AS type_name
     , 2002 AS data_type
     , 0   AS precision
     , '''' AS literal_prefix
     , '''' AS literal_suffix
     , NULL AS create_params
     , 1   AS nullable
     , 1   AS case_sensitive
     , 0   AS searchable
     , 0   AS unsigned_attribute
     , 0   AS fixed_prec_scale
     , 0   AS auto_increment
     , 'STRUCT' AS local_type_name
     , 0   AS minimum_scale
     , 0   AS maximum_scale
     , NULL AS sql_data_type
     , NULL AS sql_datetime_sub
     , 10  AS num_prec_radix
  FROM DUAL
ORDER BY data_type

我认为它永远不会结束。Grails 只是挂起等待。如果我终止了 oracle 会话,那么它会继续并加载应用程序。我正在运行调试日志记录,下一个日志条目是这个。

2020-07-29 15:01:37.142 DEBUG --- [           main] o.h.e.j.e.i.LobCreatorBuilderImpl        : HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

环境细节

应用程序.yml

---
grails:
    profile: web
    codegen:
        defaultPackage: btpg
    gorm:
        reactor:
            # Whether to translate GORM events into Reactor events
            # Disabled by default for performance reasons
            events: false
info:
    app:
        name: '@info.app.name@'
        version: '@info.app.version@'
        grailsVersion: '@info.app.grailsVersion@'
spring:
    jmx:
        unique-names: true
    main:
        banner-mode: "off"
    groovy:
        template:
            check-template-location: false
    devtools:
        restart:
            additional-exclude:
                - '*.gsp'
                - '**/*.gsp'
                - '*.gson'
                - '**/*.gson'
                - 'logback.groovy'
                - '*.properties'
management:
    endpoints:
        enabled-by-default: false

---
grails:
    mime:
        disable:
            accept:
                header:
                    userAgents:
                        - Gecko
                        - WebKit
                        - Presto
                        - Trident
        types:
            all: '*/*'
            atom: application/atom+xml
            css: text/css
            csv: text/csv
            form: application/x-www-form-urlencoded
            html:
              - text/html
              - application/xhtml+xml
            js: text/javascript
            json:
              - application/json
              - text/json
            multipartForm: multipart/form-data
            pdf: application/pdf
            rss: application/rss+xml
            text: text/plain
            hal:
              - application/hal+json
              - application/hal+xml
            xml:
              - text/xml
              - application/xml
    urlmapping:
        cache:
            maxsize: 1000
    controllers:
        defaultScope: singleton
    converters:
        encoding: UTF-8
    views:
        default:
            codec: html
        gsp:
            encoding: UTF-8
            htmlcodec: xml
            codecs:
                expression: html
                scriptlet: html
                taglib: none
                staticparts: none
management:
    endpoints:
        jmx:
            unique-names: true

---
hibernate:
    cache:
        queries: false
        use_second_level_cache: false
        use_query_cache: false

dataSource:
    pooled: false
    jmxExport: false
    driverClassName: oracle.jdbc.OracleDriver

    username: 'xxx'
    password: 'xxx'


environments:
    development:
        dataSource:
            dbCreate: none

            url: jdbc:oracle:thin:@10.10.99.110:1521:SMPL
            properties:
                jmxEnabled: false
                initialSize: 5
                maxActive: 50
                minIdle: 5
                maxIdle: 25
                maxWait: 10000
                maxAge: 600000
                timeBetweenEvictionRunsMillis: 5000
                minEvictableIdleTimeMillis: 60000
                validationQuery: SELECT 1 from dual;
                validationQueryTimeout: 15
                validationInterval: 15000
                testOnBorrow: true
                testWhileIdle: true
                testOnReturn: false
                jdbcInterceptors: ConnectionState
                defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
    test:
        dataSource:
            dbCreate: none
            url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
    production:
        dataSource:
            dbCreate: none
            url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
            properties:
                jmxEnabled: true
                initialSize: 5
                maxActive: 50
                minIdle: 5
                maxIdle: 25
                maxWait: 10000
                maxAge: 600000
                timeBetweenEvictionRunsMillis: 5000
                minEvictableIdleTimeMillis: 60000
                validationQuery: SELECT 1
                validationQueryTimeout: 3
                validationInterval: 15000
                testOnBorrow: true
                testWhileIdle: true
                testOnReturn: false
                jdbcInterceptors: ConnectionState
                defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED

任何帮助是极大的赞赏。

标签: oraclejdbcgrails

解决方案


推荐阅读