- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
场景是下一个:我有一个 XMLRPC-C++ 应用程序,监听 PORT=8081 上的连接。它实现了一个 Abyss 服务器,使用 xmlrpc-c 库如下:
xmlrpc_c::serverAbyss myAbyssServer(
myRegistry, //handler of methods
port, //8081
"xmlrpc_log"
);
当我从调用许多 XMLRPC 方法的脚本创建多个连接时,它工作正常。脚本是这样的: 脚本 1: rpc.method1(参数); rpc.method2(参数); rpc.methodN(参数);
如果我在执行此脚本时使用 netstat 和 xmlrpc_log 检查服务器中的连接,则输出类似于 XMLRPC-SERVER:8081 XMLRPC-CLIENT:SOME TIME_WAIT。尽管 XMLRPC_CLIENT IP 是相同的,但在调用 rpc.method 之前它会创建一个新连接。
当我在同一个客户端中执行两个这样的脚本时,问题就出现了。这意味着,在同一个客户端中,一个脚本中的 rpc.methodM(parameters) 调用与另一个脚本中的 rpc.methodN(parameters) 同时执行。这会导致服务器崩溃,并且 XMLRPC-SERVER 会一直停机直到进程重新启动。
我看了Abyss的帮助,runOnce()方法没有帮助。默认情况下,如上调用构造函数,Abyss 服务器的 MaxConnections 默认为 30,超时 15 段。
是否有一些配置可以避免这种崩溃?我将需要同时支持多个客户端和多个连接。
感谢与此相关的任何帮助,
真诚的,卢修斯。
最佳答案
嗯。显然,服务器正在处理多个连接并支持使用 pthreads 的多线程。问题应该出在我的 RPC 调用执行的代码中,我猜是因为可重入/线程安全问题。
关于c++ - 如何在 XMLRPC 中处理多个连接深渊服务器 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6649802/
如何重写以下内容以使用我的 genomeID 正确替换变量? (我在 Spades 和 Masurca 汇编器中使用了这种方法,所以 Abyss 不喜欢这种方法,我需要一个变通方法) 我试图在集群服务
我是一名优秀的程序员,十分优秀!