OpenDDS踩坑(2)-DCPSInfoRepo add_domain_participant returned invalid id

本文针对OpenDDS新手处理无法正常运行测试项目问题。

测试OpenDDS/test/DCPS/Messager

【问题】:启动subscriber add_domain_participant returned invalid id.错误。可加入-NOBITS参数解决。
OpenDDS/test/DCPS/Messager 测试软件启动错误。在构建完成ACE-TAO-OpenDDS后,试验运行 publisher-subscriber。于是按照最简单的方式(ior),分别启动两个控制台,输入命令行,启动DCPSInfoRepo服务,并生成repo.ior文件:

DCPSInfoRepo -DCPSDebugLevel=10 -ORBDebugLevel 6 -ORBLogFile=.\DCPS.log -o repo.ior

再在另一个控制台中输入命令,启动subscriber:

subscriber.exe -DCPSInfoRepo file://repo.ior

即输出异常,subscriber失败。

(6800|6736) EXCEPTION, ERROR: InfoRepoDiscovery::add_domain_participant:
user exception, ID 'IDL:OpenDDS/DCPS/Invalid_Domain:1.0'
(6800|6736) ERROR: DomainParticipantFactoryImpl::create_participant, add_domain_participant returned invalid id.
d:\opendds_3.13\ddssrc\tests\dcps\messenger\subscriber.cpp:61 main() ERROR: create_participant() failed!


【注意】该问题可能是因NOBITS参数导致的。具体原因未确定。
解决办法:
启动DCPSInfoRepo 加入-NOBITS 参数。

DCPSInfoRepo -NOBITS -DCPSDebugLevel=10 -ORBDebugLevel 6 -ORBLogFile=.\DCPS.log -o repo.ior

启动subscriber

subscriber.exe -DCPSInfoRepo file://repo.ior

启动publisher:

publisher.exe -DCPSInfoRepo file://repo.ior

Messager 示例正常运行:

测试OpenDDS/test/DCPS/Messager ORBListenEndpoint方式

(1)参考网上资料
创建一个发布者、订阅者配置文件config.ini:

[common]
ORBDebugLevel=0
DCPSDebugLevel=10
DCPSTransportDebugLevel=5
ORBLogFile=.\pub_sub.log[domain/1]
DiscoveryConfig=myDisConf[repository/myDisConf]
// 192.168.22.1 可以是vmware的VMNet8虚拟网卡地址。
RepositoryIor=192.168.22.1:12345[transport/myTrans]
transport_type=udp
local_address=192.168.22.1:17869

(2)启动DCPSInfoRepo服务
【注意】-NOBITS

DCPSInfoRepo -NOBITS -DCPSDebugLevel=10 -ORBDebugLevel 6 -ORBLogFile=.\DCPS.log -ORBListenEndpoints iiop://192.168.22.1:12345

(3)先启动订阅

subscriber.exe -DCPSConfigFile config.ini

(4)启动发布者

publisher.exe -DCPSConfigFile config.ini

运行结果正常:

2个节点间传输

在windows10主机与Windows7 x86虚拟机之间传输。
【问题】Windows7 x86上运行OpenDDS 32位debug版,出现 OpenDDS_Dcpsd.dll报错。
【处理】将OpenDDS编译为Release版Windows7 x86上运行。

(1)配置

需要注意:1)用corbaloc::host_ip指定绝对地址。
DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo
2)发布、订阅指定本机地址
local_address=192.168.22.128:16879
例如:订阅者配置subconfig1.ini

 [common]
DCPSDebugLevel=0
DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo
DCPSGlobalTransportConfig=config1[config/config1]
transports=tcp1[transport/tcp1]
transport_type=tcp
local_address=192.168.22.128:16879

发布者配置pubconfig1.ini ,注意:DCPSInfoRepo服务器在publiaher host端。

[common]
DCPSDebugLevel=0
DCPSInfoRepo=corbaloc::192.168.22.1:12345/DCPSInfoRepo
DCPSGlobalTransportConfig=config1[config/config1]
transports=tcp1[transport/tcp1]
transport_type=tcp
local_address=192.168.22.1:16879

(2)启动DCPSInfoRepo服务器

DCPSInfoRepo -NOBITS -ORBListenEndpoints iiop://192.168.22.1:12345 -ORBDebugLevel 6 -ORBLogFile DCPSLog.log

(3)在虚拟机host启动subscriber

.\subscriber.exe -DCPSConfigFile .\subconfig1.ini

(4)在主机启动publisher

.\publiaher .exe -DCPSConfigFile .\publiaher 1.ini

