IM-共通マスタメンテナンスのメニューから表示された画面で各操作を繰り返すと、ブラウザの使用メモリが上昇し続けメモリリークが発生します。

【現象】
メモリリークを引き起こす操作は、「IM-共通マスタ 仕様書」に記載の通り、下記2つです。
* ケース1:ツリー操作を行う場合
* ケース2:編集画面を開く場合

【発生バージョン】
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.0
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.1
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.2
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.3
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.4
intra-mart WebPlatform/intra-mart AppFramework Ver.7.2.5

【修正内容】
メモリリークが発生する箇所を特定し、下記のようにメモリリークが発生しないように解消します。

1. ツリーを再描画するとメモリリークが発生する
 ⇒ 不要になったツリーに対して、ドラッグアンドドロップのイベントの解放処理を行うように改善。

2. iframeを使用した画面を描画するとメモリリークが発生する
 ⇒ iframeに対してのイベントの解放処理を行うように改善。(onreadystatechangeなど)
 ⇒ iframeの破棄を明示的に行うように改善。(src属性にブランクのhtmlを指定する)
    ※これによりiframe内のwindowのunloadが作動する

3. 期間バーを表示するとメモリリークが発生する
 ⇒ 付与しているイベントをwindowがunloadされたタイミングで解放するように改善。

4. 一覧画面のソート機能(PagingTable.js)を描画するとメモリリークが発生する
 ⇒ im_sortable_tableのヘッダーに対するイベントをwindowがunloadされたタイミングで解放するように改善。

ただし、「ケース1:ツリー操作を行う場合」に関しては、たとえば組織やパブリックグループに対して所属ユーザの編集操作を繰り返し行うと、改修前に比べて使用メモリの上昇率は下がっていますが、依然メモリリークが発生します。

そのため、IM-共通マスタメンテナンス画面の操作を続けた際に、メモリリークが発生し操作性が悪くなったと感じた場合には、メニューから画面を再表示してください。
この操作により使用メモリが解放され、メモリリークを回避することができます。

【適用方法】
下記URLを参照いただき、緊急パッチを適用してください。
http://newsupport.intra-mart.jp/patch/download/patch_info.php?patch_cd=1164


-- 対象 ------------------------------------------------------------------------
iWP/Webシステム構築基盤/WebPlatform/AppFramework
--------------------------------------------------------------------------------



FAQID:351
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk