次はシナリオです: 私はXMLRPC-C++アプリケーションを持っており、PORT = 8081で接続を待ち受けています。それは次のようXMLRPC-Cライブラリを使用して、アビスサーバーを実装します。複数の接続を処理する方法XMLRPC - C++のAbyss Server
xmlrpc_c::serverAbyss myAbyssServer(
myRegistry, //handler of methods
port, //8081
"xmlrpc_log"
);
私は多くのXMLRPCのメソッドを呼び出すスクリプトから複数の接続を作成するときに、それが正常に動作します。 スクリプトは次のようなものです。 Script1: rpc.method1(parameters); rpc.method2(parameters); rpc.methodN(parameters);
このスクリプトが実行されているときにnetstatとxmlrpc_logで接続をチェックすると、出力はXMLRPC-SERVER:8081 XMLRPC-CLIENT:SOME TIME_WAITのようなものになります。 XMLRPC_CLIENT IPは同じですが、非常にrpc.methodコールは新しい接続を作成します。
同じクライアントで2つのスクリプトを実行すると問題が発生します。つまり、同じスクリプト内のrpc.methodM(パラメータ)は、同じクライアント内の他のスクリプトのrpc.methodN(パラメータ)と同時に実行されます。 これにより、サーバーにクラッシュが発生し、XMLRPC-SERVERはプロセスを再起動するまで停止します。
私はAbyssヘルプを読んでおり、runOnce()メソッドは役に立ちません。デフォルトでは、上記のようにコンストラクタを呼び出すと、AbyssサーバのMaxConnectionsはデフォルトで30、タイムアウト15セグです。
このクラッシュを回避するための設定はありますか?同時に複数のクライアントと複数の接続を同時にサポートする必要があります。これに関連した任意の助け
おかげで、敬具
、 Luchux。