【问题标题】:Tibco RV and threadsTibco RV 和螺纹
【发布时间】:2013-06-28 11:46:13
【问题描述】:

在运行使用 IBM Informix 4GL 和 Tibco RV 库 (libtibrv.so) 构建的应用程序时,我遇到了困难。 Informix 4GL 不是线程安全的,Tibco 总是创建一个线程(我认为它创建为 sson,就像我们调用 tibrv_Open() 一样,但可能是在创建传输之后)

由于 4GL 对信号的处理,这会导致应用程序崩溃(当进程运行 Tibco 线程时会运行 4GL 信号处理程序)。

使用调试器时,我注意到这个 trhead 似乎在循环中...它调用 select(),超时时间为 10 秒。

我的问题是: - 有没有办法避免创建线程? (我假设不是) - 有没有办法配置我上面提到的超时? - 如果有人可以向我解释这个线程的目的,我将不胜感激。我假设我们将不得不忍受它,但很高兴了解它为什么在那里。也许它存在检查服务器超时?

P.S.:应用程序使用 C 与 Tibco 交互。我不认为这是非常相关的,但当前场景是在 Tru64 上,我相信 Tibco 集合点是 6.9。该环境使用 pthread 库。这些都是非常旧的版本。但客户正在转向更新版本。

非常感谢任何 cmets。

【问题讨论】:

    标签: multithreading crash informix tibco 4gl


    【解决方案1】:

    我没有遇到过 Tibco,所以我不确定我是否能提供帮助,但是......

    我建议创建一个单独的进程来运行 Tibco 代码,同时 I4GL 调用它当前用于与 Tibco 库通信的同一个 C 接口,但会破坏实现,以便函数通过管道或套接字将消息发送到Tibco 进程(将由初始化函数启动)。这样做的好处是,它将线程从 I4GL 代码(它会导致麻烦)中取出到一个纯 C 和 Tibco 进程中,可以编写该进程以确保它不会造成问题。

    【讨论】:

      猜你喜欢
      • 2010-11-28
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多