Osgi Karaf blueprint在启动时锁定,捆绑包停止

Osgi Karaf blueprint在启动时锁定,捆绑包停止,osgi,blueprint,Osgi,Blueprint,几个月来,我们一直在一个系统上使用karaf版本2.3.3,该系统接收数据文件,将数据转换为对象,并将数据持久化存储 最近,我们注意到当karaf停止/重新启动时,捆绑包将进入某种锁定状态一段时间 下面是一系列事件: 1) 在chef运行期间,当karaf关闭时,bundle被部署到deploy目录中 2) 当karaf出现时,所有捆绑包和蓝图都正确解析 3) 当karaf循环时,捆绑包正确解析,但蓝图进入锁定状态,其中大多数处于启动状态,但一个处于停止状态,几个可能处于解析状态 4) 5分钟(

几个月来,我们一直在一个系统上使用karaf版本2.3.3,该系统接收数据文件,将数据转换为对象,并将数据持久化存储

最近,我们注意到当karaf停止/重新启动时,捆绑包将进入某种锁定状态一段时间

下面是一系列事件:
1) 在chef运行期间,当karaf关闭时,bundle被部署到deploy目录中
2) 当karaf出现时,所有捆绑包和蓝图都正确解析
3) 当karaf循环时,捆绑包正确解析,但蓝图进入锁定状态,其中大多数处于启动状态,但一个处于停止状态,几个可能处于解析状态
4) 5分钟(超时)后,停止捆绑转到已解决状态,其他一些捆绑移动到停止状态
5) 在某些情况下(大多数情况下?),如果您等待的时间足够长,所有捆绑包最终都将进入活动状态,系统将完全启动

当karaf启动时,我可以使用karaf客户机发出“list”命令并观察捆绑包启动。它们从以下位置循环:
已安装->已解决->活动,
当蓝图从以下位置循环时:
blank->Creating->Created,在依赖服务启动时偶尔抛出一个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部署目录。我们正在使用白板模式从热部署中删除的blueprint文件中发现、注册和访问服务

我已经尝试过使用功能文件或设置捆绑包的开始级别,但仍然看到相同的行为。我发现有几个JIRAs谈论的问题是蓝图同步问题(),但没有给出任何真正的建议


有没有人遇到过同样的问题,并想出了一个可靠的解决方法?

我很幸运,完全不使用deploy/目录。我使用的不是karaf客户端,而是运行
osgi:install file:
,而不是将捆绑包放到那里。对于蓝图文件,我运行的是
osgi:install blueprint:file:
。到目前为止,还不错。是的,这是个好主意。deploydir远不如bundle安装机制可靠。我不太清楚为什么,但我有同样的印象。