0

我正在尝试在全新安装的 CentOS 6.4 32 位上安装 REDHAWK v1.8.2,但我无法启动omniNames 和omniEvents。

sudo /sbin/service omniEvents stop
Stopping CORBA event service: omniEvents

sudo /sbin/service omniNames stop
Stopping omniNames                                         [  OK  ]

sudo /sbin/service omniNames start
Starting omniNames                                         [  OK  ]

sudo /sbin/service omniEvents start

Starting CORBA event service on port 11169: omniEvents: [25848]: Warning - failed to resolve initial reference 'NameService'. Exception: TRANSIENT
omniEvents.

我尝试通过调用命名客户端来验证omniNames 是否真的在运行,但出现错误(见下文),因此omniNames 似乎没有成功启动。

nameclt list
Caught a TRANSIENT exception when trying to validate the type of the 
NamingContext. Is the naming service running?

作为调试过程的一部分,我尝试终止omniNames 进程并以不同的方式启动它(见下文)。

sudo killall omniNames
omniNames -start

Wed Nov 13 21:08:08 2013:

Starting omniNames for the first time.
Error: cannot create initial log file '/var/omninames/omninames-orion.log': 
No such file or directory

You can set the environment variable OMNINAMES_LOGDIR to specify the
directory where the log files are kept.

我不确定为什么omniNames 无法创建日志文件,因为我验证了/var/omninames 文件夹确实存在,甚至以root 身份启动omniNames 也会产生相同的错误。无论如何,我将日志目录设置到我的桌面以规避错误(见下文)。

export OMNINAMES_LOGDIR=/home/$USER/Desktop/logs
mkdir -p /home/$USER/Desktop/logs
omniNames -start

Wed Nov 13 21:09:17 2013:

Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000005c000000010102000a00000031302e322e382e333500f90a0b0000004e616d6553657276696365000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.

尽管看起来omniNames 已成功启动,但当我打开另一个终端窗口并调用命名客户端时,我得到与以前相同的错误(见下文)。

nameclt list
Caught a TRANSIENT exception when trying to validate the type of the 
NamingContext. Is the naming service running?

我在 /etc/omniORB.cfg 文件中所做的唯一修改是为 InitRef 添加行(见下文)。

InitRef = NameService=corbaname::localhost
InitRef = EventService=corbaloc::localhost:1169/omniEvents

另外,我没有连接到互联网,所以我的 CentOS 版本没有从基本版本更新,除了手册附录 J 中推荐的 boost 库(http://sourceforge.net/projects/redhawksdr/files /redhawk-doc/1.9.0/REDHAWK_Manual_v1.9.0.pdf/download)。

4

1 回答 1

2

看起来问题出在您的配置中。您的配置文件中有错误的端口。它应该是端口 11169,但是您列出了端口 1169。

有关详细信息,请参阅:http ://redhawksdr.github.io/Documentation/mainch2.html#x4-120002.6 。

如果这不是问题,关于omniOrb 的一些其他观察和技巧。

  • 有时,omninames/omnievents 可能会进入糟糕的状态。修复方法是删除由 omniNames 和 omniEvents 创建的日志文件并重新启动服务。它们位于:

    /var/lib/omniEvents/*

    /var/omniNames/*

您需要成为 root 才能删除这些文件。我总是忘记它们的位置,并且经常执行“locate omni | grep -i log”来提醒自己,但您必须以 root 身份执行此操作,因为它们对标准用户不可见。

  • 虽然没关系,但我个人发现使用 127.0.0.1 比 localhost 更可靠。出于某种原因,过去在配置文件中的虚拟机中使用 localhost 给我带来了问题。考虑使用 127.0.0.1 而不是 localhost。这也是当前版本的 Redhawk Manual 推荐的内容。

  • 您提到您正在使用 Redhawk v1.8.2。仅供参考,1.8 系列中最新的 REDHAWK 版本目前是 v1.8.5,最近也发布了 1.9.0。

希望这能让你启动并运行!

于 2013-11-14T17:04:04.837 回答