- - PR -
ActiveReportsとページファイル
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-13 10:59
はじめまして、よろしくお願いします。
VB.NET2003とActiveRepotsfor.NET(2.0ではありません)を使い、 サービスにて常時起動中の帳票印刷アプリの開発を行っているのですが、 半日ほど連続帳票作成を行いますと、ページファイルが1ギガを超えてしまい、 PCの動作が不安定となってしまいます。 アプリが使用するメモリ自体は、200メガ〜300メガを増えたり減ったりしていますので、 リソースの開放とガベージコレクションは正しく動作していると思うのですが・・・ 以上です。よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-12-13 11:46
増えたり減ったりしているから、リソースの管理が確実になされているとは限りませんよね。 帳票出力に問題があると推測されるなら、デバッグするしかないと思います。 # ソースが判らないので「ここがまずい」とも言えないのです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-17 17:25
返事が遅くなってしまい、申し訳ありませんでした。
あれから検証を更に重ねてみましたところ、じゃんぬねっとさんの仰るとおり、 リリース管理に穴があるようでメモリも増え続けていることが確認できました。 ソースの流れを簡単に書かせていただきますと、以下のようになります。 「rptRenraku」がActiveRepotのクラスです。 --------------------------------------- Dim rptReport As rptRenraku Do While gintStatus = 1 rptReport = New rptRenraku '---データ作成処理関数呼び出し Call subDataset() rptReport.Run() '---印刷処理 rptReport.Document.Print(False, False, False) rptReport.Dispose() rptReport = Nothing '---スレッドの一時停止 Thread.CurrentThread.Sleep(10000) Loop --------------------------------------- だいたいこのような感じです。 何かアドバイスなどいただければ幸いです。 以上です。よろしくお願いいたします。 | ||||||||
|
投稿日時: 2006-01-17 17:41
繰り返しの処理があるのであれば、変数の有効範囲に注意してください。 正しく最適化すると以下のようなコードになるハズです。 (Dispose メソッドは確実に行われるように Finally に実装しています)
コメントとして記載していますが、このプロシージャが原因でない可能性もあります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1