最近Business rulesにハマっていて、いろいろとやってみて、そのできることの大きさに限界を感じながらも感動している。
しかし、しばらく前にTokenモジュールのアップデートをしたら、Business rulesの設定時にthe website encountered an unexpected error. please try again later.という恐ろしいメッセージが出て、アップデートを先送りした。そして、3日前ほどにBusiness rulesの管理画面から新規の変数を定義しようとしたら、the website encountered an unexpected error. please try again later.が出たのである。症状は結構良くわからなくて、安定稼働していた構成に戻して、検証してみると、Business rulesに無関係なContent typeのフィールドを追加しても、Business rulesの定義でthe website encountered an unexpected error. please try again later.が起きることが判明した。これは、何かのオーバーフローだと考え、Business rulesのissueを見ていると、大抵の問題はmysqlの設定に起因すると書かれている。前にも見ていたが、刺さっていなかったのを反省し、mysqlのerrorログを見てみた。
そうすると、
[ERROR] InnoDB: The total blob data length (10607856) is greater than 10% of the total redo log size (100663296). Please increase total redo log size.
というエラーが出ている。そうか、やはりmysqlの設定かと思って調べると、max_allowed_packetとinnodb_buffer_pool_sizeとinnodb_log_file_sizeの値を調整すれば解決するらしいことがわかった。テスト環境をディスクのクローニングで立ち上げて現行の設定状況を調べてとりあえず倍にしてmysqlをリスタートしたら無事に問題が解決した。ついでにtokenのアップデートもやってみたら、あの恐ろしいメッセージ出ず、無事動いたのだ。
途中、どの.cnfのどこに書くのかといった点でちょっと躓いたところもあったが、無事解決した。今日の作業は、東京、京都出張の行き帰りの新幹線の中でやった。便利な世の中になったものである。