*クラスタ(GlassFish) [#mb4d2204] GlassFishのクラスタを構築する。~ 1台目のPCを[[こちら>GlassFish(Ubuntu)]]を参照してセットアップしておく。~ *2台目の準備 [#db5dd53f] 1台目のPCと同じOSのPCを用意し、GlassFishはJavaを必要とするため、[[こちら>Java(Ubuntu)]]を参照して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 ~ *クラスタの作成 [#n7a438b9] 1代目のPCからブラウザを起動し、http://localhost:4848/にアクセスする。~ ~ まず、2台目のPCをノードとして登録する。~ なお、1代目のPCはlocalhost-domain1として既に登録されている。 左側のツリーから「ノード」を選択し、「新規」をクリックする。~ #ref(nd1.gif)~ ~ ノードの名前と2台目のPC名を入力し、GlassFish Serverのインストールにチェックを入れる。~ #ref(nd2.gif)~ ~ 1代目のPCと2台目のPCのユーザー名が異なるときはユーザー名を入力する。~ SSHユーザー認証をパスワードにし、パスワードを入力する。~ 入力がすべて終わったら「OK」をクリックする。~ #ref(nd3.gif)~ ~ ノードの作成が正常に終了すると画面がノードの一覧に切り替わる。~ #ref(nd4.gif)~ ~ ノードの作成が完了したのでクラスタを作成する。~ 左側のツリーから「クラスタ」を選択し、「新規」をクリックする。~ #ref(cl1.gif)~ ~ クラスタ名を入力する。~ 次に、作成するサーバー・インスタンスの「新規」ボタンをクリックしてインスタンスを追加し、各インスタンスの名前とノード(対象のPC)を選択する。~ インスタンスとは実際にサーバーとして動作する実態である。~ 各ノードに1つずつインスタンスを作成する。~ 入力が完了したら「OK」をクリックする。 #ref(cl2.gif)~ ~ クラスタが正常に作成されると画面が切り替わり、クラスタの一覧が表示される。~ この時点ではクラスタは起動していない。~ 起動するには作成したクラスタにチェックを入れ、「クラスタの起動」をクリックする。確認メッセージが表示されるので「OK」をクリックし起動する。~ #ref(cl3.gif)~ ~ クラスタが起動すると、インスタンスが稼働中にかわる。~ #ref(cl4.gif)~ ~ クラスタの起動・停止をコマンドから行うには以下のコマンドを使用する。~ > /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 **アプリケーションのデプロイ [#w4ce5255] アプリケーションのデプロイは次のようにクラスタ名をターゲットにして行う。~ > /usr/local/glassfish4/bin/asadmindeploy --force --target cluster1 /media/sf_shared/MySample.ear **EJBTimer用の設定 [#h9659a67] デフォルトのタイマー管理用のDBはクラスタで動作しないため、設定を行う。~ ~ 構成>クラスタ名-config>EJBコンテナを開き、EJBタイマー・サービスのタイマー・データソースに作成したJDBCリソース名を入力し、「OK」をクリックする。~ #ref(et1.gif)~ ~ 管理用のテーブルを作成するため下記のSQLをデータベースに対して実行する。~ > /usr/local/glassfish4/glassfish/lib/install/databases/ejbtimer_mysql.sql ~ *コメント [#ob7400c7] #comment