カルテ保存後ウインドウを閉じる(多分完結編)
サーバとの通信に使う DBTask は,Chart が存在することを前提にした Thread になっている。カルテ保存後に EditorFrame を閉じるようにカスタマイズしてしまっため,EditorFrame を閉じた後すかさず Chart をショートカットキーを使って素早く閉じた場合など,DBTask が Chart を閉じた後にも残っていて,消えかけの Chart にアクセスする可能性があるのではないかということがとても気になっていた。(DBTask は普通は一瞬で終わるので問題ないはずなのだが,たまに時間がかかったりする可能性がある)
そこで,データベースにアクセスするスレッドをまとめて ExecutorService で管理し,さらに,その Executor の task を Chart を閉じるときに shutdown し,shutdown されたことを確認してから Chart を閉じるようにしてみた。
まとめたスレッドの状況を調べてみたら,シェーマが多いカルテをものすごく素早く閉じたときに DBTask が残ることがあるのを確認できた。でも,普通に操作していたらまず問題にならないので,結局杞憂だったようだ。でもとりあえず,これで「カルテ保存後ウインドウを閉じる」の心配の種は根絶できたと思う。
« FindBugs に指摘されたこと | トップページ | 結局 Java 1.6 へ移行 »
「OpenDolphin」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)