火曜日, 9月 30, 2014

Tomcat8.0でシンボリックリンクを有効にする

$CATALINA_HOME/conf/context.xml の <Context> のすぐ後に

<Resources className="org.apache.catalina.webresources.StandardRoot" allowLinking="true"/>

を追記する。
バージョン8.0からこうなったみたい。

Tomcat8.0のRequestDumperFilterでServletの文字化け解消

$CATALINA_HOME/webapps/アプリ名/WEB-INF/web.xml の先頭部分につぎのように<filter>を追記する。

------------------------------------------------------------------------------
<web-app>

  <filter>
    <filter-name>requestdumper</filter-name>
    <filter-class>
      org.apache.catalina.filters.RequestDumperFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>requestdumper</filter-name>
    <url-pattern>/target_path/*</url-pattern>
  </filter-mapping>

(以下省略)
------------------------------------------------------------------------------

$CATALINA_HOME/conf/logging.properties を編集。

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler



handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, 5request-dumper.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

のように 5request-dumper.org.apache.juli.FileHandler, を追記し、

4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

の下あたりに

# request dumper configuration
5request-dumper.org.apache.juli.FileHandler.level = INFO
5request-dumper.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
5request-dumper.org.apache.juli.FileHandler.prefix = request-dumper.
5request-dumper.org.apache.juli.FileHandler.formatter = org.apache.juli.VerbatimFormatter
org.apache.catalina.filters.RequestDumperFilter.level = INFO
org.apache.catalina.filters.RequestDumperFilter.handlers = 5request-dumper.org.apache.juli.FileHandler

を追記する。
アプリをデプロイし直し、Tomcatを再起動。
これで

$CATALINA_HOME/logs/



request-dumper.2014-09-30.log

のようなログファイルが生成される。
理由はわからないが、POSTリクエストで送信されたUTF-8の2バイト文字が、それを受け取ったフィルターのurl-patternに含まれるServletで文字化けしなくなった。
ちなみにJavaのソースコードはシフトJIS。

木曜日, 9月 11, 2014

Azureで仮想ネットワーク内仮想マシンのDNS名

仮想マシンOSがWindowsの場合、コマンドプロンプトで


C:\Users\Administrator>ipconfig

Windows IP 構成


イーサネット アダプター Ethernet 21:

   接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net
   リンクローカル IPv6 アドレス. . . . .: fe80::7de3:9900:a6a0:eda1%34
   IPv4 アドレス . . . . . . . . . . . .: 192.168.91.4
   サブネット マスク . . . . . . . . . .: 255.255.255.128
   デフォルト ゲートウェイ . . . . . . .: 192.168.91.1

Tunnel adapter isatap.eldb.m2.internal.cloudapp.net:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net

Tunnel adapter Teredo Tunneling Pseudo-Interface:

   接続固有の DNS サフィックス . . . . .:
   IPv6 アドレス . . . . . . . . . . . .: 2001:0:9d38:6abd:2cf8:151e:3f57:a4fb
   リンクローカル IPv6 アドレス. . . . .: fe80::2cf8:151e:3f57:a4fb%14
   デフォルト ゲートウェイ . . . . . . .: ::

C:\Users\Administrator>


この中の「接続固有の DNS サフィックス . . . . .: eldb.m2.internal.cloudapp.net」を確認。
例えばそのマシンのホスト名が hoge だったら

hoge.eldb.m2.internal.cloudapp.net

がその仮想ネットワーク内で使えるそのマシンのDNS名。
OSがLinuxの場合、


$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search elweb.m5.internal.cloudapp.net
nameserver 168.63.129.16
$


この中の「search elweb.m5.internal.cloudapp.net」を確認。
そのマシンのホスト名が hogehoge だったら

hogehoge.elweb.m5.internal.cloudapp.net

がその仮想ネットワーク内で使えるそのマシンのDNS名。

水曜日, 9月 03, 2014

CPU使用率

5秒おきにCPUの平均使用率を表示

(Linuxの場合)
$ mpstat 5

(Windowsの場合)
> typeperf -si 5 "\Processor(_Total)\% Processor Time"