Posts tagged ‘Administration’

GlassFish データベースの設定


GlassFishはデータベースとの接続にデータベースベンダーが提供するJDBCドライバを使用します.

GlassFishにはインストール時デフォルトで Java DBが付属しており,あらかじめJava DBに対するJDBCリソースと接続プールの設定がされています.そして GlassFish の監視系の機能の一つである,「呼び出しフロー」のデータ保存先として使用されています.
ここでは,新たにMySQL 5.1との接続設定方法について紹介します.MySQLと接続するためには,MySQLのJDBCドライバを事前に入手しておいてください.
また以降の手順ではMySQLが既にインストールされていることを前提に説明します.

JDBCドライバに対するクラスパスを設定

dashost > asadmin get “cluster1-config.java-config.server-classpath”
cluster1-config.java-config.server-classpath =

dashost > asadmin set “cluster1-config.java-config.server-classpath=/sun/glassfish-v2.1.1/lib/mysql-connector-java-5.1.5-bin.jar”
cluster1-config.java-config.server-classpath = /sun/glassfish-v2.1.1/lib/mysql-connector-java-5.1.5-bin.jar

クラスパスの設定は,管理コンソールから左ペインの「設定」→「対象のコンフィグ(cluster1-config)」→「JVM 設定」を選択し右ペインの「サーバクラスパス」内に記載し設定できます.


次に JDBC の接続プールを作成します.

dashost > asadmin create-jdbc-connection-pool –datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource –restype=javax.sql.DataSource –property user=root:password=password:DatabaseName=MySQL:ServerName=localhost:port=3306:URL=”jdbc\:mysql\://localhost\:3306/test” MySQL-Pool
コマンド create-jdbc-connection-pool は正常に実行されました。


分散トランザクションが必要な場合,リソースタイプ,データソースにそれぞれ下記を使用してください.
javax.sql.XADataSource
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

管理コンソールからは下記の手順に従い設定してください.
まず、左ペインの「リソース」→「JDBC」→ 「接続プール」を選択し右ペインの「新規 …」ボタンを押下します.

次に,「接続プール名」,「リソースタイプ」,「データベースベンダー」を選択し「次へ」ボタンを押下します.

最後に,JDBC の各種詳細な設定項目を選択/入力し「完了」ボタンを押下します.






JDBCドライバ等の設定項目一覧が数多くリストされますが,ここでは最低限下記の項目のみ編集して設定を完了します.

名前
user root
password password
DatabaseName MySQL
ServerName localhost
port 3306
URL jdbc:mysql://localhost:3306/test


「完了」ボタンを押下すると下記の画面が表示されます.

ここで、作成した JDBC 接続プールが有効か否か疎通確認を行います.

成功時:

dashost > asadmin ping-connection-pool MySQL-Pool
コマンド ping-connection-pool は正常に実行されました。


失敗時:

dashost > asadmin ping-connection-pool MySQL-Pool
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
CLI137 コマンド ping-connection-pool は失敗しました。


また,管理コンソールから左ペインの「リソース」→「 JDBC」→「 接続プール」より対象の接続プールを選択し「Ping」ボタンを押下し確認できます.
成功時:

失敗時:

次に、作成した JDBC 接続プールに対して,リソース設定を行います.
アプリケーションはここで設定する JNDI 名を利用して DB にアクセスできるようになります.

dashost > asadmin create-jdbc-resource –connectionpoolid MySQL-Pool jdbc/mysql
コマンド create-jdbc-resource は正常に実行されました。


管理コンソールからは下記の手順に従い設定してください.
まず、左ペインの「リソース」→「JDBC」→ 「 JDBCリソース」を選択し右ペインより「新規 …」ボタンを押下します.


続いて,「JNDI 名」,「プール名」,有効状態のチェックをつけ「利用可能なターゲット」に対象のクラスタ(cluster1)を追加して「了解」ボタンを押下します.


「了解」ボタンを押下すると下記の画面が表示され JDBC リソースの設定は完了します.以降アプリケーションはここで設定した “jdbc/mysql” を利用して DB
に対して接続ができるようになります.

DBの設定情報の取得
ここで,DB の設定可能な項目の一覧をリストしてみます.asadmin の get コマンドを実行して確認ができます.各設定項目は asadmin set コマンドで設定変更を更新できますので必要に応じて設定変更を行ってください.

