2008年9月16日火曜日

Apache-JBOSS連携

目的)
サーバメンテナンス時に、保守時間帯の告知を事前に行うが、
サーバを停止時に、リンク切れにするのではなく、
サーバがメンテナンス中であるページを出力することを考える。

サイト検索で、いくつかありました。

[1]
保守サーバ(PC)に切り替える。
:これは単なるWWWサーバのみ。簡易的です。

[2]
ロードバランスで、保守サーバに切り替える。
:これは、ちょっと大げさ?

[3]
WWWサーバ(apache)とは別にtomcat,jbossがいて、
tomcat等を切り離した際、apacheからリンク切れ(httpエラー)のページを別なものに入替える。

~~~~~~~~~~~~~~~~~~~~~~~~~~
というわけで?今回:apache+jbossの連携手順を確認します。
:この手の情報は、サイトに満載しています。いいとこどりと動作確認を兼ねて情報整理。
~~~~~~~~~~~~~~~~~~~~~~~~~~
環境)
今回は以下のような構成とします。


jbossをapacheとは別サーバで実行する。
:apacheをロードバランスとして使用する場合、必然的にJBOSSとはPCを分けることになる。
:今回はロードバランスまでは言及しません。

インストは、基本的にdefaultです。

[apache]
apache_2.2.3-win32-x86-no_ssl.msi
C:\Program Files\Apache Software Foundation\Apache2.2
http://localhost/

[jboss]
jboss-4.2.2.GA.zip
Server1:C:\Biz2\jboss-4.2.2.GA
Server2:C:\Biz\jboss-4.2.2.GA
http://localhost:8080/
http://localhost:8080/jmx-console/
http://localhost:8080/web-console/

[java]
微妙に違っていましたが、一応記録。
Server1:java version "1.5.0_07"
Server2:java version "1.5.0_16"

~~~~~~~~~~~~~~~~~~~~~~~~~~
Server1の設定
~~~
[1]
C:\Program Files\Apache Software Foundation\Apache2.2\conf
httpd.conf を編集。

・以下を有効。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

・以下を追加。
Include conf/extra/httpd-proxy.conf

~~~
[2]
C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra
httpd-proxy.conf を作成。

@@@
参考)
http://www.failuresoft.com/report/jboss/jboss40_apache22.html
@@@

:jbossをapacheと同一PCにインストする場合は以下。

> type httpd-proxy.conf
<Location />
ProxyPass ajp://localhost:8009/
</Location>
>

:今回は、別PC:192.168.0.213 なので、
<Location />
ProxyPass ajp://192.168.0.213:8009/
</Location>
~~~
[2-1]更に、jbossの各種コンソールを無制限に開けないように指定する。
:apacheの動作しているPC(localhost,192.168.0.122)でのみ許可する。
:ここでは、コンソールでないと、許可しないという意味になるが、状況にあわせてIPを指定する。
 ちなみに、予想される動きであるが、マスク内のPC群(LAN内の全てのPC)にアクセス許可を与える。
Allow from 192.168.0.0/255.255.255.0

最終的に、httpd-proxy.conf は以下のようになる。

> type httpd-proxy.conf
<Location />
ProxyPass ajp://192.168.0.213:8009/
</Location>

