mysql - mysql 5.7 和 Java 17 和 jconnect 8 的 keycloak 服务器 15.0.2 超时错误
问题描述
使用 connect 8.0.27 将 kycloak 服务器 15.0.2 连接到我的 SQL 5.7 数据库时出现错误。
启动 keycloak 服务器后,我可以在 keycloak 模式中看到由 keycloak 服务器创建的表。但是服务器因错误而启动和停止。
在配置 MySQL 数据源后第一次启动时,它会挂起 5 分钟,抛出超时异常,然后停止并显示以下堆栈跟踪:
liquibase.exception.UnexpectedLiquibaseException:java.sql.SQLException:IJ031070:事务无法继续:STATUS_ROLLEDBACK
at liquibase.database.jvm.JdbcConnection.getURL(JdbcConnection.java:79)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:66)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:113)
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1277)
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1259)
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:582)
... 76 more
引起:java.sql.SQLException:IJ031070:事务无法继续:STATUS_ROLLEDBACK
at org.jboss.jca.adapters.jdbc.WrapperDataSource.checkTransactionActive(WrapperDataSource.java:272)
at org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransactionActive(WrappedConnection.java:2007)
at org.jboss.jca.adapters.jdbc.WrappedConnection.checkStatus(WrappedConnection.java:2022)
at org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransaction(WrappedConnection.java:1996)
at org.jboss.jca.adapters.jdbc.WrappedConnection.getMetaData(WrappedConnection.java:982)
at liquibase.database.jvm.JdbcConnection.getURL(JdbcConnection.java:77)
... 81 more
在随后的启动中,它会抛出如下外键错误,然后再次停止:
liquibase.exception.DatabaseException:表'keycloak.client_template_attributes'不存在[失败的SQL:ALTER TABLE keycloak.CLIENT_TEMPLATE_ATTRIBUTES DROP FOREIGN KEY FK_CL_TEMPL_ATTR_TEMPL]
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:309)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:113)
at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1277)
at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1259)
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:582)
... 76 more
引起:java.sql.SQLSyntaxErrorException:表'keycloak.client_template_attributes'不存在
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:768)
at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:653)
at org.jboss.jca.adapters.jdbc.WrappedStatement.execute(WrappedStatement.java:198)
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:307)
... 81 more
解决方案
您需要增加超时值
Standalone.xml 中的选项 1
<coordinator-environment default-timeout="3600" statistics-enabled=......
选项 2 其他方法是使用 JVM 参数 -Djboss.as.management.blocking.timeout=3600
推荐阅读
- java - 运行任何新的 android 项目的问题 - 未找到默认活动/无效的 Java 包
- php - PHP MySQL查询插入与连接分配变量
- php - 按位左移运算符
- c# - 无焦点 ComboBoxItem
- javascript - 使用 Javascript 查找网站的加载时间
- c - 时钟功能在操作系统中是如何工作的?
- powershell - 将两个命令合二为一并在 Powershell 中导出为 csv 文件
- excel - VBA 在不同的工作表中查找组并返回前 3 个值和名称
- sql - 在 SQL Server 中为事实表连接多个表的复杂性
- javascript - 在 React.js 中注销一个选项卡时,如何注销一个浏览器中的所有选项卡?