全てのgetを取得して、必要と思われる値をsetで設定します。
久々にGlassfishの設定を修正する機会があったのですが、
ググってもglassfishの設定取得方法がいい感じに検索上位に出てこないので、
備忘録的に記述します。
(確かに今となってはGlassfishってあまり使われませんし・・・)
全確認
asadmin get configs.*
.単位での指定が可能なので、
上位のconfigs配下を全検索する。
asadmin get conf
のような指定方法だと表示されません。
カンマで区切られている単位での指定が必要です。
実行すると以下のような情報が表示されます。
configs.config.default-config.availability-service.auto-manage-ha-store=false
configs.config.default-config.availability-service.availability-enabled=true
configs.config.default-config.availability-service.ha-store-healthcheck-enabled=false
configs.config.default-config.availability-service.ha-store-healthcheck-interval-in-seconds=5
・・・以下大量に設定値が表示される
必要な値を探します。
個別確認
設定値がわかっている場合はワイルドカードを使用せず、全部指定し確認ができます。
asadmin get configs.config.server-config.thread-pools.thread-pool.thread-pool-1.max-queue-size
設定
asadmin set 設定値=設定したい値で設定可能。具体例は以下の通り。
asadmin set configs.config.server-config.thread-pools.thread-pool.http-thread-pool.max-queue-size=4096
私は、Glassfishの大量投入により、
待ち受けキューの超過異常が発生していたためその値を修正するため、
値を確認しました。
例外としては以下のような異常が発生。
java.util.concurrent.RejectedExecutionException: The thread pool's task queue is full, limit: 4096
全件検索後、grep queueをすると上記設定で記述したような
max-queue-size関連の設定がありました。
(上記以外にもgrepでconfigs.config.server-config.thread-pools.thread-pool.thread-pool-1.max-queue-sizeなような値も検索されました。
お使いのglassfishに合わせて設定してみてください。)
そこでこの辺のキューサイズを拡張し同時待ち受けの許容量を増やすことで、
異常が解消されました。
コメント