2016年2月14日日曜日

[Grails] postgresql エラーメッセージ

例外発生時に文字化け

■対策
メッセージのロケール設定が悪いため発生。日本語だと厳しいので英語化

Windows:
C:\Program Files\PostgreSQL\9.1\data\postgresql.conf

Linux:
/etc/pgsql/postgresql.conf

lc_messages = 'Japanese_Japan.932' となっているのを lc_messages='C' にする

■Grails 2.4.0
・2.3.xからの変更点
  upgradeコマンドが無くなった。
  →バージョンアップはset-application-versionコマンドで行うこと
   またはapplication.propertiesを開いてバージョンを手動で上げる。このファイルを保存すると自動でアップデートが走り出す。

■spring-security-core
・1.xからの変更点
 パッケージが変更。grails.plugin.springsecurity.annotation.Securedが基本になった
 さらにメソッドに対してのみ@Securedアノーテーションが使用可能に。
 →web flowに対して設定できなくなった。さてどうしよう。

 Login/LogoutControllerがプラグイン埋め込みになった。自動生成スクリプトが無くなった。
 →自作のControllerに変更は可能。Config.groovyで指定するらしい

Ubuntu 12.04 へのドメイン名の反映

■さくら VPS設定
・ドメイン名登録
 コントロールパネル画面右上の「ネームサーバ登録」を選択。取得したドメイン名をテキストフィールドに入力して送信。
 そうすると自動でさくらのDNSに登録される。
 www. mail. などのサブドメインも登録してくれる。

・逆引き登録
 コントロールパネルの右「設定」から「ホスト名逆引き登録」を選択
 標準ホスト名にチェックが付いているが、カスタムに変更して取得したドメイン名を入力する

■Ubuntu設定
 12.04からresolverの設定方法が変更になったらしい。
 /etc/network/interfaces にresolver情報も記述する.

iface eth0 inet static
        address ****
        netmask ****
        network ****
        broadcast ****
        gateway ****
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers ****
        dns-search ****


という形に記述する。dns-nameservers にはさくらVPSのDNSサーバアドレスを記述
dns-search にはサーバが所属するドメインを複数記述する。
通常はhostname -f で取得できる結果と同じものを指定する。
単一のドメインに所属であれば、dns-domainを書けば良いらしい。
一応、さくら標準のホスト名でも検索できるように2つのドメインを指定

[番外編] Tomcat ログ出力

■Tomcatログ設定
ローテーションはtomcatでは行わない

設定 /usr/java/tomcat/conf/server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b"
               resolveHost="false" rotatable="false" />

■ログローテーション
 logrotate に任せる。

設定 /etc/logrotate.d/tomcat

/var/log/tomcat/*.out {
    copytruncate
    missingok
    notifempty
    compress
    rotate 8
    weekly
}

(意味)
copytruncate --- コピー元ログはローテーション後に切り詰める
missingok       --- ログが無くてもエラーにしない
notifempty     --- ログが空の場合はローテーションしない
compress      --- ローテーションファイルは圧縮
rotate 8        --- ローテーションは8回分保存
weekly          --- ローテーションは週1回実行