[WR2.0]連続印刷でメモリ不足?

HOME › フォーラム › 旧サポート掲示板 › [WR2.0]連続印刷でメモリ不足?

  • このトピックは空です。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #2240
    山田@ELTEX
    ゲスト

    お世話になっております。

    現在WR2.0を使用させていただいているのですが、連続して
    帳票を印刷すると、40枚くらいめで画像が印刷されなくなり、
    その後wrPrintで8030(印刷中に異常が発生しました)が発生
    する、といったトラブルに見舞われております。

        DLLバージョン:サポートからDL可能な最新のもの
        OSバージョン:Windows95、98
    開発プラットフォーム:VB5.0

    現象を見る限り、メモリリークが発生しているのは確実っぽい
    ですので(印刷を続けると、リソースが見る見るうちに減って
    いきます)先週より調査を進めているのですが、さっぱり理由が
    わからず手詰まりになってしまったため、ご相談に伺いました。

    現象は上記の通りで、エラー発生後(リソース:10%程度)
    アプリケーションを終了(その時点でリソースは50%程に復帰)、
    その後再度アプリケーションを起動してみたのですが、
    印刷ジョブを走らせたとたんにリソースが5%程まで減少し、
    印刷を行うことができなくなってしまいます。

    帳票は2枚(別のwrpファイル)で1セットとなっており、1回の
    印刷ジョブでその2枚が印刷されるような形になっております。

    実際には、以下のようなコードになっているのですが、
     「どこでメモリリークしているのか?」
     「根本的に使い方を間違ってはいないか?」
    という点で、アドバイスなどいただければ大変幸いに思います。

    Private Sub 《[印刷]ボタンのClickイベントハンドラ》

    ‘1枚目を印刷
    wrInit
    wrSetErrorDispMode … エラーを非表示に
    wrLoadReport … 1枚目のレポートを読み出し
    wrSetPrintMode … デフォルトのプリンタに設定
    wrOpenPrinter
    :テキスト、DIBを取得
    wrSetText、wrLoadDIB×複数回
    wrPrint
    wrClosePrinter
    wrUnloadReport
    wrExit

    ‘2枚目を印刷
    wrInit
    wrSetErrorDispMode … エラーを非表示に
    wrLoadReport … 2枚目のレポートを読み出し
    wrSetPrintMode … デフォルトのプリンタに設定
    wrOpenPrinter
    :テキスト、DIBを取得
    wrSetText、wrLoadDIB×複数回
    wrGetObjectProp、wrSetObjectProp×複数回
    wrPrint
    wrClosePrinter
    wrUnloadReport
    wrExit

    End Sub

    (実際は、それぞれの関数呼び出しに対してエラー処理が入って
    おります)

    問題を切り分けるため、上記にある「テキスト、DIBを取得」の
    処理をすべて削除し、純粋に印刷処理のみ行ってみたのですが、
    結果は変わりませんでした。

    また、[印刷]ボタンを押されるたびにこの関数を通ることから、
    「wrInit」「wrLoadReport」などの1セッション中での複数回呼び
    出しが悪さをしているのかと思い、Form_LoadでwrInitを、
    Form_QueryUnloadでwrExitを呼ぶようにもしてみたのですが、
    こちらも残念ながら結果は変わりませんでした。

    複数種類のプリンタ(HP、Canonなど)で同様の現象が発生する
    ため、プリンタドライバに依存する問題ではなさそうです。

    ご迷惑をおかけして誠に申し訳ないのですが、アドバイスなど
    いただけると大変助かります。よろしくお願いいたします。

    #2241
    山田@ELTEX
    ゲスト

    お世話になっております。
    ちょっと補足します。

    処理中のwrSetText、wrLoadDIB、wrGetObjectProp、
    wrSetObjectPropを呼び出している部分を
    すべてコメントアウトして試しても見たのですが、
    やはり現象は同じでした。(リソースが減っていく)

    我々のほうでAPIの呼び出し方を間違えているのか、
    もしくはwrpファイルに問題があるのか・・・?

    お手数をおかけしますが、よろしくお願いします。

    #2242
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    リソースが減少するとのことですが、リソースタイプは何でしょう
    か?また、デザイナーからテスト印刷を行った場合はどうでしょうか?

    大変お手数ですが、宜しくお願いいたします。

    #2243
    山田@ELTEX
    ゲスト

    レスありがとうございます。

    > リソースタイプは何でしょうか?
    申し訳ありません、リソースモニタではなく、
    システムのプロパティで表示される
    システムリソースの残り%をチェックしていました。

    リソースモニタで確認すべきタイプは
    ・アロケート済みメモリ
    ・空きメモリ
    ・ロックされたメモリ
    でよろしいでしょうか?

    > デザイナーからテスト印刷
    すみません、こちらも確認していませんでした。
    確認後再度レポートいたします。

    #2244
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    >リソースモニタで確認すべきタイプは
    >・アロケート済みメモリ
    >・空きメモリ
    >・ロックされたメモリ

    上記項目以外に、GDI/USERのリソースを確認してください。
    大変お手数ですが、宜しくお願いいたします。

    #2245
    山田@ELTEX
    ゲスト

    お世話になっております。
    ご連絡遅れて申し訳ありません。

    こちらのトラブルについてですが、WRのバージョンを3.0にあげ、
    各関数の置き換え+レポートの再作成を行ってみたところ、
    メモリの減少がなくなり、問題なく連続印刷可能になりました。

    ということで、バージョン3.0のほう購入させていただき、
    ユーザーでのトラブルは回避できました。ありがとうございます。

    ・・・が、根本的な原因のほうを報告しなければいけないという
    ことで、調査のほうご協力いただければと思います。

    ご指示いただいたリソースモニタの監視についてですが、
    1セット(2枚)印刷を行うたびに、以下のような動きがありました。
    (アプリケーションから連続して印刷、20セット目で印刷エラー)

    アロケート済みメモリ:
     128前後のまま変わらず

    空きメモリ:
     7.8前後のまま変わらず、20セット目で突然0.2に減少

    ロックされたメモリ:
     37前後のまま変わらず

    システムリソース(残):
     60から、1セット印刷するたびに2ずつ減少、20セット目時点で15

    USERリソース(残):
     65のまま変わらず

    GDIリソース(残):
     60から、1セット印刷するたびに2ずつ減少、20セット目時点で15

    上記から、GDIリソースが豪快に目減りしていることが推測されます。
    恐らくレポート中に含まれている画像リソースの解放がうまく
    行っていないのではないかと思うのですが・・・

    なお、デザイナーからテスト印刷を行った場合は、リソースの減少が
    ありませんでした。

    まことに申し訳ありませんが、確認のほうよろしくお願いいたします。

    #2246
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    弊社製品をお買いあげ頂きましてありがとう御座います。
    また、引き続きの調査についてもお礼申し上げます。

    現象についてですが、
    >上記から、GDIリソースが豪快に目減りしていることが推測されま
    >す。
    >恐らくレポート中に含まれている画像リソースの解放がうまく
    >行っていないのではないかと思うのですが・・・

    レポートにイメージが使用してあると言うことですが、このイメー
    ジを使用しない場合はGDIのリソースが減少することは無いのでし
    ょうか?また、イメージの設定方法ですが、デザイン時に指定した
    状態で出力を行っているのでしょうか?

    以上、大変申し訳ありませんが宜しくお願いいたします。

    #2247
    山田@ELTEX
    ゲスト

    お世話になっております。
    ご解答ありがとうございます。

    > レポートにイメージが使用してあると言うことですが、このイメー
    > ジを使用しない場合はGDIのリソースが減少することは無いのでし
    > ょうか?また、イメージの設定方法ですが、デザイン時に指定した
    > 状態で出力を行っているのでしょうか?

    レポートに使用しているイメージですが、

    ・デザインの時点で背景のイメージを指定
    ・印刷時に動的に商品のイメージを指定(wrLoadDIB)

    と、両方行っております。
    以前の調査時に後者(wrLoadDIBによる指定)の処理を全て外してみた
    のですが、それでも同様の現象が起きていました。

    今回、3.0のデザイナーでレポートを作成しなおしたのですが、
    もしかすると、2.0にて作成したレポートファイルが悪さをしているの
    かもしれません。

    こちらですが、なにか確認する術はありますでしょうか?

    まことに申し訳ありませんが、確認よろしくお願いいたします。

    #2248
    松嶋@ソフトウィング
    ゲスト

    お世話になっております。
    ご連絡ありがとう御座います。

    背景イメージ及び印刷時のイメージ処理を全て行わない場合はいか
    がでしょうか?

    お手数ですが、宜しくお願いいたします。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。