|
分類:[VB6 以前]
現在、クラサバ系システムでクライアントからのアクセスに対して、サーバがVB6のDLL(ActiveX)で通信(受信)処理を し、VB.NETアプリにイベント通知をするようなシステムを構築しております。DLLは通信処理、解析のみです。
通常のアクセス頻度では問題ないのですが、サーバへのアクセスを集中(高負荷)にすると、まれにアプリにイベントが 起きずにDLL内で正常終了してしまい、アプリ処理ができないことがあります。
イベント発生には、DLL内でRaiseEventを用い、アプリではDLLのイベントハンドラを用いております。
ログを見る限り、DLL内のRaiseEvent部は処理していると思われます。
システム構成としては 各クライアント毎に専用のポートと同内容のアプリ(VB.NET)を用意し、各アプリがそれぞれDLL(VB6)を参照している 構成になっています。
(質問) RaiseEventは集中アクセスすると、イベントが発生しないことがあるのでしょうか? (アプリ、DLLのどちらに問題があるか分かっておりません。) また、RaiseEventによりイベントが起きたかどうかを呼び出し側(DLL)から把握する方法(メソッド)は あるのでしょうか?RaiseEventは非同期処理になるのでしょうか?
ご教授お願いします。
|