间歇性找不到数据源

报错如下

U]{XMWS7_Y7JKU0CU]%A{KH.png

service代码如下

I34660I9E{_64LWU2HFVF27.png

数据源初始化如下

0O}AMJB]W@@X11@ZD(IA_3U.png

Constants中DB如下

image.png

--------------------------------分割线-----------------------------------

目前已排除拼写错误的可能性

而且报错是偶尔出现,今天出现了几次,上次出现是几个月前

实在不知道怎么定位

求指导

评论区

JFinal

2018-06-28 10:17

看到你的代码中有一行 arp.start(),估计你是在 "非web“ 项目中使用 ActiveRecordPlugin,那么要注意这个 arp.start() 需要一定的时间,如果在启动完成之前就开始有另一个新的线程在使用数据库操作 API,就必然会报这个异常

建议找一个合适的地方先启动整个系统,在系统启动完毕以后,别的使用线程才开始工作

jHans

2018-06-29 09:24

@JFinal 问题解决了,大致以下几个步骤
首先排除了启动先后顺序的问题,因为前置的sql是执行完成了,然后再通过命令行发布流式计算。
然后在单独计算节点内初始化数据源,可以访问。

大致推断是jstorm未能把jfinal的数据源一并下发至计算节点。

后来感觉写法太僵硬,于是用redis代替了Db。(redis也需要在节点内启动)

至此问题解决

JFinal

2018-06-29 18:02

@jHans 用 RedisPlugin 替换了 ActiveRecordPlugin ?

jHans

2018-07-02 15:37

@JFinal 是的,就是不用数据库了,活动消息放到redis里面
也是偷懒,因为之前数据库查询的数据其实也是活动数据,没必要二次查询
题外话-jstorm各个节点对插件的下发真是看不懂,可能是我打开方式不对吧

热门反馈

扫码入社