由于定时模块的错误导致系统无法启动

2022-04-01 17:01:05.704 [main] [INFO ] [org.quartz.impl.jdbcjobstore.JobStoreTX] - Freed 0 triggers from 'acquired' / 'blocked' state.
2022-04-01 17:01:06.816 [main] [INFO ] [org.quartz.core.QuartzScheduler] - Scheduler schedulerFactoryBean_$_NON_CLUSTERED shutting down.
2022-04-01 17:01:06.817 [main] [INFO ] [org.quartz.core.QuartzScheduler] - Scheduler schedulerFactoryBean_$_NON_CLUSTERED paused.
2022-04-01 17:01:06.821 [main] [INFO ] [org.quartz.core.QuartzScheduler] - Scheduler schedulerFactoryBean_$_NON_CLUSTERED shutdown complete.

protected void recoverJobs(Connection conn) throws JobPersistenceException {
        try {
            int rows = this.getDelegate().updateTriggerStatesFromOtherStates(conn, "WAITING", "ACQUIRED", "BLOCKED");
            rows += this.getDelegate().updateTriggerStatesFromOtherStates(conn, "PAUSED", "PAUSED_BLOCKED", "PAUSED_BLOCKED");
            this.getLog().info("Freed " + rows + " triggers from 'acquired' / 'blocked' state.");
            this.recoverMisfiredJobs(conn, true);
            List<OperableTrigger> recoveringJobTriggers = this.getDelegate().selectTriggersForRecoveringJobs(conn);
            this.getLog().info("Recovering " + recoveringJobTriggers.size() + " jobs that were in-progress at the time of the last shut-down.");
            Iterator i$ = recoveringJobTriggers.iterator();

            while(i$.hasNext()) {
                OperableTrigger recoveringJobTrigger = (OperableTrigger)i$.next();
                if (this.jobExists(conn, recoveringJobTrigger.getJobKey())) {
                    recoveringJobTrigger.computeFirstFireTime((Calendar)null);
                    this.storeTrigger(conn, recoveringJobTrigger, (JobDetail)null, false, "WAITING", false, true);
                }
            }

            this.getLog().info("Recovery complete.");
            List<TriggerKey> cts = this.getDelegate().selectTriggersInState(conn, "COMPLETE");
            Iterator i$ = cts.iterator();

            while(i$.hasNext()) {
                TriggerKey ct = (TriggerKey)i$.next();
                this.removeTrigger(conn, ct);
            }

            this.getLog().info("Removed " + cts.size() + " 'complete' triggers.");
            int n = this.getDelegate().deleteFiredTriggers(conn);
            this.getLog().info("Removed " + n + " stale fired job entries.");
        } catch (JobPersistenceException var7) {
            throw var7;
        } catch (Exception var8) {
            throw new JobPersistenceException("Couldn't recover jobs: " + var8.getMessage(), var8);
        }
    }

从打印的日志上看,大概是红色的代码块出了问题。

跟踪代码进入,里头是去据库取数据。

那么我猜测大概是由于无法获取数据库的数据导致错误。

排除数据库版本的语法问题,

其次排查是否数据库名称区分大小写。

经过分析数据库版本可以排除问题,那么剩下就是表名的大小写问题了。

查询数据库配置,是区分大小写的。

所以修改数据配置。

原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:
1、用root登录,修改 /etc/my.cnf;
2、在[mysqld]节点下,加入一行:
 lower_case_table_names=1
重启mysql服务systemctl restart mysqld

 

再次启动系统~~~
正常。。。。。。。。。。。

posted @ 2022-04-01 18:26  Annkiny  阅读(221)  评论(0编辑  收藏  举报

福建C# .net  技术群