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-4-20

    Let’s Encryptでワイルドカード証明書を運用するときのメモ

    久々に小ネタでも投稿してみようと思ふ ここ最近、社内の様子は頻繁にご紹介しておりましたが、「そうい…
  2. 2018-4-16

    第9回社員総会&懇親会@Osaka 〜初の金曜日開催に心躍る〜

    2018年4月13日(金)、大阪社員総会&懇親会が開催されました! その様子をお届けいたします。 今…
  3. 2018-4-14

    お花見@Osaka ~Adult Flower Watching!?~

    2018/3/28(水)の仕事終わりに、大阪オフィスの有志が集まってお花見をしてきましたよ!(^^)…
  4. 2018-4-12

    2018年4月度社員総会&懇親会@名古屋 〜 時満ちて、ついに秘密のベールが! 〜

    満を持しての登場でっす! この会社ブログでは、エージェントグローのあらゆることをご紹介してきました…
  5. 2018-4-9

    アクティ部、ボーリング大会!

    アクティ部、ボーリング大会! さて、アクティブなことと言えば、そう運動ですね。 運動不足になりが…
ページ上部へ戻る