Sun/Oracle CORBA 实现是不是有任何线程池以及如何配置它?

Posted

技术标签:

【中文标题】Sun/Oracle CORBA 实现是不是有任何线程池以及如何配置它?【英文标题】:Is there any thread pool for Sun/Oracle CORBA implementation and how to configure it?Sun/Oracle CORBA 实现是否有任何线程池以及如何配置它? 【发布时间】:2014-09-17 21:16:03 【问题描述】:

我想知道我的 CORBA 服务器可以同时处理多少个客户端请求

    服务器是否为每个新的客户端请求创建一个新线程? 有线程池吗? 默认线程池大小是多少? 如果我们达到最大尺寸会发生什么?新线程是否在队列中等待? 池中非活动线程(已用于客户端的线程)的空闲时间是多少? 我们能否配置这些参数(池大小和空闲时间)?

我进行了大量研究,但没有找到有关 Sun/Oracle 官方 CORBA 实现 (JDK) 的这些问题的真正答案。在 Oracle 文档 (link) 中,我们可以看到: -Djava.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory -Dcom.sun.appserv.iiop.orbconnections=值

=> 我不确定这个参数到底是什么,而且这个参数可能不兼容所有的JVM,它的默认值是“one”。

我知道对于 RMI,有一个“sun.rmi.transport.tcp.maxConnectionThreads”参数用于更改默认线程池大小(已经是“无限制”)。非活动线程空闲时间为 1 分钟... RMI 受 CORBA 启发,所以 Sun/Oracle 可能为它们设置了相同的参数?

谢谢

【问题讨论】:

【参考方案1】:
    服务器是否为每个新的客户端请求创建一个新线程?

Sun CORBA 实现有线程池。

    有线程池吗?

是的。 Sun CORBA 实现有线程池。

    默认线程池大小是多少?

你不必担心这个。

    如果我们达到最大尺寸会发生什么?新线程是否在队列中等待?

我使用 JacORB,它们的默认大小是 100,而在以前的版本(JacORB 2.2.2)中,客户端在服务器达到这个大小时一直被杀死。

    池中非活动线程(已用于客户端的线程)的空闲时间是多少?

不知道。我认为实现使用线程池。

    我们能否配置这些参数(池大小和空闲时间)?

不知道。我想你不应该担心它。

** 我认为 JacORB 比 SUN 的实现要好。它有 CORBA 2.3。

** 警告:您需要担心本地 ThreadLocal。因为当客户端的请求结束时,Thread 又回到了 Thread Pool,所以你可以在一个新的请求 ThreadLocal 中获取一些数据。

【讨论】:

以上是关于Sun/Oracle CORBA 实现是不是有任何线程池以及如何配置它?的主要内容,如果未能解决你的问题,请参考以下文章

Corba AMI 和连接管理

如何在我的计算机上安装 Corba 的实现,然后使用与 Corba 兼容的任何语言进行编程

CORBA 测试自动化

CORBA 中是不是有与 writeReplace 等价的方法?

Corba 客户端 - Python 和 Corba 服务器 - Java

如何将 Corba 结构(包含“任何”类型)复制到 C++ 结构中