dashost > asadmin get “domain.resources.jdbc-connection-pool.MySQL-Pool.*”
domain.resources.jdbc-connection-pool.MySQL-Pool.allow-non-component-callers = false
domain.resources.jdbc-connection-pool.MySQL-Pool.associate-with-thread = false
domain.resources.jdbc-connection-pool.MySQL-Pool.connection-creation-retry-attempts = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.connection-creation-retry-interval-in-seconds = 10
domain.resources.jdbc-connection-pool.MySQL-Pool.connection-leak-reclaim = false
domain.resources.jdbc-connection-pool.MySQL-Pool.connection-leak-timeout-in-seconds = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.connection-validation-method = auto-commit
domain.resources.jdbc-connection-pool.MySQL-Pool.datasource-classname = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
domain.resources.jdbc-connection-pool.MySQL-Pool.description =
domain.resources.jdbc-connection-pool.MySQL-Pool.fail-all-connections = false
domain.resources.jdbc-connection-pool.MySQL-Pool.idle-timeout-in-seconds = 300
domain.resources.jdbc-connection-pool.MySQL-Pool.is-connection-validation-required = false
domain.resources.jdbc-connection-pool.MySQL-Pool.is-isolation-level-guaranteed = false
domain.resources.jdbc-connection-pool.MySQL-Pool.lazy-connection-association = false
domain.resources.jdbc-connection-pool.MySQL-Pool.lazy-connection-enlistment = false
domain.resources.jdbc-connection-pool.MySQL-Pool.match-connections = false
domain.resources.jdbc-connection-pool.MySQL-Pool.max-connection-usage-count = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.max-pool-size = 32
domain.resources.jdbc-connection-pool.MySQL-Pool.max-wait-time-in-millis = 60000
domain.resources.jdbc-connection-pool.MySQL-Pool.name = MySQL-Pool
domain.resources.jdbc-connection-pool.MySQL-Pool.non-transactional-connections = false
domain.resources.jdbc-connection-pool.MySQL-Pool.pool-resize-quantity = 2
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AllowLoadLocalInfile = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AllowMultiQueries = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AllowNanAndInf = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AllowUrlInLocalInfile = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AlwaysSendSetIsolation = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AutoClosePStmtStreams = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AutoDeserialize = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AutoGenerateTestcaseScript = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AutoReconnectForPools = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.AutoSlowLog = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.BlobSendChunkSize = 1048576
domain.resources.jdbc-connection-pool.MySQL-Pool.property.BlobsAreStrings = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CacheCallableStatements = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CacheCallableStmts = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CachePrepStmts = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CachePreparedStatements = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CacheResultSetMetadata = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CacheServerConfiguration = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CallableStatementCacheSize = 100
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CallableStmtCacheSize = 100
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CapitalizeTypeNames = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ClientInfoProvider = com.mysql.jdbc.JDBC4CommentClientInfoProvider
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ClobberStreamingResults = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ConnectTimeout = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ContinueBatchOnError = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.CreateDatabaseIfNotExist = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DatabaseName = MySQL
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DefaultFetchSize = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DontTrackOpenResources = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DumpMetadataOnColumnNotFound = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DumpQueriesOnException = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.DynamicCalendars = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ElideSetAutoCommits = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.EmptyStringsConvertToZero = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.EmulateLocators = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.EmulateUnsupportedPstmts = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.EnablePacketDebug = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.EnableQueryTimeouts = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ExplainSlowQueries = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.FailOverReadOnly = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.FunctionsNeverReturnBlobs = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.GatherPerfMetrics = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.GatherPerformanceMetrics = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.GenerateSimpleParameterMetadata = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.HoldResultsOpenOverStatementClose = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.IgnoreNonTxTables = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.IncludeInnodbStatusInDeadlockExceptions = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.InitialTimeout = 2
domain.resources.jdbc-connection-pool.MySQL-Pool.property.InteractiveClient = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.IsInteractiveClient = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.JdbcCompliantTruncation = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.JdbcCompliantTruncationForReads = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LoadBalanceStrategy = random
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LocatorFetchBufferSize = 1048576
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LogSlowQueries = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LogXaCommands = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Logger = com.mysql.jdbc.log.StandardLogger
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LoggerClassName = com.mysql.jdbc.log.StandardLogger
domain.resources.jdbc-connection-pool.MySQL-Pool.property.LoginTimeout = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.MaintainTimeStats = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.MaxQuerySizeToLog = 2048
domain.resources.jdbc-connection-pool.MySQL-Pool.property.MaxReconnects = 3
domain.resources.jdbc-connection-pool.MySQL-Pool.property.MaxRows = -1
domain.resources.jdbc-connection-pool.MySQL-Pool.property.MetadataCacheSize = 50
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NetTimeoutForStreamingResults = 600
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NoAccessToProcedureBodies = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NoDatetimeStringSync = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NoTimezoneConversionForTimeType = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NullCatalogMeansCurrent = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.NullNamePatternMatchesAll = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.OverrideSupportsIntegrityEnhancementFacility = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PacketDebugBufferSize = 20
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PadCharsWithSpace = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Paranoid = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Password = password
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Pedantic = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PinGlobalTxToPhysicalConnection = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PopulateInsertRowWithDefaultValues = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Port = 3306
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PortNumber = 3306
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PrepStmtCacheSize = 25
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PrepStmtCacheSqlLimit = 256
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PreparedStatementCacheSize = 25
domain.resources.jdbc-connection-pool.MySQL-Pool.property.PreparedStatementCacheSqlLimit = 256
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ProcessEscapeCodesForPrepStmts = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ProfileSQL = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ProfileSql = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.QueriesBeforeRetryMaster = 50
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ReconnectAtTxEnd = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RelaxAutoCommit = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ReportMetricsIntervalMillis = 30000
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RequireSSL = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ResultSetSizeThreshold = 100
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RewriteBatchedStatements = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RollbackOnPooledClose = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RoundRobinLoadBalance = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.RunningCTS13 = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SecondsBeforeRetryMaster = 30
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ServerName = localhost
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SlowQueryThresholdMillis = 2000
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SlowQueryThresholdNanos = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SocketFactory = com.mysql.jdbc.StandardSocketFactory
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SocketFactoryClassName = com.mysql.jdbc.StandardSocketFactory
domain.resources.jdbc-connection-pool.MySQL-Pool.property.SocketTimeout = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.StrictFloatingPoint = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.StrictUpdates = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TcpKeepAlive = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TcpNoDelay = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TcpRcvBuf = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TcpSndBuf = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TcpTrafficClass = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TinyInt1isBit = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TraceProtocol = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TransformedBitIsBoolean = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.TreatUtilDateAsTimestamp = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.URL = jdbc:mysql://:3306/
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UltraDevHack = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.Url = jdbc:mysql://localhost:3306/test
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseBlobToStoreUTF8OutsideBMP = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseCompression = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseCursorFetch = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseDirectRowUnpack = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseDynamicCharsetInfo = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseFastDateParsing = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseFastIntParsing = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseGmtMillisForDatetimes = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseHostsInPrivileges = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseInformationSchema = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseJDBCCompliantTimezoneShift = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseJvmCharsetConverters = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseLocalSessionState = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseNanosForElapsedTime = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseOldAliasMetadataBehavior = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseOldUTF8Behavior = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseOnlyServerErrorMessages = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseReadAheadInput = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseSSL = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseSSPSCompatibleTimezoneShift = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseServerPrepStmts = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseServerPreparedStmts = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseSqlStateCodes = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseStreamLengthsInPrepStmts = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseTimezone = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseUltraDevWorkAround = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseUnbufferedInput = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseUnicode = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.UseUsageAdvisor = false
domain.resources.jdbc-connection-pool.MySQL-Pool.property.User = root
domain.resources.jdbc-connection-pool.MySQL-Pool.property.YearIsDateType = true
domain.resources.jdbc-connection-pool.MySQL-Pool.property.ZeroDateTimeBehavior = exception
domain.resources.jdbc-connection-pool.MySQL-Pool.res-type = javax.sql.DataSource
domain.resources.jdbc-connection-pool.MySQL-Pool.statement-timeout-in-seconds = -1
domain.resources.jdbc-connection-pool.MySQL-Pool.steady-pool-size = 8
domain.resources.jdbc-connection-pool.MySQL-Pool.transaction-isolation-level =
domain.resources.jdbc-connection-pool.MySQL-Pool.validate-atmost-once-period-in-seconds = 0
domain.resources.jdbc-connection-pool.MySQL-Pool.validation-table-name =
domain.resources.jdbc-connection-pool.MySQL-Pool.wrap-jdbc-objects = false


