PayaraをCENTOS7で動かしてみる

 せっかくJavaEE7の仕事しているので、他にも何か作ろうかなと思い、自宅のVMにCENTOSを入れてPayaraを動かすことにしました。weblogicは高いし、glassfishは将来性が。。Payaraもglassfishなんですけど、将来性があるかと思い、こちらからMulti-Language Web Profileをダウンロード
http://www.payara.fish/all_downloads

なお自宅のVMはGIGABYTEのBRIX。
http://www.gigabyte.jp/products/product-page.aspx?pid=4581#ov
1年半くらい前にSSD250Gとメモリ8G*2を突っ込み合計8万くらいで作ったもので、VMware ESXiを入れてます。先日、Windows Server 2016 Technical Preview 4も仮想に入れてみました。入れただけですが。。これは今年9月くらいには使えなくなるみたいです。

 久しぶりにCENTOSをググってみるとバージョンが7になっています。4GあるDVDISOをダウンロードし、仮想マシンを作成してDVDISOからインストール。インストールウィザードだけで殆ど設定は完了。
centos7
次にTeraTeamからCENTOSに入ってJavaインストール

 yum search jdk java でちょうどいいのを探して、
 yum install java-1.8.0-openjdk.x86_64

次はダウンロードしたPayaraを、/optに解凍します。

で早速、Payaraを解凍したディレクトリpayara41/glassfish/binにあるstartservを実行。

動いたらしいので、Payaraの管理コンソールを表示してみます。 http://サーバIP:4848
あれれ、繋がらない?TeraTeamからサーバに入って、

ps -ef | grep java
 ちゃんとプロセスは動いています。

次はyum nmapでインストール後、ポートチェック。
 nmap localhost → 4848/tcp open appserv-http
 OKだけど、なんでだろう??

ネットワーク系問題の匂いがぷんぷんする中、原因をググっていくと、下記を発見
https://blog-kazuhisya.rhcloud.com/2014/06/15/getting-started-with-rhel7/

 firewall-cmd –permanent –add-port=4848/tcp
 やっとコンソールを表示できました。。が、リモートからだとデフォルトではコンソールにログイン出来ない模様。。

TeraTeamに戻って上記のbinで、
./asadmin enable-secure-admin
./asadmin change-admin-password
であとは再起動
./stopserv
./startserv &
やっと入れました。。
payara
で、何作ろうか?

VFS2でのFTP送信を追加

今作っているアプリケーションの要件に他サーバへ日次でFTP送信するというのがあり、シェルでいいかと思っていたのですが、既に別要件でVFS2を使っていたので、ついでにFTP送信もVFS2でやる事にしました。で、前に作ったクラスに下記を追加。

カテゴリー: Java

兵馬俑は事実を可視化したもの

 先日、上野の国立博物館に「始皇帝と大兵馬俑」を見に行きました。混んでる事を見込んで平日水曜日に行きましたが、平日でも結構混んでます。こういうのはじっくり見たいので、混んでると途端に気持ちがダウンしちゃうんですよね。。でも、展示の最後に職業柄考えさせられる一文、「永遠に皇帝であらんが為の事実を可視化する為に兵馬俑を作った」というニュアンスの事が書かれていたのに注視しました。
 システムに携わる人として可視化という言葉には、反応せざるを得ません。システムは画面以外目で見えないものなので、ドキュメントを書く事で可視化しますが、始皇帝は膨大なリソースを費やし、数千、万?のリアルな陶器を作る事で可視化したという事です。
 数年前に携わった、とある企業の基幹システムリプレイス要件定義フェーズで、一番受けが良かったと感じているのが、既存システム構成を可視化した「絵」です。中規模以上の企業ですと、複数のシステムが連携しながらその企業のビジネスの根底を担っていることが多いかと思います。でも、業務ユーザーの方々は自分の社内システムがどう構成されているかをそれほど把握していません。システム部門の方々は、どちらかというとインフラよりの観点が強いです。要件を聞き出す為に今の形が可視化された物が欲しいと思いましたが、既存資料に該当するものが無かったので、下記に気を付けて全体俯瞰図的な絵を書いてみました。
 1.1枚に収める(A4サイズにすべてを収めないとヒアリング時にすぐ見れない)
 2.サーバマシン等のインフラ単位ではなく、ユーザーが日常業務で言っているシステム名を1つの単位とする(利用部門等の境界が解る)
 3.1つのシステムが大きい場合はその中に分離できそうなものをサブシステムとして枠を引く(作業分担すべき境界が解る)
 4.重要データはどこにあるのか解るように入れておく(データ移行元とすべき場所が解る)
 5.システム間、外部、利用者との繋がりを矢印の線でつなぐ(in outが解る)
 6.完成を待たずに常に打ち合わせ時に持っていて見てもらい足りない所や間違いを指摘してもらう
こんな感じでした。
fukan

 その後、空いていた常設展示を見に行き、誰もが知ってる国宝になってる日本の埴輪を見ましたが、明らかにクオリティ的には兵馬俑の方が高いです。しかも、兵馬俑は埴輪に対し700年くらい古いものです。でも、緊張感に満ちた表情が殆どの兵馬俑よりも埴輪は「いい味」出してるなあという感じがします。これってただの自国びいきなんでしょうか?それとも強大な権力者から言われて作ったものよりも、自発的に作られたもの(真意は知りませんが)の方が共感を得やすいという事を表しているのでしょうか?

VFS使用時の注意事項

 前に載せたapache.commons.vfs2を使ったファイルダウンロードをテストすると問題が発生しました。テスト内容は、
1.大きなファイルをダウンロードしてみる
2.複数のブラウザから同時にダウンロードしてみる
ですが、1は問題無いものの、2は後からダウンロードした方がFileObjectからInputStream取得時に失敗しています。今のやり方だとマルチセッションに対応していないようです。
 で、ググってみると下記を発見。
 http://timurlaykov.blogspot.jp/2011_05_01_archive.html

FileSystemManager fsManager = VFS.getManager();
でなく、
StandardFileSystemManager fsManager = new StandardFileSystemManager();
fsManager.init();
に置き換えるというもの

同時アクセスといっても大量に発生する事は今回考えなくてよいので、この内容に変えました。

 しかし、ググってばかりでいいんでしょうか?VFSはオープンソースなんだから、ちゃんとソースを解析して問題を解決したいのですが、やはりプログラミングを10年近くサボっていたからでしょうか、自力だといつ解決できるのか自信が持てません。。

カテゴリー: Java