- PR -

C#でwindowsサービスへのイメージデータ渡し

1
投稿者投稿内容
まろ茶
会議室デビュー日: 2004/07/28
投稿数: 17
投稿日時: 2005-07-04 17:33
いつもお世話になっております。

windowsサービスにイメージデータをbyteの
二次元配列値渡しで渡しています。
何件かまではうまく結果が返ってきたのですが、
何百件というデータになるといつまで経っても応答が無く、
Exceptionエラーすら返ってきません。

この現象の回避方法等ご存知の方いらっしゃいましたら
ご教授頂けないでしょうか?

[ メッセージ編集済み 編集者: まろ茶 編集日時 2005-07-04 17:51 ]
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-04 18:18
回避方法はわからないですが、原因追求が先かと。。

とりあえず、どこまで処理されているのか見るために、
サービス側でイベントログに書き込んでみては?

あと、もう少し情報が必要かと。
・サービス側でイメージをどう処理しているのか。
・サービスはローカル/リモート?
・具体的なデータ量と、応答速度。(正常な場合と、NGになる境界)
・正常な結果は、どうやって判断しているのか。
・サービスの動いているときの、マシンのCPU状態。
・途中でサービスと停止したら、どうなったか。
このへんの情報は出せそうですよ〜。

思いつきですけど、こんなのも原因になるかもです。
・マーシャル化に時間が取られている。
・サービス側でスレッドを作りすぎ。

// 思いついたものを編集追加(編集多すぎ・・)

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-07-04 18:30 ]
まろ茶
会議室デビュー日: 2004/07/28
投稿数: 17
投稿日時: 2005-07-04 18:42
返信ありがとうございます。
情報不足で申し訳ありませんでした。

イベントログへの書き込みですが、どうもサービスの中の処理まで
到達していないようなのです。
というのも

・イベントログを書き込む処理を組み込んでいるにも関わらず、
 ログが書かれていない。
・デバックプロセスを使用し、ブレイクポイントを張って実行しても
 最初に走るはずのメソッドでつかまえられない。

ある件数までは問題ないのですが、
何百件となると上記のようなことが起こります。

・サービス側でイメージをどう処理しているのか。
 イメージに対して暗号化を書け、ファイルで保存。

・サービスはローカル/リモート?
 リモートです。

・具体的なデータ量と、応答速度。(正常な場合と、NGになる境界)
 1078KB × 500件でテストを行っています。
 応答はいつまで経っても返ってこないか、OutOfMemoryになります。

・正常な結果は、どうやって判断しているのか。
 ファイルに書き込むまでの処理を終えると戻り値trueを返しています。

やはり単純にメモリが足りないと言うことなのでしょうか?
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-05 10:00
引用:
・イベントログを書き込む処理を組み込んでいるにも関わらず、
 ログが書かれていない。
・デバックプロセスを使用し、ブレイクポイントを張って実行しても
 最初に走るはずのメソッドでつかまえられない。


サービスの呼び出しが、開始されてなさそうですね。

引用:

1078KB × 500件でテストを行っています。
 応答はいつまで経っても返ってこないか、OutOfMemoryになります。



えっと・・約500MB分のデータを一度に渡そうとされているのでしょうか。
もしそうなら、クライアント側のCPUとメモリ、回線も大変そうです。。
サービス/クライアントのどちらでOutOfMemoryが発生したのかわかりませんが、
いずれにせよ、メモリ割当てに失敗してますね。(メモリ使いすぎ)

1件ずつ処理すれば良さそうですけど?
まろ茶
会議室デビュー日: 2004/07/28
投稿数: 17
投稿日時: 2005-07-05 13:11
OutOfMemoryはクライアント側で発生しています。

確かに一件ずつの処理であればこの現象は起きないのですが、
システムの仕組み上、どうしても一件ずつの処理で対応ということが出来ないのです。

対策として、処理件数に何件までと言う制限を付けようと思うのですが、
その時のメモリ状態によりNGになる境界も変わるようですので、
対策にも困っています。

APIにメモリ使用状況を取得できるものがあるようなので
これを使用して何とか対処しようと思います。

[ メッセージ編集済み 編集者: まろ茶 編集日時 2005-07-05 13:13 ]
1

スキルアップ/キャリアアップ(JOB@IT)