我们已经在一个接收数据文件,将数据转换为对象并将数据持久存储到持久存储的系统上使用karaf 2.3.3版。
最近,我们注意到当karaf停止/重启时,捆绑包会在一段时间内进入某种锁定状态。
以下是一系列事件:
1)在厨师运行期间,当karaf关闭时,捆绑包被部署到部署目录中
2)当karaf出现时,所有捆绑和蓝图正确解析
3)当karaf循环时,捆绑解析正确,但是蓝图进入锁定状态,其中大部分已经启动,但是一个处于停止状态,并且几个可能处于解决状态
4)5分钟(超时)后,停止束进入解决状态,其他一些束进入停止状态
5)有些时候(大部分时间?),如果等待的时间足够长,所有捆绑包最终都会进入活动状态,系统将完全启动
当karaf开始时,我可以使用karaf客户端发出' list'命令并观看捆绑包启动。它们从以下循环:
已安装 - >已解决 - >活跃,
而蓝图的循环来自:
空白 - >创建 - >偶尔使用GracePeriod创建,而依赖服务即将推出。
看起来所有服务都处于活动状态并且所有蓝图都已创建后,一个捆绑包将陷入停止状态,而其他捆绑包将恢复为已解决状态:
[ 136] [Active ] [Created ] [ 80] transformation-services (1.0.3)
[ 137] [Active ] [Created ] [ 80] event-services (0.1.2)
[ 138] [Active ] [Created ] [ 80] ftp-services (0.0.0)
[ 139] [Active ] [Created ] [ 80] ingest-resources (0.0.1)
[ 140] [Active ] [Created ] [ 80] orchestration-app (0.2.3)
[ 141] [Active ] [Created ] [ 80] aws-services (0.4.0)
[ 142] [Resolved ] [ ] [ 80] point-data-service-test (0.2.0)
[ 143] [Active ] [Created ] [ 80] event-consumer-app (1.3.4)
[ 144] [Stopping ] [ ] [ 80] XXXX_no_op_log_transform.xml (0.0.0)
[ 145] [Resolved ] [ ] [ 80] persistence-app (1.3.3)
[ 146] [Active ] [Created ] [ 80] ftp-ingest-endpoint (1.0.2)
[ 147] [Resolved ] [ ] [ 80] secondary_ftp.xml (0.0.0)
[ 148] [Resolved ] [ ] [ 80] event-rest-test (0.0.0)
[ 149] [Resolved ] [ ] [ 80] customer_credentials.xml (0.0.0)
[ 150] [Resolved ] [ ] [ 80] customer1_xml.xml (0.0.0)
[ 151] [Active ] [Created ] [ 80] endpoint-services (0.0.0)
[ 152] [Active ] [Created ] [ 80] scheduler-services (0.1.0)
[ 153] [Active ] [Created ] [ 80] fourhundred_xml.xml (0.0.0)
[ 154] [Active ] [Creating ] [ 80] point-data-service (2.3.3)
[ 155] [Installed ] [ ] [ 80] customer1_csv.xml (0.0.0)
我们有大约20个自定义捆绑包,可以执行各种服务。有些描述了在预定执行程序中运行的服务。有些公开了cxf REST服务。有些是已经放入karaf deploy目录的简单蓝图文件。我们使用白板模式从热部署中删除的蓝图文件中发现,注册和访问服务。
我使用过功能文件或设置捆绑包启动级别,但仍然看到相同的行为。我发现有一些JIRA谈到这个问题是蓝图同步问题(https://issues.apache.org/jira/browse/KARAF-1724 https://issues.apache.org/jira/browse/ARIES-1051),但并没有真正给出任何真正的建议。
有没有人遇到同样的问题,并想出一种可靠的方法来解决它?