Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ソケット シリアル化について

97 views
Skip to first unread message

aru

unread,
Oct 15, 2009, 8:57:01 PM10/15/09
to
1. 会社名、質問者名
キヤノンITソリューションズ(株)
包 金倉

2. お問い合わせ概要
C/Sアプリケションでは、クライアントとサーバ間はDataSetを
シリアル化してソケット通信しています。また、シリアル化の形式は
バイナリを使用しています。
※クライアント、サーバとも2Gのメモリを搭載しています。
-------------------------------------
Private socketStream As NetworkStream
Private socketHandle As TcpClient
Private socketFormatters As New
Runtime.Serialization.Formatters.Binary.BinaryFormatter
dataSet.RemotingFormat = SerializationFormat.Binary
socketFormatters.Serialize(socketStream, dataSet)
'→例外System.OutOfMemoryException発生
-------------------------------------
今回、以下に示す2つのパターンの時、シリアライズ処理で
例外System.OutOfMemoryExceptionが発生します。

パターン1
・5ユーザが一斉にサーバに対してデータを取得する
・データ量は、DataSetで9999行、10列 サイズ8863KB程度
・1又は2ユーザのサーバスレッドで上記例外エラーが発生する

パターン2
・DATASETにイメージファイルを格納する
・イメージファイルのサイズは約100MB(50MBまでは正常を確認)
・シングルユーザアクセスで上記例外エラーが発生する

メモリには、まだ余裕があると思われますが、サーバのメモリを4Gに増設
してみましたが、結果は変わりませんでした。

3. 製品とプラットフォームのバージョン(Edition 含む)とサービスパック
サーバ:Windows Server 2003 R2 SE SP2 .NET 2.0
クライアント:Vista Business Edition、XP SP2 .NET 2.0

5. お問い合わせの目的、ゴール
①シリアライズ失敗の原因を知りたい
②回避策等あれば教えてもらえないでしょうか?
③NetworkStreamは大量データの送受信する場合、どうすればよいでしょうか?

以上、よろしくお願いします。

0 new messages