HOMERSSサイトマッププロフィールお問い合せ

2006年9月 7日

(復興作業)アプリケーション・サーバー ( JBoss ) のインストール

サーバーの崩壊から約2週間たって、やっと JBoss のインストールのところまできた。このあたりは試行錯誤の末、やっとこさ立ち上げたので記憶も定かでなく、記録もない状態の中でどうなることやら・・・

J2EEサーバーとして Apache Geronimo が立ち上がり始めているので、この際に切り替えようかとも考えたが、、、とりあえず、JBoss で急ぐことにした。

1). JBoss のダウンロード

    ここから JBoss の最新版をダウンロードする。もっとも最新版でいいかどうかは状況にもよるだろうが・・・
2). ダウンロードしたファイル(今回は jboss-4.0.4.GA.zip)を /usr/local/bin/ に展開して、同じ場所に jboss でリンクを作る。
    # cd /usr/local/bin/
    # unzip jboss-4.0.4.GA.zip
    # ln -s jboss-4.0.4.GA jboss
3). JBoss を起動
    a) JBoss ユーザーの作成

      JBoss 起動スクリプト(ここでは jboss_init_redhat.sh を使用)は jbossユーザーで起動するようになっているので、面倒だからユーザー jboss とグループ jboss を作る。

      # groupadd jboss
      # useradd jboss -d /usr/local/bin/jboss -g jboss
      # chown -R jboss.jboss /usr/loval/bin/jboss-4.0.4.GA


    b) 起動用スクリプトの修正

      1) jboss_init_redhat.sh は内部で起動用スクリプト run.sh を使用するのでこれを修正

        JAVA_HOME=${JAVA_HOME:-"/usr/java/j2sdk1.4.2_12"}

        ・・・と、環境変数 JAVA_HOME をセットする行を先頭あたりに挿入する。念の為に run.sh でJBoss が起動するか確認しておく。


      2) 次に jboss_init_redhat.sh を修正

        java のパスにかかわる2箇所と、restart の stop と start の間に 'sleep 5' を挿入する。

        JAVAPTH=${JAVAPTH:-"/usr/java/j2sdk1.4.2_12"}
        CMD_STOP="$JAVAPTH/java ・・・と $JAVAPTH を追加
        sleep 5 ・・・を $0 stop と $0 start の間に挿入

        ・・・これも jboss_init_redhat.sh start と stop を実行して確認(/usr/local/bin/jboss/server/all/log/)しておく。

4). 自動起動用スクリプトの登録
    # cp /usr/local/bin/jboss/bin/jboss_init_redhat.sh /etc/init.d/jboss
    # chkconfig --add jboss

    ・・・と、登録し、# chkconfig --list jboss で確認しておく


5). MySQL に接続
    a) 先ず、MySQL-JDBCドライバーをダウンロードする。

      インストール作業を急ぐために、真新しいバージョンではなく実績のあった 3.1 系のものを使う。今の最新バージョンは 3.1.13 で、ここからダウンロードした。当初、tar.gz ファイルをダウンロードしたのだが展開できなかったので zip ファイルを再ダウンロードした。よくあることなので気にはなる・・・

    b) ダウンロードした zip ファイルを展開して出てきた mysql-connector-java-3.1.13-bin.jar を /usr/local/bin/jboss/server/all/lib/ にセットする。所有者の変更を忘れないように・・・

    c) JBoss 各種の設定ファイルを MySQL 用に修正する( /usr/local/bin/jboss/server/all/ 配下)。

      1) conf/standardjaws.xml の defaultDS を MySQLに変更
      2) conf/standardjbosscmp-jdbc.xml の defaultDS を MySQLに変更
      3) conf/login-config.xml に このサイト認証用 login-module を追加
      4) データソース(JDBCConnectionPool)を作成
        docs/examples/jca/mysql-ds.xml を deploy/ にコピーして修正
      5) deploy/hsdldb-ds.xml を削除
      6) deploy/jms/hajndi-jms-ds.xml を削除
      7) deploy-hasingleton/jms/hsqldb-jdbc2-service.xml を削除
      8) deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml をmysql-jdbc-state-service.xml に名前変更
        以前は削除していたのだがエラーが出るためにこのようにすると直った・・・理由はまったく不明のまま・・・
      9) docs/examples/jms/mysql-jdbc2-service.xml を deploy-hasingleton/jms/ にコ ピー
        mysql-jdbc2-service.xmlがデフォルトのデータソース名(DefaultDS)を参照するように変更する.
        <depends optional-attribute-name="ConnectionManager">
        jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
6). テスト用のデータベースを MySQL に作成
    a) テーブルの作成

      MySQL の初期設定では test というデータベースが作成されているので、ここにテスト用テーブルを作成する。

      $ mysql -u root -pxxxxxxxx
      mysql > use test

      CREATE TABLE HELLO_WORLD_TABLE (
      NO INTEGER NOT NULL,
      LANGUAGE VARCHAR(50),
      MESSAGE VARCHAR(100),
      PRIMARY KEY(NO)
      );

    b) テーブルにデータを追加

      INSERT INTO HELLO_WORLD_TABLE
      VALUES ( 1 , '日本語' , 'こんにちわ 世界');

      INSERT INTO HELLO_WORLD_TABLE
      VALUES ( 2 , '英語' , 'Hello World');

    c) 正常に追加されているか確認

      SELECT * FROM HELLO_WORLD_TABLE;

7). Webアプリケーションを JBoss にデプロイ
    ここから neverbird.zip をダウンロードして、展開して出てくる neverbird.war を deploy にコピー
8). ブラウザーでデプロイしたアプリケーションにアクセスして MySQL との接続を確認
    https://www.bit-consul.net:8080/neverbird/

    ・・・で、確認できるハズなのだが、我が家のルーターは 8080番ポートが塞がっており、外部からは確認できないので急遽 Apache との連携をセットアップすることにした。

9). コンソールの使用権限を設定 (jmx-console.war)
    JBoss の管理コンソールは初期設定では無防備になっているので、これにアクセス認証をセットする。

    a) deploy/jmx-console.war/WEB-INF/jboss-web.xml

      <security-domain>java:/jaas/xxxxxxxx</security-domain>
      (xxxxxxxx はconf/login-config.xml にセットした login-module名)

    b) deploy/jmx-console.war/WEB-INF/web.xml

      <security-constraint> 部のコメントを外し、<role-name> を変更
      <login-config> 部の <realm-name> を変更
      <security-role> 部の <role-name> を変更
10) 大量のログが出ないように conf/log4j.xml を修正
    <appender name="FILE" 要素に <param name="Threshold" value="INFO"/> を追加
    <appender name="console" 要素を <param name="Threshold" value="ERROR"/> に修正


以上で、JBoss の復旧が完了したと思われる。
が、、、かってのサーバーのかすかな記録には、バグ対応の為に deploy/iiop-service.xml を修正するような記述があるので、その箇所を残しておく。

    <mbean code="org.jboss.iiop.CorbaORBService" ・・・部に
    <attribute name="SunJDK14IsLocalBugFix">false</attribute> 追加とある

ログを調べてもエラーは出ていなかったので、上記はとりあえず反映させていない。・・・・

投稿者: 管理者 日時: 2006年9月 7日 20:25 | パーマリンク |TOPページへ   ▲画面上へ

トラックバック

このエントリーのトラックバックURL:
https://bit-consul.net/cgi-bin/MT/mt-tb.cgi/14

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)