コネックションプールのモニタリング
最後に、JDBC の接続プールに対してモニタリングの設定を行う方法を紹介します.モニタリングを有効にするために下記の手順に従い設定を行い,確認してください.

dashost > asadmin list “*monitor*”
server.monitoring-service
server.monitoring-service.module-monitoring-levels
dashost > asadmin set “server.monitoring-service.module-monitoring-levels.jdbc-connection-pool=HIGH”
server.monitoring-service.module-monitoring-levels.jdbc-connection-pool = HIGH
dashost > asadmin get “server.monitoring-service.module-monitoring-levels.*”
server.monitoring-service.module-monitoring-levels.connector-connection-pool = OFF
server.monitoring-service.module-monitoring-levels.connector-service = OFF
server.monitoring-service.module-monitoring-levels.ejb-container = OFF
server.monitoring-service.module-monitoring-levels.http-service = OFF
server.monitoring-service.module-monitoring-levels.jdbc-connection-pool = HIGH
server.monitoring-service.module-monitoring-levels.jms-service = OFF
server.monitoring-service.module-monitoring-levels.jvm = OFF
server.monitoring-service.module-monitoring-levels.orb = OFF
server.monitoring-service.module-monitoring-levels.thread-pool = OFF
server.monitoring-service.module-monitoring-levels.transaction-service = OFF
server.monitoring-service.module-monitoring-levels.web-container = OFF
dashost > asadmin list –monitor=true “*MySQL*”
server.resources.MySQL-Pool
dashost > asadmin get –monitor=true “server.resources.MySQL-Pool.*”

2010年2月8日 at 12:21 PM コメントする

GlassFish SSLの設定(クライアント認証)


GlassFish のドメイン管理サーバ上でHTTP リスナーの設定をクライアント認証対応に変更

dashost > asadmin set “cluster1-config.http-service.http-listener.http-listener-2.ssl.client-auth-enabled = true”

クライアント証明書の秘密鍵を作成

ca-admin > openssl genrsa -des3 -out /tmp/client-private-key 2048
Generating RSA private key, 2048 bit long modulus
……….+++
………………………………….+++
e is 65537 (0×10001)
Enter pass phrase for /tmp/client-private-key:
Verifying – Enter pass phrase for /tmp/client-private-key:


クライアント証明書用のCSRを作成

下記の例では便宜上,認証局(CA)上で CSR を生成していますが,CSRの生成はどの環境で構築しても問題ありません.

ca-admin > openssl req -new -days 365 -key /tmp/client-private-key -out /tmp/clientcsr.pem
Enter pass phrase for /tmp/client-private-key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Setagaya
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Sun Microsystems
Organizational Unit Name (eg, section) []:Software Practice
Common Name (eg, YOUR name) []:Tarou Yamada
Email Address []:Tarou.Yamada@Sun.COM

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:


