【问题标题】:Grails Hibernate Create hanging foreverGrails Hibernate Create 永远挂起
【发布时间】:2014-08-04 12:27:20
【问题描述】:

我正在使用 Hibernate (GORM) 开发 Grails 应用程序,并且我有一个特定的域导致我出现以下问题。问题是,当我想创建一个新的“TemplateInputTransDisplayMap”实例时,我自然会在本地服务器上加载应用程序并导航到并单击“New TemplateInputTransDisplayMap”按钮,但这会导致页面挂起。我把它挂了一个晚上,由于 WIFI 掉线,它最终在 6 小时后超时。当页面永远挂起从而永远不会产生错误时,我如何找出问题所在?

class TemplateInputTransDisplayMap {

static belongsTo = [templateInput:TemplateInput, templateStep:TemplateStep]
TemplateInput templateInput

Long id
String tsStep
String tiParameterName 
String displayLabel
String defaultValue
String tiMapParameter
String sqlQuery
String selectClause
String whereClause
Long fetchCount
String transTable
String columnName
String displayed
String delimeter
String valueProc
String uiDisplay
String uiSql
String xPath
String isNameValue
String label

static mapping = {

    table 'TI_TRANS_DISP_MAP'
    version false

    id column: 'TI_SYSID', generator: 'foreign', params: [property: 'templateInput']

    templateInput column: 'TI_SYSID', insertable: false, updateable: false
    templateStep column: 'TI_TS_SYSID'
    tsStep column: 'TS_STEP'
    tiParameterName column: 'TI_PARAM_NAME'
    displayLabel column: 'DISPLAY_LABEL'
    defaultValue column: 'DEFAULT_VALUE'
    tiMapParameter column: 'TI_MAP_PARAM'
    sqlQuery column: 'SQL_QUERY'
    selectClause column: 'SELECT_CLAUSE'
    whereClause column: 'WHERE_CLAUSE'
    fetchCount column: 'FETCH_COUNT'
    transTable column: 'TRANS_TABLE'
    columnName column: 'COLUMN_NAME'
    valueProc column: 'VALUE_PROC'
    uiDisplay column: 'UI_DISPLAY'
    uiSql column: 'UI_SQL'
    xPath column: 'XPATH'
    isNameValue column: 'IS_NAME_VALUE'

}

static constraints = {
    tsStep(maxSize:250, blank:true, nullable:true)
    tiParameterName(maxSize:250, blank:true, nullable:true)
    displayLabel(maxSize:250, blank:true, nullable:true)
    defaultValue(maxSize:1500, blank:true, nullable:true)
    tiMapParameter(maxSize:250, blank:true, nullable:true)
    sqlQuery(maxSize:1500, blank:true, nullable:true)
    selectClause(maxSize:100, blank:true, nullable:true)
    whereClause(maxSize:1000, blank:true, nullable:true)
    fetchCount(maxSize:3, blank:true, nullable:true)
    transTable(maxSize:250, blank:true, nullable:true)
    columnName(maxSize:30, blank:true, nullable:true)
    displayed(maxSize:1, blank:true, nullable:true)
    delimeter(maxSize:30, blank:true, nullable:true)
    valueProc(maxSize:500, blank:true, nullable:true)
    uiDisplay(maxSize:10, blank:true, nullable:true)
    uiSql(maxSize:900, blank:true, nullable:true)
    xPath(maxSize:2000, blank:true, nullable:true)
    isNameValue(maxSize:3, blank:true, nullable:true)
    label(maxSize:100, blank:true, nullable:true)
}
}

【问题讨论】:

    标签: hibernate grails grails-orm


    【解决方案1】:

    获取应用程序的线程转储以了解发生了什么。

    在 unix 上,您可以简单地向运行您的应用程序的 java 进程发送一个 SIGQUIT (3) 信号。

    kill -3 process_id_of_grails_jvm
    

    threaddump 到 stdout,默认是 Tomcat 中的 catalina.out。

    JDK中也有jstack命令来做threaddump。您可以使用 jps 命令获取可访问的 java 进程列表。

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      相关资源
      最近更新 更多