<Location /web-console/*>
Order deny,allow
Deny from all
Allow from localhost
Allow from 192.168.0.122/255.255.255.255
</Location>

<Location /jmx-console/*>
Order deny,allow
Deny from all
Allow from localhost
Allow from 192.168.0.122/255.255.255.255
</Location>
>

@@@
番外)
jbossを別PCにする前に、Server1:apache+jbossでも動きを確かめた。
@@@

~~~
[2-2]動作確認1
apacheのみ起動。jbossは起動しない。
http://localhost/
:apacheのページ出力。
http://localhost/jmx-console/
:NG
@@@
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
@@@
:今回、メンテナンス時には、上記のページが出力される。

~~~
[2-3]動作確認2
Server2で、jbossを以下のように起動。

C:\Biz\jboss-4.2.2.GA\bin
run.bat -b 0.0.0.0
http://localhost/jmx-console/
http://localhost/web-console/
http://192.168.0.122/jmx-console/
http://192.168.0.122/web-console/
:いずれも、OK

Client(192.168.0.210)では、
http://192.168.0.122/
:OK
http://192.168.0.122/index.html
:OK
http://192.168.0.122/jmx-console/
:許可していないので、403 アクセス不可となる。想定内です。
http://192.168.0.122/web-console/
:許可していないので、403 アクセス不可となる。想定内です。
~~~
但し、
jbossを
run.bat -b 0.0.0.0
で動かしているので、
Server2に直にアクセスできてしまう。意味がない!
http://192.168.0.213:8080/
http://192.168.0.213:8080/index.html
http://192.168.0.213:8080/jmx-console/
http://192.168.0.213:8080/web-console/
その対策を以下で行う。

~~~
[3]Server2でファイル編集。
@@@
参考)
http://www.flexive.org/docs/3.0/website/jboss_installation.html
http://bellks-tec.cocolog-nifty.com/blog/2007/06/jboss_42_22c0.html
@@@

~~~
[3-1]
C:\Biz\jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer
server.xml
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
をコメント。
:8080でアクセスできなくする。

~~~
[3-2]
jbossを以下で実行する。
-bで指定するIPは、Server2 のもの。

run.bat -b 192.168.0.213
or
run.bat -b 0.0.0.0

@@@:2008/09/17:add
1台のPCにおいて複数のIPでjbossを動かすのでなければ、-b 0.0.0.0 でOK。
@@@

~~~
[3-3]動作確認1
[at Server1]
http://192.168.0.213:8080/
:NG:想定内。
http://localhost/
:OK
http://localhost/index.html
:OK
http://localhost/jmx-console/
:OK
http://localhost/web-console/
:OK
[at Client]
http://192.168.0.213:8080/
:NG:想定内。
http://192.168.0.122/
:OK
http://192.168.0.122/index.html
:OK
http://192.168.0.122/jmx-console/
:許可していないので、403 アクセス不可となる。想定内です。
http://192.168.0.122/web-console/
:許可していないので、403 アクセス不可となる。想定内です。
~~~
[3-4]動作確認2
二次元バーコードのテストで使用した
http://humanbeing-etcman.blogspot.com/search/label/QR%20code

qrcode.war をServer2にdeploy。

@@@
番外)
お試しサイトは既になくなっていました、、、?
@@@
http://192.168.0.122/qrcode/test/index.jsp
:出ました:OK

~~~
補足):老婆心ながら、
Server1,Server2は、基本的に
firewall等で、許可ポートを制限必要があります。
~~~
end

Room To Read

KI図書館
2008/09/15:読み終わりました。
最近専門書ばかりなので、「マイクロソフト」という文字からたまたま手にとった新書。
マイクロソフトでは出会えなかった天職 僕はこうして社会起業家になった
ジョン ウッド 矢羽野薫 (ハードカバー - 2007/9/21)
:ビデオの紹介ありました(WOW)。

最近、涙腺が弱くなったが、更にこれは追い討ちをかけた。
~~~
番外)うちの子が、本のタイトルを見て、「転職して天職を見つけた」と言っていた。
反応が鈍く怒られてしまった、、、
~~~
ビジネスモデルがどうこう言うつもりはないが、

現地にかなりの部分を委譲しているようなので、
リーダーであるが、リーダーでないような、

いい意味で確固たるフレームワークはなく、永遠に?現在進行形の組織。

以前読んだ、
[1]ヒトデはクモよりなぜ強い 21世紀はリーダーなき組織が勝つ
オリ・ブラフマン/ロッド・A・ベックストローム (著), 糸井 恵 (翻訳)
http://humanbeing-etcman.blogspot.com/2008/05/wikiblog.html

を思い出した。
~~~
いずれにしても、読んでいてすがすがしい気持ちにさせてくれた。
~~~
我々はお金以外に何ができるだろうか?TODO)
:やはり、お金しかないのか?
~~~
習得言語としては、自国語は当然としても、英語なのだろう。

日本語の本を贈っても、教える人がいないと何にもならないし、
日本の魅力が低下しているなかで、あえて日本語を習得する人が増える?とも思えない。

http://www.roomtoread.org/
から、日本語ページにも切り替わり、
BookOffが、本の寄贈を仲介している模様、、、
:日本語の本をそのまま贈っていいの? 疑問が残る。追跡調査:未!TODO)
~~~
ビル・ゲイツの話も少しあり、「ゲイツ財団」を思い出しました。
http://www.gatesfoundation.org/default.htm
詳細:未!

end

2008年9月15日月曜日

ばくりっこ

2008/09/14)
KI図書館
事前に持ち込みで、「ばくりっこ券」102冊分。2007からの持ち越しも含めて。
自分の分で入手したものは以下。
~~~
[1]
複雑系―科学革命の震源地・サンタフェ研究... (新潮文庫) M.ミッチェル ワールドロップ、Mitchell M. Waldrop、田中 三彦、 遠山 峻征 (文庫 - 2000/5)
複雑系、新潮社、1996/06/30発行、1997/04/15:17刷、文庫本でないやつ。
M.ミッチェル ワールドロップ (著), Mitchell M. Waldrop (著), 田中 三彦 (著), 遠山 峻征 (著)
:以前、SA図書館から、単行本を借りたが、半分くらいまで読んだ。
:これで、サンタフェ研究所を知りました。読み応えあります。
~~~
[2]
gnuplotパーフェクト・マニュアル (whatis UNIXシリーズ) 川原 稔 (単行本(ソフトカバー) - 1999/10)
SOFTBANK、1999/10/28
:もっぱらRで処理しているが、単独で、3次元のデータグラフツールとして使っています。
:インターネットで使い方を調べているが、本の便利さもあります。
~~~
[3]
ゲームの理論入門―チェスから核戦略まで (ブルーバックス 217) モートン D.デービス、桐谷 維、 森 克美 (1973/1)
:ジョン・フォン・ノイマンのゲーム理論がベース?
:ジョン・ナッシュはまだ出てこない?
~~~
[4]
バイオサイエンス入門―生命現象の不思議を探る (講談社現代新書) 藤本 大三郎 (新書 - 1993/5)
:とりあえず、ゲット。
:DNAの知識を再チェック?1993古い?
~~~
[5]
COSMOS 上 (1) カール・セーガン 木村 繁 (単行本 - 1980/11)
下もあります。
:古いが。最新の情報に、最新の知見があるとは限らない。
~~~
[6]
謎の神代文字―消された超古代の日本 佐治 芳彦 (単行本 - 1979/10)
:オカルテックには興味があります。
:本当かどうかは別にしても、読んでいて楽しい。
:デフォルメされた形で継承されているにしても、太古の英知、知見が垣間見れる場合もあります。
~~~
今回交換で、「ばくりっこ券」残80冊。
翌年持越しができるのがうれしい。
基本的に、部屋のスペース確保が目的なので、この券は永久に残ることでしょう。
end

2008年9月11日木曜日

Robot's hand created 3X years ago

発見!小6の夏休みに作成。ひもを引くと指が曲がる。
筋肉の代わりに、輪ゴムをつけたような(今はなし)。
ありもので作成(ベニヤ、蝶番、針金、木っ端など)。
鉄腕アトムの御茶ノ水博士にあこがれた世代です。







2008年9月10日水曜日

廃棄物4号:タッチパネル

シリアルポートに接続し、ディスクトップでもタッチパネルの感覚が味わえる代物です。
今ではノートPCであたりまえになっているが、ディスクトップでの存在価値は今も昔も
少数派?でした。お絵かきには中途半端で、結局、マウスに戻っていく。

2008年9月9日火曜日

JBOSSのリモート監視(1)

WindowsマシンのJBOSSをリモートで監視するために、
ターミナルサービス(今は、リモートディスクトップ接続という?)を使用する。

そのため、コンソールでJBOSSを起動していたものをサービス化する。
ターミナルサービスはコンソールにも切替えられるが、コンソール画面のまま
放置して運用は出来ないので、却下。

普段は、開発段階はWindowsで、Linuxに切り替えて運用するパターンが多いが。
今回は、DBがMS SQL Server 2005 なので、運用もWindowsとなった。

そこで、Windowsで、JBOSSをサービス化する方法を確認。記録を残す。

~~~
[1]関連サイトを探す。たどり着いた先は、

http://wiki.jboss.org/wiki/JBossNativeWindows
http://www.jboss.org/jbossweb/downloads/
jboss web native connectors Current packages

JBoss Native 2.0.4 Win32 Windows 32 package 1.0MB 2008-01-29 LGPL 4256 Download

※JBoss Native 2.0.1 も動作確認したが、現時点の最新版が使えた。

~~~
[2]環境
XP Pro SP3 IP:192.168.0.122
jboss-4.2.2.GA C:\Biz2\jboss-4.2.2.GA\bin
jdk1.5.0_07 C:\Biz\java\jdk1.5.0_07

~~~
[3]JBoss Nativeの展開等

C:\Biz\download\jboss
jboss-native-2.0.4-windows-x86-ssl.zip

melt

C:\Biz\download\jboss\jboss-native-2.0.4-windows-x86-ssl\bin
README-service.txt
を見る。
:jboss-5.0.0 の記述あり。流れを確認。

C:\Biz\download\jboss\jboss-native-2.0.4-windows-x86-ssl\bin
2008/04/09 21:08 61,440 jbosssvc.exe
2008/04/09 21:08 126,976 jbossweb.exe
2008/04/09 21:08 180,224 jbosswebw.exe
2008/04/09 21:07 1,892 README-service.txt
2008/04/09 21:07 3,264 service.bat

C:\Biz2\jboss-4.2.2.GA\bin
にコピー。

~~~
[4]
run.bat ー>run-jdk1.5.0_07.bat
shutdown.bat ー>shutdown-jdk1.5.0_07.bat
service.bat ー>service-2.0.4-jboss422.bat
を別名にして編集。※直接編集してもいいが、後から戻すことを考えて。

~~~
[4-1]
run-jdk1.5.0_07.bat
shutdown-jdk1.5.0_07.bat
ファイルの先頭に、

set JAVA_HOME=C:\Biz\java\jdk1.5.0_07

を挿入する。

TODO)service.bat に入れても動くか?未確認。

~~~
[4-2]
service-2.0.4-jboss422.bat
を修正する。

===
修正方針)
1)run.bat -b 0.0.0.0 で、外部からアクセス。

2)run.log には出力しない。ログはlog4jで以下に出力しているので。
C:\Biz2\jboss-4.2.2.GA\server\default\log
※但し、試行段階では、run.logでトラブル内容が確認できるので、あった方がベター。
===

修正部分のみ抜粋。基本的に前は、remで残した。
※restartが出来ないので、:cmdRestart の修正は不要?
***
set SVCNAME=JBAS42SVC
set SVCDISP=JBoss Application Server 4.2
set SVCDESC=JBoss Application Server 4.2.2 GA/Platform: Windows x86
***
:cmdStart
rem @@@
rem call run.bat < .r.lock >> run.log 2>&1
call run-jdk1.5.0_07.bat -b 0.0.0.0 < .r.lock
rem @@@
***
:cmdRestart
rem @@@
rem call run.bat < .r.lock >> run.log 2>&1
call run-jdk1.5.0_07.bat -b 0.0.0.0 < .r.lock
rem @@@
***
:cmdStop
rem @@@
rem call shutdown -S < .s.lock >> shutdown.log 2>&1
call shutdown-jdk1.5.0_07.bat -S < .s.lock >> shutdown.log 2>&1
rem @@@
***
:cmdRestart
rem @@@
rem call shutdown -S < .s.lock >> shutdown.log 2>&1
call shutdown-jdk1.5.0_07.bat -S < .s.lock >> shutdown.log 2>&1
rem @@@
***
:cmdInstall
rem @@@
rem jbosssvc.exe -imwdc %SVCNAME% "%DIRNAME%" "%SVCDISP%" "%SVCDESC%" service.bat
jbosssvc.exe -imwdc %SVCNAME% "%DIRNAME%" "%SVCDISP%" "%SVCDESC%" service-2.0.4-jboss422.bat
rem @@@

~~~
[5]インストール
C:\Biz2\jboss-4.2.2.GA\bin
service-2.0.4-jboss422.bat install

~~~
[6]動作確認
***
開始
:コンパネ:OK
:コマンド:OK
net start JBAS42SVC

プロセス
java.exe :安定するまで待つ。
jbosssvc.exe

***
http://localhost:8080/
:OK
http://192.168.0.122:8080/
:OK

***
停止
:コンパネ:OK
:コマンド:OK
net stop JBAS42SVC

2つのプロセスがない:OK
***
自動起動
windows reboot
:OK
~~~
以上です。

廃棄物3号:scsi tape drive QIC-150

1994/05/xx前後)
MO Jukebox(Autochanger)をネットに接続して、ファイルサーバにするための
プロジェクトをやっていた。
仕様的には、5インチMO、2ドライブ、全メディア実装で容量60GBぐらいの代物。

既に、FTPサーバで、プロトタイプは開発中。
ちなみに、OSは、SUNOS4.1.3。実装には、BSD-OS、slackware(試行のみ)をターゲットにしていた。
一応、SONY NEWSにもJukeboxをつなげて、基本動作はしていた。

次のターゲットとして、プロトコルをNFSにしようと考えた。調査を開始した。

会社にはインターネットは接続しておらず、個人的にパソコン通信のNIFTY。
今回、参考にしたソースは、秋葉のshopから通販でCDを購入したもの。
~~~
近くのテクノパークで、インターネット(東京までの専用線を共用)した場合、
1社月100万とか、担当者がいっていた(mmmmmmmm....)。
しかし、その後、プロバイダーが出てきて、大衆にブレイクした。
~~~
NFSライブラリをのソースを改変しようとしていた。
:ある程度の確認はできた。
:夏休み?ゴールデンウィーク?に自宅にSUNマシン(SSELC)を会社から持込、
ソース調査、修正にトライしたもの。
:その後、メディア(QIC-150)だけが残り、読み出すために、中古のテープドライブを当時5万くらい
で購入した(1998/1999ころ)。

~~~
既に、テープのデータはバックアップしたような記憶もあるが、
今回廃棄にあたって、再度、吸い上げ、消去する。

~~~
環境)
OS:Fedora Core 6(FC6)
SCSI Adapter:Adaptec 2940A Ultra SCSI adapter
Tape Drive:SCSI ID=4

~~~
デバイス確認)
var/log/messages

Sep 7 06:22:49 m6tsu kernel: SCSI subsystem initialized
Sep 7 06:22:49 m6tsu kernel: ACPI: PCI Interrupt 0000:02:01.0[A] -> Link [LNKB] -> GSI 11 (level, low) -> IRQ 11
Sep 7 06:22:49 m6tsu kernel: scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0
Sep 7 06:22:49 m6tsu kernel:
Sep 7 06:22:49 m6tsu kernel: aic7860: Ultra Single Channel A, SCSI Id=7, 3/253 SCBs
Sep 7 06:22:49 m6tsu kernel:
Sep 7 06:22:49 m6tsu kernel: Vendor: ARCHIVE Model: VIPER 150 21531 Rev: -004
Sep 7 06:22:49 m6tsu kernel: Type: Sequential-Access ANSI SCSI revision: 01
Sep 7 06:22:49 m6tsu kernel: target0:0:4: Beginning Domain Validation
Sep 7 06:22:49 m6tsu kernel: target0:0:4: Ending Domain Validation

***
Sep 7 06:22:49 m6tsu kernel: scsi 0:0:4:0: Attached scsi generic sg0 type 1
Sep 7 06:22:49 m6tsu kernel: st: Version 20050830, fixed bufsize 32768, s/g segs 256
Sep 7 06:22:49 m6tsu kernel: st 0:0:4:0: Attached scsi tape st0
Sep 7 06:22:49 m6tsu kernel: st0: try direct i/o: yes (alignment 512 B)

~~~
読み出す)

# tar -tvf /dev/st0
# tar -xvf /dev/st0

60MBで、12mins (HOST:1GHz,512MB memory)

1994/05/31のメディア:まだ読めました!テープはすごい?

メディアのほとんどは未使用で、
1999/06/07に60MBの読み書きテストを行った痕跡あり。

1998-09-23 08:25:26 mysql/mysql-3.21.26-gamma
1998-08-15 05:50:16 jdk/jdk1.1.6
などがあった。

~~~
あとは、CD-Rに退避。未!TODO) 2008/09/26:done
:1枚に収まります。

~~~
消去):QIC-150、15本

# mt -f /dev/st0 erase

***
mtなし。

パッケージマネジャーで、
一覧、
mt-st Install mt-st you need a tool to control tape drives.
mt-st-0.9b-2.2.2
を導入。

# which mt
/bin/mt

***
earse:3mins done

to check tape after erased.

# tar -tvf /dev/st0
tar: /dev/st0: read 不能: 入力/出力エラーです
tar: テープの先頭です. 処理を中止します
tar: エラーを回復できません: 直ちに終了します
#
※廃棄には、完璧ではないが、これまで。TODO)





~~~
番外)
FC6上でのVMWare Guest:Windows 2000 Pro SP4で、デバイスは認識したが、
バックアップ・ユーティリティをインストしていないので、読み書き動作確認は中断!

ARCHIVE VIPER 150 21531 SCSI
~~~
end.2008/09/10