認証局(CA)でクライアント証明書を署名

クライアント証明書のCSRを認証局(CA)で署名します。

ca-admin > openssl ca -config ./openssl-client.cnf -in /tmp/clientcsr.pem -out /tmp/signed-clientcert.pem
Using configuration from ./openssl-client.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signatureSignature ok
Certificate Details:
Serial Number:
cd:ea:db:f4:c8:e3:93:92
Validity
Not Before: Dec  4 08:27:14 2009 GMT
Not After : Dec  4 08:27:14 2010 GMT
(省略)


署名されたクライアント証明書をGlassFishのキーストアにインポートするため,X.509形式に変更

ca-admin > openssl x509 -in /tmp/signed-clientcert.pem -out /tmp/signed-clientcert.x509


GlassFishのキーストアに対してクライアント証明書をインポート

dashost > keytool -import -alias yamada -file /tmp/signed-clientcert.x509
キーストアのパスワードを入力してください:[changeit]
新規パスワードを再入力してください:[changeit]
所有者: EMAILADDRESS=Tarou.Yamada@Sun.COM, CN=Tarou Yamada, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
発行者: EMAILADDRESS=caadmin@Sun.COM, CN=ca-server.sun.com, OU=Software Practice, O=Sun Microsystems, ST=Tokyo, C=JP
シリアル番号: cdeadbf4c8e39392
有効期間の開始日: Fri Dec 04 17:27:14 JST 2009 終了日: Sat Dec 04 17:27:14 JST 2010
証明書のフィンガープリント:
MD5:  59:06:3C:95:79:5D:31:D7:A3:92:0E:AA:A2:23:73:6D
SHA1: 26:00:30:F1:15:DB:20:D4:8E:AF:99:AB:96:13:CB:17:DA:E5:71:15
署名アルゴリズム名: SHA1withRSA
バージョン: 3
(省略)
この証明書を信頼しますか? [no]:  yes
証明書がキーストアに追加されました。


クライアント証明書をブラウザにインポートするためPKCS12形式に変換

ca-admin > openssl pkcs12 -export -in /tmp/signed-clientcert.pem -inkey /tmp/client-private-key -certfile ./demoCA/cacert.pem -out /tmp/clientcert.p12
Enter pass phrase for /tmp/client-private-key:
Enter Export Password:
Verifying – Enter Export Password:
ca-admin > ls -l /tmp/clientcert.p12
-rw-r–r–   1 root     root        3525 12月  4日  17:29 /tmp/clientcert.p12


最後にブラウザにPKCS12形式のクライアント証明書をインポートします.

上記で設定は完了です,ブラウザからアクセスしてみてください.

2010年2月8日 at 11:44 AM コメントする

GlassFish ドメイン管理サーバのバックアップとリストア


※ GlassFish のドメイン管理サーバのバックアップとリストアは
管理コンソールからは行えません.コマンドを使用してください.

ドメイン管理サーバが稼働するサーバが何らかの障害により起動できなくなった場合,ドメインの管理ができなくなります.ドメイン管理サーバが稼働していない状態でもサーバインスタンスを稼働させることはできますが,ドメイン管理サーバが壊れている状態ではアプリケーションの更新やリソースの設定変更等ができなくなります.このような場合、ドメイン管理サーバの設定をバックアップしておくことで,他のサーバをドメイン管理サーバの代替えとして利用することができます.バックアップはドメイン管理サーバ上で何らかの設定変更を行った際,その都度取得しておくことを推奨します.

バックアップを取得する前に,ドメイン管理サーバを停止してください.ドメイン管理サーバを停止しても提供しているサービスに影響は及びませんのでこの作業は本番稼働中に行っても問題ありません.

dashost > asadmin stop-domain clusterDomain
ドメイン clusterDomain が停止しました。


次にドメイン管理サーバのバックアップを行います.–domaindirには対象のドメインが含まれるディレクトリを指定します.

dashost > asadmin backup-domain –domaindir /export/home/appserv/domains clusterDomain
ドメインを正常にバックアップしました
説明: 1259776406949
バックアップファイル名: /export/home/appserv/domains/clusterDomain/backups/sjsas_backup_v00001.zip
バックアップを実行した日付と時刻: Thu Dec 03 02:53:26 JST 2009
ドメインディレクトリ: /export/home/appserv/domains
ドメインディレクトリ: /export/home/appserv/domains/clusterDomain
ドメイン名: clusterDomain
バックアップを実行したユーザーの名前: appserv


バックアップコマンドを実行すると,sjsas_backup_vXXXXX.zipと名付けられたバックアップファイルが作成されます.このファイルをドメイン管理サーバのバックアップ用のサーバにFTP等を利用してコピーしておきます.ここではドメイン管理サーバのバックアップ用のサーバとしてnodeagent1を使用します.本番環境ではノードエージェントとは別のマシン上に構築することを推奨します.

nodeagent1 > asadmin restore-domain –filename ./sjsas_backup_v00001.zip clusterDomain
ドメイン clusterDomain の /export/home/appserv/domains/clusterDomain への復元に成功しました
説明: 1259776406949
バックアップファイル名: /export/home/appserv/domains/clusterDomain/backups/sjsas_backup_v00001.zip
バックアップを実行した日付と時刻: Thu Dec 03 02:53:26 JST 2009
ドメインディレクトリ: /export/home/appserv/domains
ドメインディレクトリ: /export/home/appserv/domains/clusterDomain
ドメイン名: clusterDomain
バックアップを実行したユーザーの名前: appser


