【日记】2017-10-23 oracle 和线程问题 工单不生成 工单临时表为空

1.工单不生成
收到陕西同事的信息,说某个时间点后,工单就不生成了。
先要来了当天的日志:
...
2017/10/20-11:05:41 [Thread-17] INFO Queueloader.class- 添加触点到队列:未找到可用的触点信息
2017/10/20-11:05:51 [Thread-17] INFO Queueloader.class- 添加触点到队列:未找到可用的触点信息
2017/10/20-11:06:00 [pool-10-thread-1] INFO GenOrder.class- 工单调度任务开始
Exception in thread "Thread-17" org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
### The error may exist in URL [jar:file:/home/triber/taskthread/triber-bui-taskthread-0.1.jar!/BOOT-INF/classes!/mapper/oracle/taskthread/SkillStatusMapper.xml]
### The error may involve org.triber.bui.taskthread.dao.SkillStatusMapper.selectByOrderStatus
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.triber.bui.common.base.MyBatis$SqlSessionTemplate$2.doInSession(MyBatis.java:434)
at org.triber.bui.common.base.MyBatis$SqlSessionTemplate.execute(MyBatis.java:402)
at org.triber.bui.common.base.MyBatis$SqlSessionTemplate.selectList(MyBatis.java:432)
at org.triber.bui.common.base.DaoMyBatis.queryList(DaoMyBatis.java:77)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl.selectByOrderStatusAndGenStatus(SkillStatusServiceImpl.java:89)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl$$FastClassBySpringCGLIB$$8de1cd40.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl$$EnhancerBySpringCGLIB$$5cda1752.selectByOrderStatusAndGenStatus(<generated>)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl.addNewTask(SkillStatusServiceImpl.java:193)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl.addSkillToQueue(SkillStatusServiceImpl.java:168)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl$$FastClassBySpringCGLIB$$8de1cd40.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:651)
at org.triber.bui.taskthread.service.impl.SkillStatusServiceImpl$$EnhancerBySpringCGLIB$$5cda1752.addSkillToQueue(<generated>)
at org.triber.bui.taskthread.schedule.muiltythread.Queueloader.run(Queueloader.java:54)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82)
at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)
at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:84)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
... 18 more
Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:718)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:650)
at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:187)
at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 28 more
2017/10/20-11:15:36 [pool-10-thread-1] INFO GenOrder.class- 获取到已启用活动数:2
全省OCS拯救计划20171018===================1
2017/10/20-11:15:36 [pool-10-thread-1] INFO GenOrder.class- 账期验证
Fri Oct 20 11:15:36 CST 2017
2017/10/20-11:15:36 [pool-10-thread-1] INFO GenOrder.class- 活动所需账期未更新
新入网用户首充特权维系20171019===================1
...
可见 jdbc 链接发生异常。线程 Thread-17 崩溃,导致工单生成停止。
在要来当地部署的代码截图
 

线程的执行体内没有做异常处理。。。。
补充之后,暂时的解决方案:

@Override
    public void run() {
        // TODO Auto-generated method stub
        while(true){
            try {
                updateQueue();
                updateStatus();
                queue.rebuildQueue();
                Tools.waitSomeSecond(WaitSecond);
                if(ifRun && AllRun){
                    //Tools.waitSomeSecond(cycleTime);
                    //System.err.println(CommenBeanHolder.skillStatusService.getClass());
                    //System.out.println("load一个runnner");
                    String rt = CommenBeanHolder.skillStatusService.addSkillToQueue();
                    logger.info("添加触点到队列:" + rt);
                }
            }catch (PersistenceException e) {
                logger.error("工单生成 队列管理线程 运行异常:数据库链接异常");
                e.printStackTrace();
                Tools.waitSomeSecond(WaitSecond);
            }catch (Exception e) {
                logger.error("工单生成 队列管理线程 运行异常");
                e.printStackTrace();
                Tools.waitSomeSecond(WaitSecond);
            }
        }
    }

2.临时表为空
发现某些工单临时表哦为空
初步认为是用户群sql问题
查看日志后发现sql状态正常,在xcloud执行后的用户数量正常
后怀疑是csv文件读取失败或文件为空,未验证
最后查看日志发现数据库异常,可能是表空间满导致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值