处理perl run_test.pl 发生 add_domain_participant returned invalid id.`错误

在windows10 + vs2015 + opendds 3.12,以perl run_test.pl方式运行测试程序,由于 -NOBITS 未设置产生的错误。
解决办法:找到 $(DDS_ROOT)\bin\PerlDDS\Run_Test.pm文件。
打开该文件,找到 并将“{nobits} = 0;”修改为:

 $self->{nobits} = 1;

参考:
(1)OpenDDS在多台机器上使用IP+PORT方式连接DCPSInfoRepo
https://blog.csdn.net/lh18040519447/article/details/102552332
(2)OpenDDS启动集中发现服务DCPSInfoRepo的多种方式
https://blog.csdn.net/pony12/article/details/79471153

OpenDDS踩坑(2)-DCPSInfoRepo ERROR add_domain_participant returned invalid id相关推荐

  1. springboot踩坑日记—nacos: Error watching Nacos Service change

    springboot踩坑日记-nacos: Error watching Nacos Service change Spring Boot :: (v2.1.5.RELEASE) 错误代码: 07-3 ...

  2. TCPIP网络编程第一章踩坑过程 bind() error connect() error

    目录 服务端和客户端代码 设备选择 过程 最近在学习TCP/IP网络编程,第一章就卡了好久,特地写这个来记录过程 服务端和客户端代码 hello_client,c #include <stdio ...

  3. 深度学习踩坑系列之一 Error: module 'pandas' has no attribute 'core'

    Error: module 'pandas' has no attribute 'core' 解决方法:重装pandas pip uninstall pandas pip install pandas

  4. 「IOS 网络踩坑」错误 Error Domain=NSURLErrorDomain Code=-1004

    一.原因 两种可能 1.1 网络原因 请检查你的网络是否连接 建议使用浏览器搜索网页,因为 App 可能自带缓存 1.2 使用 LocalHost 本地测试时使用 LocalHost 上线时可能报错 ...

  5. [踩坑]packets.go:428: busy buffer invalid connection

    最近在写一个导出数据库数据的小工具,但是发现对于超大表,就会包开头提到的错误.结论就是我们使用的go-sql-driver里面的rows查询类似一个游标,但是mysql中有超时查询时间,这个时间到了 ...

  6. html2canvas图片的文字偏移,html2canvas在Vue项目踩坑-生成图片偏移不完整

    背景 最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来. 在项目遇到的坑是图片能生成,可是生成的图片总是 ...

  7. 厚积薄发打卡Day55 :[狂神]Redis详细教程(上)<从Nosql 概述到WSL安装Redis踩坑记录>

    视频教程:[狂神说Java]Redis最新超详细版教程通俗易懂 Nosql概述 时代背景: 1.单机数据库时代 90年代:一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用 ...

  8. [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录

    [视觉Slam十四讲(2)踩坑记录]第3讲:Fatal error :Eigen/core没有那个文件或目录 问题描述: 在学习SlamBook2-ch3中对Eigen矩阵运算包内容时,编写好相关代码 ...

  9. Spring Boot踩坑记之Whitelabel Error Page问题

    在学习Spring Boot时,了解到页面推荐采用freemarker的ftl格式文件,好像这玩意比jsp功能强大吧,那我也就学习下这个,毕竟多学总没有坏处.然后在后台跳转前端时浏览器报错Whitel ...

最新文章

  1. prometheus+grafana+pushgateway+node-exporter+consul搭建监控系统
  2. 双层for循环时间复杂度_2 常见的时间复杂度实例
  3. wxWidgets:wxCondition类用法
  4. 2019年末逆向复习系列之努比亚Cookie生成逆向分析
  5. CentOS 7.0 上安装和配置 VNC 服务器
  6. 少儿故事:小乌鸦智斗老鹰
  7. 机器学习速成课程 | 练习 | Google Development——编程练习:提高神经网络的性能
  8. SQL Server AlwaysOn集群在辅助副本创建只读账号
  9. 本科是最底层?学历真的那么重要么?
  10. Android系统信息获取 之九:TelephonyManager类
  11. python定义一个字符串数组_python 变量,数组,字符串
  12. Unity 脚本入门教程
  13. 浅谈西门子840d主轴速度控制_西门子 840D 数控系统故障诊断与维修
  14. 什么是商业智能BI,谈谈商业智能BI的定义与作用
  15. 微信二维码图片长按没有出现“识别图中的二维码”
  16. 亚马逊家居行业中办公室家具市场前景分析及货源分享
  17. android模拟win98中文版,Android模拟Win 98模拟器(Bochs)
  18. 计算机的冷启动与热启动
  19. JavaWeb项目1-QQZone
  20. 国内外知名的IT社区

热门文章

  1. 电脑连上网线但是不能用linux,为什么无线网络连接上却不能上网,详细教您电脑连上无线网却不能上网怎么办...
  2. 如何使用matlab自带的Gabor?
  3. 服务降级 熔断机制
  4. python简单登陆QQ邮箱给别人发送邮件
  5. 钉钉的收费 [钉钉深圳研发团队 denny/2016.01.06/ 59888745@qq.com]
  6. C语言:白球红球黑球
  7. 解决Caused by: java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgument
  8. npm gyp ERR问题
  9. c#下实现ping操作【转】
  10. 【Halcon算子】get_contour_attrib_xld和get_contour_global_attrib_xld