Apache2.x / JBoss AS 4.2.x で仮想ホスト
JBoss AS 4.2.2 で仮想ホストを設定した際のメモです。
JBoss には JBossWeb という、Tomcat ベースにパフォーマンスや機能を強化したコンテナが内蔵されています。
・jboss.org: JBoss Web
・[Think IT] JBoss Enterprise Application Platformの全貌 - 第4回:JBoss Web - Tomcatエボリューション (1/3)
多くの設定方法はほとんど Tomcat と同じですが仮想ホストの設定はどうも違うみたいです(?)
# そもそも Tomcat にあまり詳しくないのですが
仮想ホストの設定方法は JBoss AS 4.0 については Web Developer Reference というドキュメントに書いてありました。
JBoss AS 4.2.x のドキュメントには同等のものが見つかりませんでした。
4.0 と設定方法は同じみたいですが、後々の参照のために設定箇所を記録しておきます。
ちなみに JBoss のエンタープライズ・商用向けバージョンである JBoss EAP 4.2 / 4.3 でも同じ設定になります。
以下は yusuke.homeip.net という virtualhost を追加する設定例になります。
1. deploy/jboss-web.deployer/server.xml の Engine 要素内に Host 要素を追加。
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
emptySessionPath="true" enableLookups="false" redirectPort="8443" />
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node2">
<Host name="yusuke.homeip.net"
autoDeploy="false" deployOnStartup="false" deployXML="false"
configClass="org.jboss.web.tomcat.security.config.JBossContextConfig">
<Alias>yusuke.homeip.net</Alias>
<Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
transactionManagerObjectName="jboss:service=TransactionManager" />
</Host>
2. yourwebapp/WEB-INF/jboss-web.xml に virtual-host 要素を追加
<jboss-web>
<context-root>/yourcontext</context-root>
<virtual-host>yusuke.homeip.net</virtual-host>
</jboss-web>
3. httpd.conf の VirtualHost ディレクティブ内に JkMountFile パラメータを追加
<VirtualHost *>
DocumentRoot /Users/yusukey/server/apache2/htdocs
ServerName yusuke.homeip.net
ServerAlias yusuke.homeip.net
JkMountFile conf/yusuke_uriworkermap.properties
</VirtualHost>
4. uriworkermap.properties 内に jk マッピングを記述
/yourcontext/*=loadbalancer
/yourcontext=loadbalancer
以上
Jira をバージョン 3.12.3 へアップデート
自宅 Jira をアップデートしました。
README に沿って作業しただけですがメモを残しておきます。
今回はアップデートですが、新規インストールの手順もほとんど同じです。
Jira のバージョンは 3.9.2 から 3.12.3 へ、合わせて AP サーバは WebLogic Serve 8.1SP6 -> JBoss AS 4.2.2 へ移行しました。
1. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa
デフォルトではスタンドアロン版のみ表示されています。今回は自前の JBoss にデプロイするので "Show all" をクリックして Enterprise - WAR/EAR 版を表示、ダウンロード。
2. MySQL にデータベース作成
既存データベースに接続させることもできるけれども、最適なスキーマを作るには新規にデータベースを用意した方が良いとのことです。
$JBOSS_HOME/server/$MYCONFIG/deploy 以下に以下のファイルを作成してコネクションプール/データソースを作成。
jira312-ds.xml
<datasources>
<local-tx-datasource>
<jndi-name>Jira312DS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/jira312</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<connection-property name="useUnicode">true</connection-property>
<connection-property name="characterEncoding">UTF8</connection-property>
<user-name>USERNAME</user-name>
<min-pool-size>20</min-pool-size>
<max-pool-size>20</max-pool-size>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
</local-tx-datasource>
</datasources>
3. Jira のデータソース設定
atlassian-jira-enterprise-3.12.3/edit-webapp/WEB-INF/classes/entityengine.xml を修正
接続 DB を hsql から mysql に、schema-name を削除。
100: schema-name="PUBLIC"
↓
99: <datasource name="defaultDS" field-type-name="mysql"
100: <!--削除-->
atlassian-jira-enterprise-3.12.3/edit-webapp/WEB-INF/jboss-web.xml を作成。
<resource-ref>
<res-ref-name>jdbc/JiraDS</res-ref-name>
<jndi-name>java:/Jira312DS</jndi-name>
</resource-ref>
</jboss-web>
これでローカルJNDI に jdbc:/Jira312DS としてバインドされているデータソースをアプリケーションローカルの JNDI ツリーにリンクします。
atlassian-jira-enterprise-3.12.3/webapp/WEB-INF/web.xml を編集
以下をアンコメントてデータソースのリンクを有効にします。
<!-- Uncomment for WebSphere
<resource-ref>
<description>Database for JIRA</description>
<res-ref-name>jdbc/JiraDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>SERVLET</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>
Uncomment for WebSphere -->
4. Subversion プラグインの導入
http://confluence.atlassian.com/display/JIRAEXT/JIRA+Subversion+plugin
subversion-jira-plugin.properties を設定し、atlassian-jira-enterprise-3.12.3/edit-webapp/WEB-INF/classes/subversion-jira-plugin.properties に配置
atlassian-jira-enterprise-3.12.3/edit-webapp/WEB-INF/ に lib ディレクトリを作成し、atlassian-jira-subversion-plugin-0.10.3.jar、svnkit-1.1.6.jar を配置
5. Subversion プラグインインデックスの削除
これをしないと Subversion プラグインが以下のような例外を吐きます。
ちゃんとドキュメントに書いてあるんだけれども見落としててかなりハマった!!!
java.lang.NumberFormatException: For input string: "117b7e0d-5933-0410-9d29-ab41bb01d86bhttp://localhost/svn"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:412)
at java.lang.Long.parseLong(Long.java:461)
at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.getLogEntriesByProject(RevisionIndexer.java:659)
at com.atlassian.jira.plugin.ext.subversion.projecttabpanels.SubversionProjectTabPanel.getRecentCommits(SubversionProjectTabPanel.java:159)
.
.
.
6. warのビルド、デプロイ
Buildfile: build.xml
init:
.
.
.
Deployable WARs generated:
TOMCAT: atlassian-jira-enterprise-3.12.3/dist-tomcat/atlassian-jira-3.12.3.war
GENERIC: atlassian-jira-enterprise-3.12.3/dist-generic/atlassian-jira-3.12.3.war
See http://www.atlassian.com/software/jira/docs/latest/servers/ for install instructions
--------------------------------------------------
BUILD SUCCESSFUL
Total time: 3 minutes 20 seconds
$ mv dist-tomcat/tomcat-6/atlassian-jira-3.12.3.war $JBOSS_HOME/server/default/deploy/jira.war
7. 現行 Jira のバックアップ、新規インスタンスでインポート
既存 Jira インスタンスより、
ADMINISTRATION > Import & Export > Backup Data to XML
File name: バックアップ先/jirabackup.xml > "Backup"
新規インスタンスにアクセスし、インポート。
Import Existing Data
File name: /Users/yusukey/jirabackup.xml
以上でバージョンアップが完了しました。
見かけはほとんど変わりませんでした。
Jira(バグトラッキングシステム), Confluence(Wiki) など Atlassian 社の製品は日本では代理店であるイマヒマ社より購入していただくことも可能です。
・チームウェア - アトラシアン JIRA(ジラ):画期的な課題トラッキング! Confluence(コンフルエンス):企業向けウィキ
iPhone / iPod touch で JBoss を起動
iPhone 買いました。
まずやることは・・・、もちろん Jailbreak -> JBoss の起動ですよね。はい。
ピントがあまり合っていなくてわかりにくいですが、
1 Home画面
2 Terminal 起動
3 ls 実行
4 ./run.sh -c minimal 実行
5 ctrl + c でシャットダウン
ということをしています。minimal 構成じゃないと OutOfMemoryError で落ちてしまいます。
JVM は JamVM というのを Cydia (Jailbreak すると導入されるオープンアプリケーションインストーラ)からインストールしています。
・JamVM
JBoss Web すら起動していないので今のところ何も使い道がありません。
OpenJDK が移植されたらもう少し安定するかしら?
JBoss AS 4.2.3 の bin ディレクトリ
起動コマンドを呼び出したところ
起動完了!
起動するまでの標準出力はこんなかんじ。
./run.sh: line 89: ulimit: open files: cannot modify limit: Invalid argument
run.sh: Could not set maximum file descriptor limit: unlimited
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /var/mobile/Java/jboss-4.2.3.GA
JAVA: java
JAVA_OPTS: -Dprogram.name=run.sh -Xms32m -Xmx32m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
CLASSPATH: /var/mobile/Java/jboss-4.2.3.GA/bin/run.jar
=========================================================================
00:28:04,510 INFO [Server] Starting JBoss (MX MicroKernel)...
00:28:04,524 INFO [Server] Release ID: JBoss [Trinity] 4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)
00:28:04,553 INFO [Server] Home Dir: /private/var/mobile/Java/jboss-4.2.3.GA
00:28:04,556 INFO [Server] Home URL: file:/private/var/mobile/Java/jboss-4.2.3.GA/
00:28:04,573 INFO [Server] Patch URL: null
00:28:04,575 INFO [Server] Server Name: minimal
00:28:04,578 INFO [Server] Server Home Dir: /private/var/mobile/Java/jboss-4.2.3.GA/server/minimal
00:28:04,583 INFO [Server] Server Home URL: file:/private/var/mobile/Java/jboss-4.2.3.GA/server/minimal/
00:28:04,587 INFO [Server] Server Log Dir: /private/var/mobile/Java/jboss-4.2.3.GA/server/minimal/log
00:28:04,593 INFO [Server] Server Temp Dir: /private/var/mobile/Java/jboss-4.2.3.GA/server/minimal/tmp
00:28:04,602 INFO [Server] Root Deployment Filename: jboss-service.xml
00:28:10,913 INFO [ServerInfo] Java version: 1.5.0,GNU Classpath
00:28:10,916 INFO [ServerInfo] Java VM: JamVM 1.5.1,Robert Lougher
00:28:10,919 INFO [ServerInfo] OS-System: Darwin 9.3.1,arm
00:28:15,044 INFO [Server] Core system initialized
00:28:31,407 INFO [Log4jService$URLWatchTimerTask] Configuring from URL: resource:jboss-log4j.xml
00:28:35,626 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 30s:994ms
Oracle WebLogic Server 10g Release3 出荷
昨日まだTech Preview 段階だと書きましたが、GA版が出荷されているみたいです。
・ Oracle WebLogic Server 10.3 / Oracle JRockit 27.6 リリース - S/N Ratio (by SATO Naoki)
もう bea.com の方はメンテナンスしないんでしょうか、Tech Preview 版しか置いてありませんね。
これからは OTN からダウンロードすることになるみたいです。
・Oracle WebLogic Server
ログインしなくてもダウンロードできるのでちょっとだけ手軽になりました。
先日も
開発者向けの接続IPアドレス数制限を解除したり、プロダクションライセンスの IP ロックを無くしたりという動きがありました。
Oracle に買収されたことで顧客として嬉しい動きも少しずつながらありますね。
"Oracle" JRockit はこちらから。
・Oracle JRockit
WebLogic Server 10g Release 3 (10.3) ???
回避策が現段階で見つかっていない脆弱性がちょっと話題になっている WLS ですが、時を同じくして Tech Preview の段階の WLS 10.3 が、早くもサポート対象コンフィギュレーションのページに載りました。
・Supported Configurations for WebLogic Server 10g Release 3 (10.3)
・2008 Revision History
バージョン名 "WebLogic Server 10g Release 3 (10.3)"!!!
データベースみたいですね。
グリッドに対応した機能が追加されるという心意気の表れでしょうか?
主力製品のデータベースを似たバージョン名ルールを採用するということは、Oracle が WLS にたいして本気になっている証拠とも言えますね。
侍をアップデート - ファイルエンコーディング指定可能に
侍は当初スレッドダンプ解析ツールとして開発がスタートしましたが、単なるログビューアとして使っているという話も良く聞きます。
ログビューアとして使う場合、特に日本・韓国・中国で問題になるのがファイルのエンコーディング。
これまで侍はシステムのデフォルトエンコーディング - System.getProperty("file.encoding")でファイルを読み込んでおり、他のプラットフォームで記録されたログを表示する際、エンコーディングを変更する方法がなく文字化けに悩まされることがありました。
今更感もありますが、ようやくファイルエンコーディングを明示的に指定できるようになりました。
エンコーディング指定のメニュー
選択出来るエンコーディングのセットは Safari のメニューを参考にしています。
デフォルトのエンコーディングは相変わらずシステムのデフォルトエンコーディング - System.getProperty("file.encoding" が使われます。