メモリ使用量を超過した場合にアプリケーションがメッセージ等を表示せずに終了する
2019/09/17
PowerBuilder で作成した 32bit アプリケーションにおいて、使用可能なメモリを超えた場合にアプリケーションがメッセージ等を表示することなく終了する不具合が確認されています。
Bug ID | 2852 | ||||||
---|---|---|---|---|---|---|---|
Product | PowerBuilder EN/JP | ||||||
ステータス | Appeonにて検証中 | ||||||
発生バージョン | EN | 12.6以前 | 2017 | 2017 R2 | 2017 R3 | 2019 | |
JP | 12.6以前 | - | 2017 R2 | 2017 R3 |
※ :発生バージョン :解決済み、未発生 :未確認
詳細
PowerBuilder でプラットフォームを “32ビット” として作成したアプリケーションについて、使用可能なメモリを超えると終了メッセージが表示されずにアプリケーションが終了します。
たとえば、SaveAs メソッドを使用して大量のデータを XLSX に出力する場合や大量のデータを検索した場合などに発生します。
回避策
本不具合に関する回避策は以下となります。
- アプリケーションを 64bit で作成する
- メモリ使用量を増やすため、プラットフォームを “64ビット” としてアプリケーションを作成してください。
- データを分割して処理する
- 特定の行数ずつ処理を行うなど機械的に分割する、また検索前に Count を取得して一定行数以上になる場合は警告を表示し、検索を行えないようにするなどプログラムを修正してください。
※データウィンドウの構成により使用可能メモリを超えるデータ数は異なるため、特定行以上といった目安はなく、処理可能なデータ数の算出を行うことはできません。