问题标签 [orbacus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
405 浏览

c++ - 同一进程中是否可以有多个 ORB 对象?

我使用ORBacus。我有一个多线程应用程序,我想在同一个进程中有多个 ORB 对象。这个想法是:每个线程都有自己的 ORB 并连接到不同的服务器

这甚至可能吗?如果是这样 - 如何?


你试过什么? ”:我有

在每个线程中。每个线程调用。每个线程都有Reconnect方法,该方法执行:

这些问题,我有:

  • 当多个线程同时尝试重新连接时,应用程序在m_varOrb->destroy();或 中崩溃CORBA::ORB_init

  • 我尝试同步线程,以便所有线程尝试一一重新连接到配置的服务器(使用 a static mutex)-仍然无法正常工作-当一个线程尝试销毁“其” ORB对象时-再次崩溃destroy(某些断言失败,因为某些引用计数 > 1;看起来像是指向真实 ORB 对象的引用计数指针)

  • 我添加了一个条件等待,所以线程ORB_init只有在所有线程都执行后才开始调用destroy;在 ORB 周围制作了一个单例包装类,同步线程以一个接一个地连接,一切都开始工作得很好。但这意味着 - 只有一个 ORB,所以只有一个服务器。坏的。

所以,所有这些事情都让我觉得,我被允许每个进程只有一个 ORB 对象。我错过了什么吗?

0 投票
2 回答
1468 浏览

c++ - 通过不同的线程使用多个 ORB(多线程多 ORB 客户端应用程序) - 如何?

这个问题与:同一进程中是否可以有多个 ORB 对象?

因此,感谢@BrianKelly,我找到了有关ORB标识符的信息(即使ORBACUS我拥有的所有文档中都没有此类信息)并且我成功创建了一个简单的应用程序,它连接到不同的CORBA服务器并成功执行了多个CORBA请求。

到目前为止,一切都很好。

现在,我想做的是让这个应用程序成为多线程的,并启动一个单独的线程来连接到不同的服务器。但是ORB_init崩溃。

这是一个非常短的代码,我用于测试:

所以,什么时候,一切mtfalse很好,我可以扩展代码来创建一些特定于服务器的对象,执行不同的请求等。但是mttrue第二个线程调用失败ORB_init。请参阅下面的堆栈跟踪。

我很确定我错过了一些非常简单和愚蠢的东西,但是什么?

堆栈跟踪:

0 投票
1 回答
198 浏览

c++ - CORBA 客户端有没有办法访问服务器 IOR 文件?

我在机器 A 上运行了一个 cobra 服务器。它将字符串化对象写入 /tmp/Data.ref。我有客户端在机器 B 上运行。客户端需要访问 /tmp/Data.ref 文件。目前我必须将 Data.ref 文件从机器 A ftp 到机器 B 并自己放入 /tmp 中。服务器不使用命名服务。这些机器没有安装 NFS,所以我不能把文件放在两台机器都可以使用的地方。由于其他原因,我不喜欢编写脚本来自动 ftp 文件。

我想知道是否有办法告诉客户端在哪里读取服务器机器 A 上的 Data.ref ?

其他信息:我正在使用 Orbacus、C++、linux。我希望可能有一个命令行选项或以某种方式指定完整的主机、文件路径名(如果可能的话)。