問題タブ [rpc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 非同期リモート呼び出し
別の Windows サービスで実行されているリモーティング シングルトン サーバーがあります (彼女を RemotingService と呼びましょう)。RemotingService のクライアントは ASP.NET インスタンス (多数) です。
現在、リモート クライアントは RemotingService を呼び出し、RemotingService 呼び出しが処理されている間はブロックします。ただし、リモーティング サービスは非常に複雑になり (より多くの RPC 呼び出しと複雑なアルゴリズムを使用)、asp.net ワーカー スレッドが非常に長い時間 (4 ~ 5 秒) ブロックされます。
この msdn articleによると、リモート RPC ごとに asp.net ワーカー スレッドがブロックされるため、これを行うとうまくスケーリングされません。非同期ハンドラーに切り替えて、asp.net ワーカー スレッドを解放することをお勧めします。
非同期ハンドラーの目的は、ハンドラーが元の要求を処理している間に、ASP.NET スレッド プール スレッドを解放して追加の要求を処理できるようにすることです。
これは問題ないように見えますが、リモート処理の呼び出しが依然としてスレッド プールからスレッドを使用しています。これは、asp.net ワーカー スレッドと同じスレッド プールですか?
asp.net ワーカー スレッドを解放するために、リモート シングルトン サーバーを非同期システムに変えるにはどうすればよいですか?
いくつかの重要な情報を見逃している可能性があります。質問に答えるために他に知っておくべきことがあれば教えてください。
soap - SOAPは現在レガシーテクノロジーですか?
人々はまだSOAPサービスを書いていますか、それともアーキテクチャの保存期間を過ぎたテクノロジーですか?人々はバイナリ形式に戻っていますか?
windows - RPC例外の意味/原因'インターフェイスがエクスポートされていません。'
MSRPCを使用して構築されたかなり標準的なクライアント/サーバーアプリケーションがあります。クライアントとサーバーの両方がC++で実装されています。クライアントはサーバーへのセッションを確立し、最終的にセッションを閉じる前に、一定期間サーバーに対して繰り返し呼び出しを行います。
ただし、定期的に、特に高負荷の条件下では、RPC例外がコード1754で表示されますRPC_S_NOTHING_TO_EXPORT
。
これはセッションの途中で発生するようです。ユーザーがしばらくログオンして正常に呼び出しを行った後、呼び出しの1つが不可解にこのエラーを返します。私たちが知る限り、サーバーは何かがうまくいかなかったという兆候を受け取りません-そしてそれは間違いなくクライアントが行った呼び出しを見ません。
エラーコードにも永続的な影響があるようです。クライアントに接続を再試行させることも機能しません。ただし、ユーザーが同じクライアントとサーバー間で同時にアクティブな複数のユーザーセッションを持っている場合、他の接続は影響を受けません。
本質的に、私は2つの質問があります。
誰かが
RPC_S_NOTHING_TO_EXPORT
意味を知っていますか?MSDNのドキュメントには次のように書かれてい"No interfaces have been exported."
ます。この時点まで、セッションは同じ呼び出しの多数のインスタンスに対して正常に機能していました...誰かが本当の問題を特定する方法について何かアイデアがありますか?注:ネットワークトラフィックのキャプチャは、可能であれば避けたいものです。問題は散発的であるため、発生する前に数ギガバイトのトラフィックを通過する可能性があります。
windows - 詳細な DCOM ドキュメントはどこにありますか?
私は、DCOM を使用して本質的に複数のピア間で通信するアプリケーションに取り組んでいます。通常の使用では、別々のマシン上のインスタンスがさまざまなオブジェクトを相互に提供します。歴史的に、これが機能するために、いくつかの魔法の呪文を使用してきました。その主なものは、ユーザーがすべてのマシンで同じ名前のアカウントにログインする必要があることです (これらはローカル アカウントであり、利用可能なドメインがないことに注意してください)。明らかに、これは改善できるユーザー エクスペリエンスの側面です。
DCOM認証がどのように機能するかをよりよく理解したいのですが、CoInitializeSecurity()、CoSetProxyBlanket()などのMSDNドキュメントから全体を組み立てるのは困難です。DCOM 操作がどのように受け入れられるか、または拒否されるかについての完全な説明はありますか? 書籍、雑誌、WEB、どんなフォーマットでも構いません。
java - 完全な HTML コンテンツをクライアントにプッシュバックするときに、サーバー側で一時ファイルの作成を回避するにはどうすればよいですか?
Tomcat で実行されているサーバー側アプリケーションで、インターネットから取得したランダムなユーザー要求サイトに基づいて、完全な HTML ページ (ヘッダー付き) を生成しています。クライアント側アプリケーションは、特定の Web ページの処理を要求するために非同期コールバックを使用します。処理には時間がかかることがあるため、ポーリングを介して進行状況をユーザーに通知したいので、コールバックを使用します。
サーバー側では、Web ページが取得された後に処理され、「拡張」バージョンが作成されます。次に、このバージョンをユーザーに戻す必要があります。クライアント側アプリケーションのページの一部としてページを表示することはできません。
現在、サーバーは一時ファイルを生成し、そのファイルへのリンクを送り返します。これは明らかに準最適です。
私が思いつく次善の解決策は、HTML コンテンツをその md5-sums または sha1-ids と一緒に保存し、ハッシュ ID を引数としてサーブレットへのリンクを送り返すキャッシング DB を作成することです。次に、サーブレットは caching-DB からサイトを要求します。
より良い解決策はありますか?そうでない場合、どの DB バックエンドを提案しますか? 私はSQLiteについて考えています。<html>
解決すべき問題の一部は、ページを</html>
クライアント側にプッシュするにはどうすればよいですか?
performance - Web サイトのパフォーマンスの観点から見た DTO の長所と短所は何ですか?
Web サイトのパフォーマンスの観点から見た DTO の長所と短所は何ですか? (データベースがWebサーバーとは別のアプリサーバーでアクセスされ、Webサーバーがデータベースに直接アクセスできる場合について話しています。)
api - 次世代火星探査機の制御 API を RPC ではなく RESTful に設計しますか?
これが「ディスカッション」の質問に近い場合はご容赦ください。ただし、適切な説明とともに、はい/いいえの回答をいただければ幸いです。
次世代の火星探査車などのロボット用の制御 API を設計して実装する必要があるとします。RESTful の原則に従ってこの API を設計しますか、それとも XMLRPC などの従来の RPC を使用しますか?
「ロボット」は仮想マシンの集まりですが、似たようなことをしなければならないので、これを尋ねます。REST の支持者としてよく知られているかなり説得力のあるエンジニアから、API を RESTful にするよう強く勧められています。私は REST の原則を使用したことがなく、低レベルのプロセス間 API の設計にどのように適合するかを理解するのに苦労しています。REST には、変更可能なデータ リポジトリと対話するというテーマが盛り込まれているように見えますが、通常は何ホップも離れています。私がやろうとしていることは、ロボットを厳密に制御するようなものです。抽象的に言えば、ロボットが単なるデータ リポジトリであると主張できることはわかります。「PUT 左折」、「PUT 移動 100 メートル」、「外気温を取得」。しかし、これはかなり不自然なモデルのようです。確かに、キャッシュやプロキシから何のメリットも得られません (「こんにちは、JPL? これはキャンベラにある Akamai co-lo です。今、ローバーを引き継いでいますよね?」)
では、RESTful アーキテクチャはここで役に立ちますか? インタラクションが非常に狭い範囲に集中している場合でも、RPC よりも優れているのでしょうか?
language-agnostic - 設計の質問:IPCメカニズムに透過的にアクセスするにはどうすればよいですか?
私はこれをやりたいです(特定の言語はありません):
またはこれ:
fooが実際にIPCを介してプログラムに接続され、そのメソッドとオブジェクトにアクセスするサービスである場合、一部のレイヤーは実際にネットワークを介してメッセージを送受信します。
選択できるものがたくさんあるので、今、私は実際にはIPCメカニズムを探していません。XMLベースではなく、sである可能性があります。th。Googleのプロトコルバッファ、dbus、CORBAなど。私がよくわからないのは、他のオブジェクトと同じようにIPCにアクセスできるようにアプリケーションを構造化する方法です。
言い換えれば、プロセスの境界を越えて透過的にマッピングするOOPをどのように作成できますか?
これは設計上の問題であるというわけではなく、私はまだアーキテクチャ全体のかなり高いレベルで作業しています。ですから、私はこれがどの言語になるかについてはまだかなり不可知論者です。ただし、C#、Java、Pythonはすべて使用される可能性があります。
java - Web サービスの単純な Java クライアント コード - QName と関係がありますか?
Tomcat/Axis で実行している REALLY BASIC Web サービスを呼び出す行に到達すると、次のエラーが発生します。
QName に何か問題がありましたか? - それに関する有用な情報さえ見つかりません。
私のクライアントコードは以下の通りです:
私の Web サービス コードは非常に基本的なものです。入力文字列を少しの連結テキストで返す単純なクラスです。
windows - VistaでのMicrosoftAsyncRPCのクラッシュ
クライアントとサーバーが同じマシンで実行されている場所でRPC呼び出しを行うプログラムに取り組んでいます。サーバーで待機しているときに応答しなくなるという問題が発生したため、クライアントがサーバーへの呼び出しでタイムアウトになるようにします。
この問題を解決するために、非同期RPC呼び出しを使用し、タイムアウトした場合はキャンセルしました。
これはXPでは正常に機能していましたが、Vistaでクラッシュが見つかり、毎回これらのクラッシュを再現できるテストプログラムがあります(Vistaでのみ、XPではありません)。これはMicrosoft側のバグのようです。クラッシュしたスレッドからの呼び出しスタックには、コードへの呼び出しは含まれていません。クラッシュダンプからの情報は次のとおりです。
誰かが同様の問題を抱えていて、回避策を見つけたのではないかと思っていましたか?たぶん、この状況にはRPC以外のものを使用する方が良いでしょうか?