« 5年目の運用まとめ | トップページ | JBoss AS 7.1 に移行(2) »

2013年2月 9日 (土)

JBoss AS 7.1 に移行(1)

本家 OpenDolphin および増田先生バージョンは,ずいぶん前からとっくに JBoss AS 7 に移行されていたが,当院バージョンはずっと JBoss AS 5 のままであった。今回,当院でも遅ればせながらやっと JBoss AS 7 に移行できた。

JBoss AS 7.1 をビルド

  1. 最新版の jboss as 7.1 の zip を github からもってくる。ブランチから 7.1 を選択して zip でダウンロードする。ちなみに,master は 7.2.Alpha である。
  2. build で25分かかった。これで 7.1.4.Final ができる。
    $ cd jboss-as-7.1
    $ export JAVA_HOME=`/usr/libexec/java_home -v 1.6` 
    $ ./build.sh
      :
    $ cp -r build/target/jboss-as-7.1.4.Final-SNAPSHOT /Applications/
    
  3. bin/standalone.conf にオプションを加えて,メッセージの文字化けを防ぐ。
     JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8"
    
  4. bin フォルダのstandalone.sh -b 0.0.0.0 で起動を確認。jboss 5 と比較すると起動が異常に早い。
    $ ./standalone.sh -b 0.0.0.0
    =========================================================================
      JBoss Bootstrap Environment
      JBOSS_HOME: /Applications/jboss-as-7.1.4.Final
      JAVA: /Library/Java/JavaVirtualMachines/1.6.0_29-b11-402.jdk/Contents/Home/bin/java
      JAVA_OPTS: -d32 -client -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml -Dfile.encoding=UTF8
    =========================================================================
    20:51:46,707 INFO  [org.jboss.modules] JBoss Modules version 1.1.3.GA
    20:51:46,854 INFO  [org.jboss.msc] JBoss MSC version 1.0.2.GA
    20:51:46,906 INFO  [org.jboss.as] JBAS015899: JBoss AS 7.1.4.Final-SNAPSHOT "Arges" が起動しています。
    20:51:47,491 INFO  [org.xnio] XNIO Version 3.0.7.GA
    20:51:47,493 INFO  [org.jboss.as.server] JBAS015888: socket-binding (management-http) を使い http 管理サービスを作成しています。
    20:51:47,497 INFO  [org.xnio.nio] XNIO NIO Implementation Version 3.0.7.GA
    20:51:47,503 INFO  [org.jboss.remoting] JBoss Remoting version 3.2.13.GA
     :
    20:51:47,937 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.4.Final-SNAPSHOT "Arges" は 1482ms でスタートしました -  サービス 222 個のうち 144 個を開始しました (76 のサービスはパッシブあるいはオンデマンドとなっています)。
    

データソースの作成

  1. modules/org/postgresql/main フォルダを作成し,ドライバ postgresql-9.1-901.jdbc4.jar をコピーする。
  2. 同じフォルダに以下の module.xml を作成する
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.0" name="org.postgresql">
      <resources>
        <resource-root path="postgresql-9.1-901.jdbc4.jar"/>
      </resources>
      <dependencies>
        <module name="javax.api"/>
      </dependencies>
    </module>
    
  3. standalone/configuration/standalone.xml にドライバとデータソースを書き込む。jta=true にしないと,"Large Objects may not be used in auto-commit mode" という postgres エラーが出る。
    <subsystem xmlns="urn:jboss:domain:datasources:1.0">
      <datasources>
        <datasource jta="true" jndi-name="java:/PostgresDS" pool-name="PostgresDS" enabled="true" use-ccm="false">
          <connection-url>jdbc:postgresql://localhost:5432/dolphin</connection-url>
          <driver-class>org.postgresql.Driver</driver-class>
          <driver>postgresql</driver>
          <security>
              <user-name>dolphin</user-name>
          </security>
          <validation>
              <validate-on-match>false</validate-on-match>
              <background-validation>false</background-validation>
          </validation>
          <statement>
              <share-prepared-statements>false</share-prepared-statements>
          </statement>
        </datasource>
        <drivers>
          <driver name="postgresql" module="org.postgresql"/>
        </drivers>
      </datasources>
    </subsystem>
    

Security 設定

standalone.xml に以下の設定をする
  1. security-realm 作成
     <security-realm name="DolphinRealm">
       <authentication>
         <jaas name="openDolphin"/>
       </authentication>
    </security-realm>
    
  2. リモートアクセスで上記の security-realm を使うように設定(デフォルトでは ApplicationRealm が設定されている)
    <subsystem xmlns="urn:jboss:domain:remoting:1.1">
      <connector name="remoting-connector" socket-binding="remoting" security-realm="DolphinRealm"/>
    </subsystem>
    
  3. security-domain 設定。これは jboss 5 の login-config.xml と同じもの。
    <security-domain name="openDolphin" cache-type="default">
      <authentication>
        <login-module code="Database" flag="required">
          <module-option name="dsJndiName" value="java:/PostgresDS"/>
          <module-option name="principalsQuery" value="SELECT PASSWORD FROM D_USERS WHERE USERID=?"/>
          <module-option name="rolesQuery" value="SELECT C_ROLE, 'Roles' FROM D_ROLES WHERE USER_ID=?"/>
          <module-option name="hashAlgorithm" value="MD5"/>
          <module-option name="hashEncoding" value="hex"/>
        </login-module>
      </authentication>
    </security-domain>
    

« 5年目の運用まとめ | トップページ | JBoss AS 7.1 に移行(2) »

OpenDolphin」カテゴリの記事