展開したファイル中よりドメイン管理サーバ名が記載されている箇所を手動で編集します.domains/clusterDomain/config /domain.xml中より修正する必要のある該当箇所を表示し,dashostからnodeagent1に変更します.

nodeagent1 > grep dashost domain.xml
<property name="client-hostname" value="dashost“/>
<jms-host admin-password="admin" admin-user-name="admin" host="dashost” name=”default_JMS_host” port=”5076″/>
<property name="client-hostname" value="dashost“/>
<jms-host admin-password="admin" admin-user-name="admin" host="dashost” name=”default_JMS_host” port=”${JMS_PROVIDER_PORT}”/>
<property name="client-hostname" value="dashost“/>
<jms-host admin-password="admin" admin-user-name="admin" host="dashost” name=”default_JMS_host” port=”${JMS_PROVIDER_PORT}”/>


新しい環境上で再度環境変数を設定した後,ドメインを起動します.

nodeagent1 > setenv AS_ADMIN_HOST nodeagent1.japan.sun.com
nodeagent1 > env |grep AS
AS_ADMIN_USER=clusterAdmin
AS_ADMIN_PASSWORDFILE=/export/home/appserv/.passwordfile
AS_ADMIN_HOST=nodeagent1.japan.sun.com
AS_ADMIN_PORT=5048
nodeagent1 > asadmin start-domain clusterDomain
ドメイン clusterDomain を起動しています。お待ちください。
デフォルトのログの場所は /export/home/appserv/domains/clusterDomain/logs/server.log です。
出力を /export/home/appserv/domains/clusterDomain/logs/server.log にリダイレクトしています
ドメイン clusterDomain が起動しました。
ドメイン [clusterDomain] はその設定で [Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs)] を実行しています。ログは [/export/home/appserv/domains] にあります。
管理コンソールは [http://localhost:5048] で使用できます。
“asadmin” コマンドにも同じポート [5048] を使用します。
ユーザーの Web アプリケーションは次の URL で使用できます:
[http://localhost:5080 https://localhost:5081 ]。
次の web-contexts を使用できます:
[/web1 /__wstx-services ]。
標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://nodeagent1.japan.sun.com:5086/jmxrmi]
に接続できます。
ドメインは少なくとも次のポートで接続を待機しています:
[5080 5081 5048 5037 5038 5039 5086 ]。
ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタンスをサポートします。


上記で,ドメインのリストアは完了です.仮にドメイン管理サーバにアクセスするためにSSLを有効にしている場合にドメイン管理サーバのホスト名が変わる場合,サーバ証明書の更新も必要です.デフォルトでインストールされている自己署名サーバ証明書は変更前のドメイン管理サーバ名が記載されていますので更新の必要があります.
最後に,念のためノードエージェントが保持するドメイン管理サーバへの参照情報が更新されているか確認してください.全てのノードエージェントはagentディレクトリ中にconfigディレクトリが存在しています.このディレクトリ配下にdas.propertiesファイルが存在しており,ドメイン管理サーバへ接続するための接続情報などが記載されています.そこでファイルの内容を確認しdashostからnodeagent1に変更されていることを確認してください.仮に変更されていない場合は手動で変更してください.

nodeagent1 > pwd
/export/home/appserv/nodeagents/nodeagent1/agent/config
nodeagent1 > grep das.host das.properties
agent.das.host=nodeagent1
nodeagent2 > pwd
/export/home/appserv/nodeagents/nodeagent2/agent/config
nodeagent2 > grep das.host das.properties
agent.das.host=nodeagent1

2010年2月5日 at 4:35 PM コメントする

GlassFish クラスタとクラスタインスタンス管理(作成、削除、起動、停止)


ここでは管理ツールを使用しクラスタの管理を行う方法について紹介します.

クラスタの作成

クラスタ構成を作成するためにはcreate-clusterコマンドを使用します.コマンド引数にクラスタ名を指定してクラスタを作成します.

dashost > asadmin create-cluster cluster1
コマンド create-cluster は正常に実行されました。


また,管理コンソールから左ペインの「クラスタ」を選択し右ペインの「新規…」ボタンを押すことによって作成することができます.

クラスタの作成

クラスタの作成

クラスタサーバインスタンスの作成

クラスタに所属するサーバインスタンスを作成するためには,create-instanceコマンドを実行します.コマンド引数にインスタンスを配置するノードエージェント名とクラスタ名を指定してインスタンスを作成します.

dashost > asadmin create-instance –nodeagent nodeagent1 –cluster cluster1 instance1
コマンド create-instance は正常に実行されました。
dashost > asadmin create-instance –nodeagent nodeagent2 –cluster cluster1 instance2
コマンド create-instance は正常に実行されました


また,クラスタに所属するサーバインスタンスは「クラスタ」作成のウィザードから「作成するサーバインスタンス(2)」のテーブルから,「新規…」ボタンを押すことによって作成することができます.この時ノードエージェントの選択コンボボックスからサーバインスタンスが稼働するノードエージェントを選択します.

クラスタインスタンスの作成

クラスタインスタンスの作成

クラスタの一覧表示

ドメイン内に存在するクラスタの一覧を表示するためにはlist-clustersコマンドを使用します.またコマンドを実行すると一覧表示の他クラスタの稼働状態も表示します.

dashost > asadmin list-clusters
cluster2 実行していません
cluster1 実行しています
コマンド list-clusters は正常に実行されました。


また,管理コンソールから左ペインの「クラスタ」を選択して確認できます.

クラスタの一覧表示

クラスタの一覧表示

クラスタの起動

クラスタの起動はstart-clusterコマンドを使用します.コマンド引数にクラスタ名を指定して起動します.

dashost > asadmin start-cluster cluster2
クラスタ化されたインスタンス instance3 の起動に成功しました。
クラスタ化されたインスタンス instance4 の起動に成功しました。
コマンド start-cluster は正常に実行されました。


また,管理コンソールから左ペインの「クラスタ」を選択し右ペイン中より対象のクラスタにチェックを付け「クラスタの起動」ボタンを押すことによって作成することができます.

クラスタの起動

クラスタの起動

クラスタの停止

クラスタの停止はstop-clusterコマンドを実行します.コマンド引数にクラスタ名を指定して停止します.

dashost > asadmin stop-cluster cluster1
クラスタ化されたインスタンス instance1 の停止に成功しました。
クラスタ化されたインスタンス instance2 の停止に成功しました。
コマンド は正常に実行されました。


また,管理コンソールから左ペインの「クラスタ」を選択し右ペイン中より対象のクラスタにチェックを付け「クラスタの停止」ボタンを押すことによってクラスタを停止することができます.

クラスタの停止

クラスタの停止

クラスタの削除

クラスタを削除するためには,クラスタに所属している全てのインスタンスを停止/削除した後に削除を行います.
まず,クラスタの一覧とクラスタに所属するインスタンスを表示します.

dashost > asadmin list-clusters
cluster2 実行していません
cluster1 実行していません
コマンド list-clusters は正常に実行されました。
dashost > asadmin list-instances
instance1 実行していません
instance2 実行していません
instance3 実行していません
instance4 実行していません
コマンド list-instances は正常に実行されました。


次に,cluster1に属するinstance1,instance2を削除します.

dashost > asadmin delete-instance instance1
コマンド delete-instance は正常に実行されました。
dashost > asadmin delete-instance instance2
コマンド delete-instance は正常に実行されました。


最後にcluster1を削除します.

dashost > asadmin delete-cluster cluster1
コマンド delete-cluster は正常に実行されました。


また,管理コンソールから左ペインの「クラスタ」を選択し右ペイン中より対象のクラスタにチェックを付け「削除」ボタンを押すことによってクラスタを削除することができます.管理コンソールから削除を実行すると,クラスタ内に属する全てのインスタンスも同時に削除する事ができます.

クラスタの削除

クラスタの削除

2010年2月5日 at 3:31 PM コメントする

GlassFish スタンドアローンインスタンス管理(作成、削除、起動、停止)


スタンドアローンサーバインスタンスの作成

スタンドアローンサーバインスタンスを追加するためにはcreate-instanceコマンドを実行します.サーバインスタンスが稼働するノードエージェント名を指定して作成します.複数のインスタンスを作成する際は,必ずノードエージェントの指定が必要です.そこで,開発者プロファイルを利用している場合,もしくはノードエージェントを作成していない場合は,新たにサーバインスタンスを作成することができませんので,ご注意ください.

dashost > asadmin create-instance –nodeagent nodeagent1 instance1
コマンド create-instance は正常に実行されました


上記のようにサーバインスタンスで使用する各種ポート番号を明示的に指定せずにサーバインスタンスを作成する場合は,極力既存の全てのサーバインスタンスを起動している状態で作成作業を行ってください.ポート番号を指定せずに実行した場合,コマンド内部で自動的に未使用のポート番号を探し出して新規インスタンス用に割り当てます.他のサーバインスタンスが停止している状態でコマンドを実行した場合,他で使用しているポート番号と競合する可能性があり,正常にサーバインスタンスが起動できない場合があります.作成するインスタンスで使用する各種ポート番号を指定したい場合は,下記のように–systempropertiesを付加して各種ポート番号を指定する事もできます.

dashost > asadmin create-instance –user clusterAdmin –host sw-103 –port 5048 –nodeagent nodeagent1 –systemproperties HTTP_LISTENER_PORT=5180:HTTP_SSL_LISTENER_PORT=51443:IIOP_LISTENER_PORT=5138:IIOP_SSL_LISTENER_PORT=5137:IIOP_SSL_MUTUALAUTH_PORT=5139:JMX_SYSTEM_CONNECTOR_PORT=5140 instance1
コマンド create-instance は正常に実行されました。


また,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「新規…」ボタンを押すことによって新規インスタンスを追加することができます.

新規スタンドアローンインスタンスの追加

新規スタンドアローンインスタンスの追加

サーバインスタンスの一覧表示

サーバインスタンスの一覧を確認するためにはlist-instancesコマンドを使用します.コマンドを実行すると一覧表示の他インスタンスの稼働状態も表示します.

dashost > asadmin list-instances
instance1 実行しています
instance2 実行していません
コマンド list-instances は正常に実行されました。


また,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択して確認できます.

インスタンスの一覧表示

インスタンスの一覧表示

サーバインスタンスの起動

サーバインスタンスの起動はstart-instanceコマンドを使用します.実行時にインスタンス名を指定して起動します.

dashost > asadmin start-instance instance2
コマンド start-instance は正常に実行されました。


また,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「起動」ボタンを押すことによってインスタンスを起動することができます.

サーバインスタンスの起動

サーバインスタンスの起動

もしくは,管理コンソールから左ペインから対象の「スタンドアロンインスタンス」を選択し右ペインの「インスタンスの起動」ボタンを押すことによってインスタンスを起動することができます.

サーバインスタンスの起動

サーバインスタンスの起動

サーバインスタンスの停止

サーバインスタンスの停止はstop-instanceコマンドを実行します.コマンド引数にインスタンス名を指定して停止します.

dashost > asadmin stop-instance instance1
コマンド stop-instance は正常に実行されました


また,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「停止」ボタンを押すことによってインスタンスを停止することができます.

サーバインスタンスの停止

サーバインスタンスの停止

もしくは,直接左ペインから対象の「スタンドアロンインスタンス」を選択して右ペインの「インスタンスの停止」ボタンを押すことによってインスタンスを停止することができます.

サーバインスタンスの停止

サーバインスタンスの停止

サーバインスタンスの削除

インスタンスの削除はdelete-instanceコマンドを実行します.コマンド引数にインスタンス名を指定して削除します.

dashost > asadmin delete-instance –user clusterAdmin –host sw-103 –port 5048 instance1
コマンド delete-instance は正常に実行されました。


また,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「削除」ボタンを押すことによってインスタンスを削除することができます.

サーバインスタンスの削除

サーバインスタンスの削除

2010年2月5日 at 2:40 PM コメントする

GlassFish ノードエージェント管理(作成、削除、起動、停止、ログ設定)


ノードエージェントの作成

ノードエージェントを作成するためには,ドメイン管理サーバ上で create-node-agent-config コマンドを実行しノードエージェント(参照情報のみ)を作成します.下記の例では2つのノードエージェントを作成しています.

dashost > asadmin create-node-agent-config nodeagent1
コマンド create-node-agent-config は正常に実行されました。
dashost > asadmin create-node-agent-config nodeagent2
コマンド create-node-agent-config は正常に実行されました


次にノードエージェントを稼働させるマシン上でそれぞれ create-node-agent コマンドを実行します.この時ドメイン管理サーバ上で指定したノードエージェント名と同一のエージェント名を指定する必要があります.

nodeagent1 > asadmin create-node-agent –user clusterAdmin –host dashost –port 5048 –savemasterpassword=true nodeagent1
コマンド create-node-agent は正常に実行されました。

nodeagent2 > asadmin create-node-agent –user clusterAdmin –host dashost –port 5048 –savemasterpassword=true nodeagent2
コマンド create-node-agent は正常に実行されました。


便宜上ノードエージェントを稼働させるマシン上で create-node-agent コマンドを実行すると,「参照情報」と,「ノードエージェントの実体」の両方が同時に生成されます.しかし内部的には参照情報の設定とノードエージェントの実体は別々に作成されていることに注意してください.
このように,参照情報とノードエージェントの作成が別々に行われる理由は,ノードエージェントをオフラインで管理ができるようにするためです.例えば,実体であるノードエージェントが停止状態でも,ドメイン管理サーバ上で管理しているノードエージェントの参照情報に対してインスタンスを追加することができます.そしてノードエージェントの実体を起動した時にドメイン管理サーバで保持するノードエージェントの参照(設定)情報と同期をとりインスタンスの実体が生成されます.
管理コンソールからは,ドメイン管理サーバで管理する参照情報のみ作成することができます.参照情報を作成した後,別途ノードエージェントが稼働するマシン上でノードエージェントの実体を作成してください.
管理コンソールの左ペインから「ノードエージェント」を選択し、右ペインより「新規…」ボタンを押すことによってノードエージェントの参照情報を作成することができます.

ノードエージェントの参照情報の作成

ノードエージェントの参照情報の作成

ノードエージェントの一覧表示

ノードエージェントの一覧を確認するためにはlist-node-agentsコマンドを使用します.コマンドを実行すると一覧表示の他ノードエージェントの稼働状態も表示します.

dashost > asadmin list-node-agents
nodeagent1 実行しています
nodeagent2 実行していません
コマンド list-node-agents は正常に実行されました。


また,管理コンソールからは,左ペインの「ノードエージェント」を選択して確認できます.

ノードエージェントの一覧表示

ノードエージェントの一覧表示

ノードエージェントの起動

ノードエージェントを起動するためには,ノードエージェントが稼働するマシン上で start-node-agent コマンドを実行します.

nodeagent1 > asadmin start-node-agent nodeagent1
出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトしていますアプリケーション出力を /export/home/appserv/nodeagents/nodeagent1/agent/logs/server.log にリダイレクトします
コマンド start-node-agent は正常に実行されました。

ノードエージェントの停止

ノードエージェントを停止するためには,ノードエージェントが稼働するマシン上で stop-node-agent コマンドを実行します.

nodeagent1 > asadmin stop-node-agent nodeagent1
コマンド stop-node-agent は正常に実行されました

ノードエージェントのログ設定

ノードエージェントのログに関する設定を行う前に,現在設定されているログの設定情報を get コマンドを実行して確認します.

dashost > asadmin get “domain.node-agent.nodeagent1.log-service.*”
domain.node-agent.nodeagent1.log-service.alarms = false
domain.node-agent.nodeagent1.log-service.file = ${com.sun.aas.instanceRoot}/logs/server.log
domain.node-agent.nodeagent1.log-service.log-filter =
domain.node-agent.nodeagent1.log-service.log-handler =
domain.node-agent.nodeagent1.log-service.log-rotation-limit-in-bytes = 500000
domain.node-agent.nodeagent1.log-service.log-rotation-timelimit-in-minutes = 0
domain.node-agent.nodeagent1.log-service.log-to-console = false
domain.node-agent.nodeagent1.log-service.retain-error-statistics-for-hours = 5
domain.node-agent.nodeagent1.log-service.use-system-logging = false


ここで例えば、set コマンドを実行しログローテーションのファイルサイズを 500Kb から 1Mb に変更してみます。
下記を実行してください.

dashost > asadmin set domain.node-agent.nodeagent1.log-service.log-rotation-limit-in-bytes=1000000
domain.node-agent.nodeagent1.log-service.log-rotation-limit-in-bytes = 1000000


上記の設定内容を確認するため get コマンドを実行します.

dashost > asadmin get domain.node-agent.nodeagent1.log-service.log-rotation-limit-in-bytes
domain.node-agent.nodeagent1.log-service.log-rotation-limit-in-bytes = 1000000


また,ノードエージェントに関する各種設定は,管理コンソールからも行えます.

ノードエージェントの各種設定

ノードエージェントの各種設定

ノードエージェントの削除

ノードエージェントを削除する前に,ノードエージェント上で稼働している全てのインスタンス,全てのアプリケーションを停止していることを確認してください.ノードエージェント上にリソースが残っている場合,ノードエージェントの削除に失敗します.
全てのリソースを削除した後に,ノードエージェントが稼働するマシン上で delete-node-agent コマンドを実行し実体を削除します.下記のコマンドを実行するとファイルやディレクトリを全て削除します.

nodeagent1 > asadmin delete-node-agent nodeagent1
コマンド delete-node-agent は正常に実行されました。


次に、delete-node-agent-configコマンドを実行し,ドメイン管理サーバ上で保持するノードエージェントの参照情報を削除します.

dashost > asadmin delete-node-agent-config –user clusterAdmin –host dashost –port 5048 nodeagent1
コマンド delete-node-agent-config は正常に実行されました。


ノードエージェントの参照情報は管理コンソールからも削除できます.管理コンソールの左ペインから「ノードエージェント」を選択し,右ペインより削除対象のノードエージェントにチェックを付け,削除ボタンを押す事により削除できます.

ノードエージェントの参照情報の削除

2010年2月5日 at 1:35 PM コメントする

GlassFish サーバインスタンス


サーバインスタンス

サーバインスタンスはエンドユーザ向けにサービスを提供するJava EE 5の 仕様に完全準拠したJava EEのプロセスです.1つのドメ イン内には複数のサーバインスタンスを作成する事ができます.また物理的にハードウェアが異なる環境上でインスタンスを作成する事もできます.ドメイン内 で複数のサーバインスタンスを作成する場合,それぞれのサーバインスタンスを識別するために,異なる名前を設定する必要があります.

サーバインスタンスは下記の2種類のいずれかの方法で作成できます.

  1. クラスタに所属しないインスタンス
  2. クラスタに所属しないインスタンス

クラスタについては別途,詳細に説明しますが,複数のサーバインスタンスを作成する環境では,クラスタへの所属の有無に応じて,アプリケーションの配備やリソース設定等の管理方法が大幅に異なってきます.具体的に はクラスタに属する全てのインスタンスは,クラスタに対する設定情報が各インスタンスに完全に引き継がれるため,たった1度のクラスタに対する操作で全て のインスタンスに対して反影されます.このようにクラスタに所属するインスタンスは,同じアプリケーションを負荷分散や高化用性を実現するために複数台の マシンで実行したいような場合に有効です.一方,クラスタに所属しないインスタンスは,各インスタンス間で設定情報を独立に設定するため,リソース設定を 個別に管理したい場合,単一のアプリケーションを別のJava VMプ ロセスで稼働させたい場合,もしくは異なるアプリケーションをそれぞれ別のJava VMの プロセスで稼働させたいような場合に有効です.

サーバインスタンスのアーキテクチャを「図5:サーバインスタンスのアーキテク チャ」に示します.のようにプロセス内にEJBコンテナやWebコンテナ等を含み,各種クライアントからの要求を受け 付けます.

図 5:サーバインスタンスのアー キテクチャ

サーバインスタンス単位,もしくはクラスタ構成単位に「図6: インスタンス毎の設定項目」に示す項目の設定が可能です.

図 6:インスタンス毎の設定項目

2010年2月5日 at 10:01 AM コメントする

過去の投稿


ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

JavaOne

カレンダー

2014年11月
« 10月    
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 565,740 hits

Feeds


フォロー

新しい投稿をメールで受信しましょう。

現在3,654人フォロワーがいます。