GlassFish?のクラスタを構築する。
1台目のPCをこちらを参照してセットアップしておく。
1台目のPCと同じOSのPCを用意し、GlassFish?はJavaを必要とするため、こちらを参照して1台目と同様にJavaをインストールしておく。
まず、1台目のPCから遠隔で操作するためOpenSSHをインストールする。パスワードが聞かれるのでパスワードを入力し、確認メッセージが表示されたらyを入力し進める。
sudo apt-get install openssh-server
次に、遠隔から利用するユーザーglassfishを作成する。
sudo adduser glassfish
続いてglassfish4のインストールディレクトリを作成し、所有者をユーザーglassfishに変更する。
インストールは遠隔で行うためここではディレクトリの作成のみを行う。
sudo mkdir /usr/local/glassfish4 sudo chown -R glassfish /usr/local/glassfish4
1代目のPCからブラウザを起動し、http://localhost:4848/にアクセスする。
まず、2台目のPCをノードとして登録する。
なお、1代目のPCはlocalhost-domain1として既に登録されている。
左側のツリーから「ノード」を選択し、「新規」をクリックする。
#ref(): File not found: "nd1.gif" at page "クラスタ(GlassFish)"
ノードの名前と2台目のPC名を入力し、GlassFish? Serverのインストールにチェックを入れる。
#ref(): File not found: "nd2.gif" at page "クラスタ(GlassFish)"
1代目のPCと2台目のPCのユーザー名が異なるときはユーザー名を入力する。
SSHユーザー認証をパスワードにし、パスワードを入力する。
入力がすべて終わったら「OK」をクリックする。
#ref(): File not found: "nd3.gif" at page "クラスタ(GlassFish)"
ノードの作成が正常に終了すると画面がノードの一覧に切り替わる。
#ref(): File not found: "nd4.gif" at page "クラスタ(GlassFish)"
ノードの作成が完了したのでクラスタを作成する。
左側のツリーから「クラスタ」を選択し、「新規」をクリックする。
#ref(): File not found: "cl1.gif" at page "クラスタ(GlassFish)"
クラスタ名を入力する。
次に、作成するサーバー・インスタンスの「新規」ボタンをクリックしてインスタンスを追加し、各インスタンスの名前とノード(対象のPC)を選択する。
インスタンスとは実際にサーバーとして動作する実態である。
各ノードに1つずつインスタンスを作成する。
入力が完了したら「OK」をクリックする。
#ref(): File not found: "cl2.gif" at page "クラスタ(GlassFish)"
クラスタが正常に作成されると画面が切り替わり、クラスタの一覧が表示される。
この時点ではクラスタは起動していない。
起動するには作成したクラスタにチェックを入れ、「クラスタの起動」をクリックする。確認メッセージが表示されるので「OK」をクリックし起動する。
#ref(): File not found: "cl3.gif" at page "クラスタ(GlassFish)"
クラスタが起動すると、インスタンスが稼働中にかわる。
#ref(): File not found: "cl4.gif" at page "クラスタ(GlassFish)"
クラスタの起動・停止をコマンドから行うには以下のコマンドを使用する。
/usr/local/glassfish4/bin/asadmin start-cluster cluster1 /usr/local/glassfish4/bin/asadmin stop-cluster cluster1
各PCの起動時にインスタンスを自動的に起動するためには次のコマンドで登録を行う。
このコマンドは各インスタンスが稼働しているPCで実行する。遠隔ではない。
sudo /usr/local/glassfish4/bin/asadmin create-service --serviceuser glassfish ap1 sudo /usr/local/glassfish4/bin/asadmin create-service --serviceuser glassfish ap2
各インスタンスのログは次の場所に格納されている。
/usr/local/glassfish4/glassfish/nodes/localhost-domain1/ap1/logs/server.log /usr/local/glassfish4/glassfish/nodes/AP2/ap2/logs/server.log
アプリケーションのデプロイは次のようにクラスタ名をターゲットにして行う。
/usr/local/glassfish4/bin/asadmindeploy --force --target cluster1 /media/sf_shared/MySample.ear
デフォルトのタイマー管理用のDBはクラスタで動作しないため、設定を行う。
構成>クラスタ名-config>EJBコンテナを開き、EJBタイマー・サービスのタイマー・データソースに作成したJDBCリソース名を入力し、「OK」をクリックする。
#ref(): File not found: "et1.gif" at page "クラスタ(GlassFish)"
管理用のテーブルを作成するため下記のSQLをデータベースに対して実行する。
/usr/local/glassfish4/glassfish/lib/install/databases/ejbtimer_mysql.sql