【現象】
メモリリークを引き起こす操作は、「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
IM-共通マスタメンテナンスのメニューから表示された画面で各操作を繰り返すと、ブラウザの使用メモリが上昇し続けメモリリークが発生します。