我对Servicemix版本的Fuse ESB 4.4.1有一个奇怪的问题。
有时命令的一部分不会加载而不可用。通常情况下,我经常使用命令grep。这看起来如下:
karaf @根>列表| grep spring
找不到命令:grep
它似乎是随机的,重启通常有帮助。以前版本的Fuse ESB有时会发生,但非常罕见,现在经常发生。有人可以帮助,导致问题的原因是什么?
答案 0 :(得分:1)
也许完全没有关系,但我在Karaf及其依赖项中遇到过一些启动时间竞争条件。最重要的是,我提交了这个:
https://issues.apache.org/jira/browse/KARAF-910 “在FeatureService和ConfigAdmin之间争用解析mvn:URL?”
如果您对pax-url-mvn有一些非标准设置,那么这个特定缺陷只会出现,但这是configadmin异步应用设置的一般问题的症状,所以如果configadmin线程比它更快或更慢,这很重要主OSGi捆绑启动线程。
我没有看到任何与该种族相关的Karaf Command问题,但我的问题表面上看似乎有些捆绑服务随机无法启动。
答案 1 :(得分:0)
'grep'命令有一个全名 - shell:grep。您可以尝试查看是否另一个命令已经安装了相同的短(不合格)名称,并且它变得混乱。
另一种可能性是提供grep服务的bundle已经停止,可能是偶然的。
osgi:list -t 0 -s
将按符号名称显示所有捆绑包的列表,其中包括以下内容:(数字可能不同):
[ 18] [Active ] [Created ] [ 30] org.apache.karaf.shell.commands (2.2.3)
karaf@root> osgi:stop 18
You are about to access system bundle 18. Do you wish to continue (yes/no): yes
karaf@root> help | grep grep
Command not found: grep
karaf@root> osgi:start 18
You are about to access system bundle 18. Do you wish to continue (yes/no): yes
karaf@root> help | grep grep
shell:grep
至于为什么要停止捆绑 - 也许某事(或某人)明确地停止了它?或者它被意外停止了?