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 的实现,然后使用与 Corba 兼容的任何语言进行编程
CORBA 中是不是有与 writeReplace 等价的方法?