Intellij IDEAのDBConsoleがreadonlyになってしまったら【Agent Grow Advent Calendar 2017:24日目】

Agent Grow Advent Calendar 2017 24日目を担当するとっつぁんです。

先日50MB程度の巨大なSQLを軽い気持ちでIntellij IDEAのDBConsoleから実行しようとしたところ、Intellij IDEAが突然死してしまいました。

それだけでなく次回立ち上げたときにDBConsoleを消せなくなってしまい、他のSQLを実行できなくなってしまう問題にぶち当たってしまいました。。。

全然情報が見つからない状態でしたが、何とか解決できたので忘れないうちに文書に残しておこうと思います。

※ 今回使用したIntellij IDEAのバージョンは 2017.2.5 です

プロローグ

いつものように仕事をしていたある日、vagrantで仮想環境を立ち上げるとき実行してるSQLを流して動作確認をすることになりました。

いつものように相棒のIntellij IDEAさんのDBConsoleにSQLをコピペしたところ、Intellijさんが固まってこんなエラーを吐いてお亡くなりになりました。

Intellij IDEAさんのダイイングメッセージ

Out of Memory という力強いタイトルのダイアログを見て、「結構でかいSQL(テキストで50MBくらい)だったのでしょうがないなぁ」と思いつつ -Xmx1)Intellij IDEAが使用できるヒープ領域の
最大サイズを設定する項目らしいです
2048MB に設定してIntellij IDEAを再起動しました。

「重いのも困るしいったんSQL削除しておくか」と思いDBConsoleの中身を全削除しようとしたところ

一方的に「このviewは読み取り専用です」と言われ、backspaceを押してもdelを押してもCtrl+xを押しても内容が消えなくなってしまいました。2)この時国民的アニメの名台詞風に
「悪いなの〇太、このviewは読み取り専用なんだ!」
と言われているイメージが頭をよぎりました

もちろんSQLの追記・修正もできないので、このままでは他のSQLを実行できません。

他にも実行しなければいけないSQLを複数抱えていたので私は頭を抱えてしまいました。。。3)癒しを求めてランチでは
四川山椒をたっぷりかけた麻婆チャーハン
を食べました

対応内容

このままでは仕事にならないので、本格的に調査を始めました。

情報集め

とりあえず同じ悩みを抱えている人がいないかネットで検索してみました。

その時の検索ワードはたしか「Intellij DBconsole readonly」「Intellij console 消せない」…

しかし検索ワードが悪いのかいまいちそれらしい情報が手に入りませんでした。

途方に暮れて画面をよく見てみると、ウィンドウの上部に「~size 50MB~disable. ~2.5MB~」(かなりうろ覚えです。すいません。)みたいなワーニングが表示されていました。4)うっかり don’t show againをポチってしまったのでキャプれませんでした。。。

そこでちょっと視点を変えて、「intellij file size limit」あたりで検索してみました。

すると情報が見つかりました。

参考にしたページ:
https://stackoverflow.com/questions/23057988/file-size-exceeds-configured-limit-2560000-code-insight-features-not-availabl
https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties

これによると、どうもコードアシストを有効にする場合の最大ファイルサイズを設定する項目があって、それを変更すると何とかなりそう みたいなことがかいてありました。
※ 英語力が弱いので雰囲気で読みました。。。

解決編

早速試してみました。

メニューの HelpEdit Custom Properties... をクリックするとプロパティを変更できる様子なのでクリック。

するとエディタ部分にすっからかんなプロパティファイルらしきものが表示されました。
ドキドキしながら先のページに書いてあった通りの設定を追加。

#---------------------------------------------------------------------
# Maximum file size (kilobytes) IDE should provide code assistance for.
# The larger file is the slower its editor works and higher overall system memory requirements are
# if code assistance is enabled. Remove this property or set to very large number if you need
# code assistance for any files available regardless their size.
#---------------------------------------------------------------------
idea.max.intellisense.filesize=80000 # コードアシストを有効にする場合の最大ファイルサイズをKB単位で設定

今回は対象テキストのサイズが約50MBなのがわかっていたので、多めに80000(80MB)に設定しました。

そして希望を胸にIntellij IDEAさんを再起動・・・

DBConsole復活ッ!

再起動後開くのがやたら遅かったので手ごたえを感じながら待っていました。

しばらく待つと重々しくDBConsoleが立ち上がりました。

backspaceや適当なキーを打って動きそうなことを確認してから Ctrl+Adel

またしばらく固まっていたので不安になりましたが、数秒後しっかり削除できていました。

これで残りのSQLも実行できるようになり、無事残りのタスクも実施できました。

エピローグ

この現象についてネットで調べてもなかなか解決策が見つからなかったので記事を書いてみました。

この記事を書きながらふと思ったのが、「コードアシスト機能切ったらこんなことしなくてもよかったのではないか?」ということでした。。。

後日時間を見つけて試してみるかもしれません。

明日はいよいよ最終日。

有終の美を飾るステキな記事をお楽しみに!

注訳はこちら   [ + ]

1. Intellij IDEAが使用できるヒープ領域の
最大サイズを設定する項目らしいです
2. この時国民的アニメの名台詞風に
「悪いなの〇太、このviewは読み取り専用なんだ!」
と言われているイメージが頭をよぎりました
3. 癒しを求めてランチでは
四川山椒をたっぷりかけた麻婆チャーハン
を食べました
4. うっかり don’t show againをポチってしまったのでキャプれませんでした。。。
とっつぁん

とっつぁんカレー魔神

投稿者プロフィール

気づいたら人生の半分以上プログラムを組んで生活していた技術者。
組み込みからwebまで大体何でもやります。
カレーと麻婆豆腐とワインが好きです。

最近ではPHPでのwebシステム開発がメインになっています。
League of Legendsおもしろいですねぇ。

この著者の最新の記事

関連記事

コメントは利用できません。

募集中!(o゜▽゜)o

エンジャパン
求む、社長!
follow us in feedly

コッチもヨロシク!





最近のネタ!

  1. 2018-10-18

    第9回テーブル部(ボードゲーム)~少人数でまったり~

    2018年8月25日に第9回となるテーブル部活動を開催しました! この日もいつも通り「ボードゲーム…
  2. 2018-10-17

    2018年10月度・第28回 福岡社員総会 & 懇親会

    はじめに 早いものでもうすっかり秋模様ですね🍁 のちほどお伝えする総会&懇親会の様子を見ていただ…
  3. 2018-10-15

    2018年9月度社員総会&懇親会@Tokyo 〜良い表情がいっぱいだね(o゜▽゜)o〜

    遅くなってしまったけれども…… 2018年10月度の社員総会&懇親会@Tokyoが今週末に控えてい…
  4. 2018-10-15

    第7回ボルダリング部 ~いざ! 大根おろしチャレンジ!~

    2018/10/7(土)にボルダリング部の活動がございました! どういう活動内容だったのかご紹介い…
  5. 2018-10-15

    JS で Canvas を操作するときは Konva が結構便利に使えます!

    HTML5 の canvas 使ってますか? こんにちは! 江嵜です。 みなさん、html5 の…
ページ上部へ戻る