*クラスタ(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

**JDBCリソースの再設定 [#q87afb57]
一度リソースを削除して作成したクラスタをターゲットに再度JDBCリソースの作成を行う。~
JDBCのプールを再作成する必要はない。(なお、java.sql.Driverタイプのプールは制約がある)~
>
 /usr/local/glassfish4/bin/asadmin delete-jdbc-resource jdbc/mysql
 /usr/local/glassfish4/bin/asadmin create-jdbc-resource --target cluster1 --connectionpoolid MysqlPool jdbc/mysql

**EJBTimer用の設定 [#h9659a67]
デフォルトのタイマー管理用のDBはクラスタで動作しないため、設定を行う。~
~
構成>クラスタ名-config>EJBコンテナを開き、EJBタイマー・サービスのタイマー・データソースに作成したJDBCリソース名を入力し、「OK」をクリックする。~
#ref(et1.gif)~
~
管理用のテーブルを作成するため下記のSQLをデータベースに対して実行する。~
>
 /usr/local/glassfish4/glassfish/lib/install/databases/ejbtimer_mysql.sql 

~
**JMSリソースの再設定 [#j7d3cbf2]
事前に一部のループバックアドレスの使用を停止する。~
下記のコマンドを入力し、hostsファイルを編集する。~
>
 sudo gedit /etc/hosts

2行目の127.0.1.1をPCのIP(固定IP)に変更する。~
この操作をクラスタのインスタンスがあるすべてのPCで行う。~
>
 127.0.0.1	localhost
 192.168.1.21	AP1.local	AP1
 #(以下省略)

一度リソースを削除して作成したクラスタをターゲットに再度JMSリソースの作成を行う。~
>
 /usr/local/glassfish4/bin/asadmin delete-jms-resource jms/factory
 /usr/local/glassfish4/bin/asadmin delete-jms-resource jms/queue
 /usr/local/glassfish4/bin/asadmin delete-jms-resource jms/topic
 /usr/local/glassfish4/bin/asadmin create-jms-resource --target cluster1 --restype javax.jms.ConnectionFactory jms/factory
 /usr/local/glassfish4/bin/asadmin create-jms-resource --target cluster1 --restype javax.jms.Queue jms/queue
 /usr/local/glassfish4/bin/asadmin create-jms-resource --target cluster1 --restype javax.jms.Topic jms/topic

デフォルトのJMS構成の場合、JMSのログは次のファイルに記録される。~
>
 /usr/local/glassfish4/glassfish/nodes/localhost-domain1/ap1/imq/instances/cluster1ap1/log/log.txt
 /usr/local/glassfish4/glassfish/nodes/AP2/ap2/imq/instances/cluster1ap2/log/log.txt


**アプリケーションのデプロイ [#w4ce5255]
アプリケーションのデプロイは次のようにクラスタ名をターゲットにして行う。~
>
 /usr/local/glassfish4/bin/asadmindeploy --force --target cluster1 /media/sf_shared/MySample.ear

http://ap1.local:28080/アプリケーション名とhttp://ap2.local:28080/アプリケーション名にアクセスして動作を確認する。~
*コメント [#ob7400c7]
#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS