{"id":865,"date":"2025-03-24T08:52:58","date_gmt":"2025-03-23T23:52:58","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=865"},"modified":"2025-03-24T08:52:58","modified_gmt":"2025-03-23T23:52:58","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91jboss-wildfly%e5%85%a5%e9%96%80-%e3%80%9c%e5%b0%8e%e5%85%a5%e3%81%8b%e3%82%89%e9%81%8b%e7%94%a8%e3%81%be%e3%81%a7%e5%ae%8c%e5%85%a8%e8%a7%a3%e8%aa%ac","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=865","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011JBoss WildFly\u5165\u9580 \u301c\u5c0e\u5165\u304b\u3089\u904b\u7528\u307e\u3067\u5b8c\u5168\u89e3\u8aac\u3059\u308b7\u3064\u306e\u30dd\u30a4\u30f3\u30c8"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"i-0\">WildFly\u3068\u306f\uff1f\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baJava\u306e\u6b21\u4e16\u4ee3\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc<\/h1>\n\n\n\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">WildFly\u3068\u306f\uff1f\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baJava\u306e\u6b21\u4e16\u4ee3\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">JBoss AS \u304b\u3089 WildFly\u3078\u306e\u9032\u5316<\/a>      <\/li>      <li>        <a href=\"#i-2\">WildFly\u304c\u9078\u3070\u308c\u308b3\u3064\u306e\u7406\u7531<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">WildFly\u306e\u4e3b\u8981\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">WildFly\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u74b0\u5883\u69cb\u7bc9\u306b\u5fc5\u8981\u306a\u524d\u63d0\u6761\u4ef6<\/a>      <\/li>      <li>        <a href=\"#i-11\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u3068\u521d\u671f\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u57fa\u672c\u7684\u306a\u8d77\u52d5\u30fb\u505c\u6b62\u3068\u30ed\u30b0\u306e\u78ba\u8a8d\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-20\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u3068\u7ba1\u7406<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-21\">\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u65b9\u6cd5\u306e\u7a2e\u985e\u3068\u4f7f\u3044\u5206\u3051<\/a>      <\/li>      <li>        <a href=\"#i-27\">\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u306e\u52b9\u7387\u7684\u306a\u4f7f\u3044\u65b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-31\">CLI\uff08\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff09\u3092\u4f7f\u7528\u3057\u305f\u64cd\u4f5c<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-36\">WildFly\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-37\">\u8a8d\u8a3c\u30fb\u8a8d\u53ef\u306e\u57fa\u672c\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-42\">SSL\/TLS\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-45\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c9\u30e1\u30a4\u30f3\u306e\u8a2d\u8a08\u3068\u5b9f\u88c5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-49\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u5b9f\u8df5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-50\">\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u624b\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-53\">\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u3068\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306e\u8abf\u6574<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-56\">\u8ca0\u8377\u30c6\u30b9\u30c8\u3068\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u5b9f\u65bd\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-61\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-62\">\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-69\">\u30ed\u30b0\u89e3\u6790\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-74\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u306e\u7279\u5b9a\u3068\u89e3\u6c7a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-77\">\u672c\u756a\u74b0\u5883\u3067\u306e\u904b\u7528\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-78\">\u5197\u9577\u69cb\u6210\u306e\u8a2d\u8a08\u3068\u5b9f\u88c5<\/a>      <\/li>      <li>        <a href=\"#i-81\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u30ea\u30ab\u30d0\u30ea\u306e\u6226\u7565<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-84\">\u76e3\u8996\u4f53\u5236\u306e\u69cb\u7bc9\u3068\u904b\u7528\u30d5\u30ed\u30fc<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-89\">\u307e\u3068\u3081\uff1aWildFly\u5c0e\u5165\u30fb\u904b\u7528\u306e\u30dd\u30a4\u30f3\u30c8<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-90\">\u4e3b\u8981\u306a\u5c0e\u5165\u30fb\u904b\u7528\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li>        <a href=\"#i-91\">\u4eca\u5f8c\u306e\u767a\u5c55\u306b\u5411\u3051\u3066<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-92\">\u6700\u7d42\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-1\">JBoss AS \u304b\u3089 WildFly\u3078\u306e\u9032\u5316<\/h2>\n\n\n\n<p>WildFly\u306f\u3001\u304b\u3064\u3066JBoss Application Server\uff08JBoss AS\uff09\u3068\u3057\u3066\u77e5\u3089\u308c\u3066\u3044\u305f\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306eJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc\u306e\u6700\u65b0\u7248\u3067\u3059\u30022014\u5e74\u306bJBoss AS 7\u304b\u3089WildFly\u3078\u3068\u540d\u79f0\u5909\u66f4\u3055\u308c\u3001\u73fe\u5728\u3082\u6d3b\u767a\u306b\u958b\u767a\u304c\u7d9a\u3051\u3089\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>Red Hat\u793e\u304c\u30b9\u30dd\u30f3\u30b5\u30fc\u3068\u306a\u3063\u3066\u3044\u308b\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u3001Jakarta EE\uff08\u65e7Java EE\uff09\u4ed5\u69d8\u306b\u5b8c\u5168\u6e96\u62e0\u3057\u3066\u304a\u308a\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u4e16\u754c\u4e2d\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\"><strong><span class=\"big\">\u4e3b\u306a\u9032\u5316\u306e\u30dd\u30a4\u30f3\u30c8<\/span><\/strong><\/p>\n\n\n<div id=\"id-b4a8ac7c-8b07-4d17-a1d9-2f1acffb304b\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d0\u30fc\u30b8\u30e7\u30f3<\/th><th>\u30ea\u30ea\u30fc\u30b9\u6642\u671f<\/th><th>\u4e3b\u306a\u7279\u5fb4<\/th><\/tr><\/thead><tbody><tr><td>JBoss AS 7.x<\/td><td>2011\u5e74<\/td><td>\u9ad8\u901f\u8d77\u52d5\u3001\u8efd\u91cf\u5316\u3001\u30e2\u30b8\u30e5\u30e9\u30fc\u69cb\u9020\u306e\u5c0e\u5165<\/td><\/tr><tr><td>WildFly 8.x<\/td><td>2014\u5e74<\/td><td>Java EE 7\u5bfe\u5fdc\u3001\u7ba1\u7406\u6a5f\u80fd\u306e\u5f37\u5316<\/td><\/tr><tr><td>WildFly 20+<\/td><td>2020\u5e74\u4ee5\u964d<\/td><td>Jakarta EE 8\/9\u5bfe\u5fdc\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u6a5f\u80fd\u306e\u5f37\u5316<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"i-2\">WildFly\u304c\u9078\u3070\u308c\u308b3\u3064\u306e\u7406\u7531<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">1. \u9ad8\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u8efd\u91cf\u6027<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8d77\u52d5\u6642\u9593\uff1a\u6570\u79d2\u3067\u8d77\u52d5\u53ef\u80fd\uff08\u5f93\u6765\u306e1\/10\u4ee5\u4e0b\uff09<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\uff1a\u6700\u5c0f\u69cb\u6210\u3067\u7d0460MB\u7a0b\u5ea6<\/li>\n\n\n\n<li>\u30e2\u30b8\u30e5\u30e9\u30fc\u69cb\u9020\u306b\u3088\u308a\u5fc5\u8981\u306a\u6a5f\u80fd\u306e\u307f\u3092\u9078\u629e\u53ef\u80fd<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u306e\u89aa\u548c\u6027\u304c\u9ad8\u3044<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">2. \u5145\u5b9f\u3057\u305f\u958b\u767a\u30fb\u904b\u7528\u6a5f\u80fd<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8c4a\u5bcc\u306a\u7ba1\u7406\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff08Web\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u3001CLI\uff09<\/li>\n\n\n\n<li>\u67d4\u8edf\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30aa\u30d7\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u7d71\u5408\u3055\u308c\u305f\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u6a5f\u80fd<\/li>\n\n\n\n<li>\u5305\u62ec\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u7c21\u5358\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u4f8b\n\/\/ standalone.xml\u3067\u306e\u8a2d\u5b9a\n&lt;subsystem xmlns=\"urn:jboss:domain:deployment-scanner:2.0\"&gt;\n    &lt;deployment-scanner path=\"deployments\" \n                       relative-to=\"jboss.server.base.dir\" \n                       scan-interval=\"5000\"\/&gt;\n&lt;\/subsystem&gt;\n\n\/\/ Hot Deployment\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30c7\u30d7\u30ed\u30a4\u304c\u53ef\u80fd\n\/\/ WAR\u30d5\u30a1\u30a4\u30eb\u3092\u914d\u7f6e\u3059\u308b\u3060\u3051\u3067\u81ea\u52d5\u30c7\u30d7\u30ed\u30a4\ncp myapp.war $WILDFLY_HOME\/standalone\/deployments\/<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">3. \u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30ec\u30d9\u30eb\u306e\u4fe1\u983c\u6027<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u306b\u3088\u308b\u9ad8\u53ef\u7528\u6027<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u8ca0\u8377\u5206\u6563\u6a5f\u80fd<\/li>\n\n\n\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u8a2d\u5b9a\u4f8b\n\/\/ standalone-ha.xml\u3067\u306e\u8a2d\u5b9a\n&lt;subsystem xmlns=\"urn:jboss:domain:jgroups:4.0\"&gt;\n    &lt;channels default=\"ee\"&gt;\n        &lt;channel name=\"ee\" stack=\"udp\"\/&gt;\n    &lt;\/channels&gt;\n    &lt;stacks&gt;\n        &lt;stack name=\"udp\"&gt;\n            &lt;transport type=\"UDP\" socket-binding=\"jgroups-udp\"\/&gt;\n            &lt;!-- \u30af\u30e9\u30b9\u30bf\u30ea\u30f3\u30b0\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u8a2d\u5b9a --&gt;\n        &lt;\/stack&gt;\n    &lt;\/stacks&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-6\">WildFly\u306e\u4e3b\u8981\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Undertow<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u6700\u65b0\u306eWeb\/HTTP\u30b5\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>WebSockets\u306e\u30cd\u30a4\u30c6\u30a3\u30d6\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30ce\u30f3\u30d6\u30ed\u30c3\u30ad\u30f3\u30b0I\/O<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>RESTEasy<\/strong>\n<ul class=\"wp-block-list\">\n<li>JAX-RS\u5b9f\u88c5<\/li>\n\n\n\n<li>RESTful\u30a6\u30a7\u30d6\u30b5\u30fc\u30d3\u30b9\u306e\u69cb\u7bc9<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Hibernate<\/strong>\n<ul class=\"wp-block-list\">\n<li>JPA\u5b9f\u88c5<\/li>\n\n\n\n<li>\u9ad8\u5ea6\u306aO\/R\u30de\u30c3\u30d4\u30f3\u30b0<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Infinispan<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5206\u6563\u30ad\u30e3\u30c3\u30b7\u30e5<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u7d71\u5408\u3055\u308c\u3001\u30e2\u30c0\u30f3\u306aJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u30fb\u5b9f\u884c\u74b0\u5883\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u3001WildFly\u306e\u57fa\u672c\u7684\u306a\u6982\u8981\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9f\u969b\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-7\">WildFly\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-8\">\u74b0\u5883\u69cb\u7bc9\u306b\u5fc5\u8981\u306a\u524d\u63d0\u6761\u4ef6<\/h2>\n\n\n\n<p>WildFly\u3092\u9069\u5207\u306b\u52d5\u4f5c\u3055\u305b\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u8981\u4ef6\u3092\u6e80\u305f\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6<\/h3>\n\n\n<div id=\"id-c473086a-c35a-43cb-97b5-5d60610c5f2f\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>\u6700\u5c0f\u8981\u4ef6<\/th><th>\u63a8\u5968\u8981\u4ef6<\/th><\/tr><\/thead><tbody><tr><td>Java<\/td><td>JDK 8\u4ee5\u4e0a<\/td><td>JDK 11\/17<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea<\/td><td>512MB<\/td><td>2GB\u4ee5\u4e0a<\/td><\/tr><tr><td>\u30c7\u30a3\u30b9\u30af<\/td><td>500MB<\/td><td>1GB\u4ee5\u4e0a<\/td><\/tr><tr><td>OS<\/td><td>Linux\/Windows\/macOS<\/td><td>Linux\uff08\u672c\u756a\u74b0\u5883\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">\u5fc5\u8981\u306a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Java Development Kit (JDK)\n<ul class=\"wp-block-list\">\n<li><code>JAVA_HOME<\/code>\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>Path\u3078\u306e\u8ffd\u52a0\u3082\u5fc5\u8981<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Linux\u74b0\u5883\u3067\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a\u4f8b\nexport JAVA_HOME=\/usr\/lib\/jvm\/java-11-openjdk\nexport PATH=$JAVA_HOME\/bin:$PATH<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-11\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u3068\u521d\u671f\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">1. WildFly\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6700\u65b0\u7248\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\nwget https:\/\/download.jboss.org\/wildfly\/[version]\/wildfly-[version].zip\n\n# \u89e3\u51cd\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nunzip wildfly-[version].zip\nmv wildfly-[version] \/opt\/wildfly\n\n# \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\nexport JBOSS_HOME=\/opt\/wildfly\nexport PATH=$JBOSS_HOME\/bin:$PATH<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">2. \u57fa\u672c\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u8abf\u6574<\/h3>\n\n\n\n<p>\u4e3b\u8981\u306a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f<code>$JBOSS_HOME\/standalone\/configuration\/<\/code>\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone.xml \u306e\u4e3b\u8981\u8a2d\u5b9a\u4f8b --&gt;\n&lt;server xmlns=\"urn:jboss:domain:19.0\"&gt;\n    &lt;!-- \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u8a2d\u5b9a --&gt;\n    &lt;interfaces&gt;\n        &lt;interface name=\"public\"&gt;\n            &lt;inet-address value=\"${jboss.bind.address:0.0.0.0}\"\/&gt;\n        &lt;\/interface&gt;\n    &lt;\/interfaces&gt;\n\n    &lt;!-- \u30dd\u30fc\u30c8\u8a2d\u5b9a --&gt;\n    &lt;socket-binding-group name=\"standard-sockets\"&gt;\n        &lt;socket-binding name=\"http\" port=\"${jboss.http.port:8080}\"\/&gt;\n        &lt;socket-binding name=\"https\" port=\"${jboss.https.port:8443}\"\/&gt;\n        &lt;socket-binding name=\"management-http\" port=\"${jboss.management.http.port:9990}\"\/&gt;\n    &lt;\/socket-binding-group&gt;\n&lt;\/server&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">3. \u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<p><code>standalone.conf<\/code>\uff08Linux\uff09\u307e\u305f\u306f<code>standalone.conf.bat<\/code>\uff08Windows\uff09\u3067\u8abf\u6574\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># JVM\u30e1\u30e2\u30ea\u8a2d\u5b9a\u4f8b\nJAVA_OPTS=\"-Xms512m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m\"<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">\u57fa\u672c\u7684\u306a\u8d77\u52d5\u30fb\u505c\u6b62\u3068\u30ed\u30b0\u306e\u78ba\u8a8d\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u8d77\u52d5\u30b3\u30de\u30f3\u30c9<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u901a\u5e38\u8d77\u52d5\n.\/standalone.sh\n\n# \u30d0\u30a4\u30f3\u30c9\u30a2\u30c9\u30ec\u30b9\u3068\u30dd\u30fc\u30c8\u3092\u6307\u5b9a\u3057\u3066\u8d77\u52d5\n.\/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u3066\u8d77\u52d5\n.\/standalone.sh -c standalone-full.xml<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u505c\u6b62\u30b3\u30de\u30f3\u30c9<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u901a\u5e38\u505c\u6b62\n.\/jboss-cli.sh --connect command=:shutdown\n\n# \u5f37\u5236\u505c\u6b62\uff08\u975e\u63a8\u5968\uff09\nkill -9 `pgrep -f wildfly`<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30ed\u30b0\u306e\u78ba\u8a8d\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\">\u4e3b\u8981\u306a\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u3068\u78ba\u8a8d\u65b9\u6cd5\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d0\u30fc\u30ed\u30b0<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u30ed\u30b0\u3092\u78ba\u8a8d\ntail -f $JBOSS_HOME\/standalone\/log\/server.log\n\n# \u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u62bd\u51fa\ngrep ERROR $JBOSS_HOME\/standalone\/log\/server.log<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\uff08\u8a2d\u5b9a\u304c\u5fc5\u8981\uff09<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- undertow-subsystem\u3067\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:jboss:domain:undertow:12.0\"&gt;\n    &lt;server name=\"default-server\"&gt;\n        &lt;host name=\"default-host\" alias=\"localhost\"&gt;\n            &lt;access-log pattern=\"common\" directory=\"${jboss.server.log.dir}\" prefix=\"access\"\/&gt;\n        &lt;\/host&gt;\n    &lt;\/server&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">\u8d77\u52d5\u78ba\u8a8d\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\n<ul class=\"wp-block-list\">\n<li>URL: http:\/\/localhost:9990<\/li>\n\n\n\n<li>\u521d\u671f\u8a2d\u5b9a\u3067\u306f\u8a8d\u8a3c\u60c5\u5831\u306e\u4f5c\u6210\u304c\u5fc5\u8981\uff1a<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u7ba1\u7406\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210\n.\/add-user.sh\n\n# \u9078\u629e: a) Management User\n# \u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u8a2d\u5b9a<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30c7\u30d7\u30ed\u30a4\u3055\u308c\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u78ba\u8a8d\n<ul class=\"wp-block-list\">\n<li>URL: http:\/\/localhost:8080<\/li>\n\n\n\n<li>\u30c7\u30d7\u30ed\u30a4\u3055\u308c\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4e00\u89a7: http:\/\/localhost:8080\/console<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u57fa\u672c\u7684\u306a\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a\u306e\u624b\u9806\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u3068\u7ba1\u7406\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-20\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u3068\u7ba1\u7406<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-21\">\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u65b9\u6cd5\u306e\u7a2e\u985e\u3068\u4f7f\u3044\u5206\u3051<\/h2>\n\n\n\n<p>WildFly\u3067\u306f\u3001\u8907\u6570\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u65b9\u6cd5\u3092\u63d0\u4f9b\u3057\u3066\u304a\u308a\u3001\u74b0\u5883\u3084\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">1. \u624b\u52d5\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u7528\u3057\u305f\u30c7\u30d7\u30ed\u30a4<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># deployments\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30b3\u30d4\u30fc\ncp myapp.war $JBOSS_HOME\/standalone\/deployments\/\n\n# \u30c7\u30d7\u30ed\u30a4\u72b6\u614b\u306e\u78ba\u8a8d\n# .deployed\uff1a\u30c7\u30d7\u30ed\u30a4\u6210\u529f\n# .failed\uff1a\u30c7\u30d7\u30ed\u30a4\u5931\u6557\nls -l $JBOSS_HOME\/standalone\/deployments\/myapp.war.*<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">CLI\u3092\u4f7f\u7528\u3057\u305f\u30c7\u30d7\u30ed\u30a4<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># CLI\u3067\u30c7\u30d7\u30ed\u30a4\n.\/jboss-cli.sh --connect\ndeploy \/path\/to\/myapp.war\n\n# \u30c7\u30d7\u30ed\u30a4\u89e3\u9664\nundeploy myapp.war\n\n# \u518d\u30c7\u30d7\u30ed\u30a4\nredeploy \/path\/to\/myapp.war<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">2. \u81ea\u52d5\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\uff08\u30db\u30c3\u30c8\u30c7\u30d7\u30ed\u30a4\uff09<\/h3>\n\n\n\n<p><code>standalone.xml<\/code>\u3067\u306e\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;subsystem xmlns=\"urn:jboss:domain:deployment-scanner:2.0\"&gt;\n    &lt;deployment-scanner path=\"deployments\" \n                       relative-to=\"jboss.server.base.dir\" \n                       scan-interval=\"5000\"\n                       auto-deploy-exploded=\"false\"\n                       auto-deploy-zipped=\"true\"\/&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-26\">3. Maven\u7d4c\u7531\u306e\u30c7\u30d7\u30ed\u30a4<\/h3>\n\n\n\n<p><code>pom.xml<\/code>\u306e\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;plugin&gt;\n    &lt;groupId&gt;org.wildfly.plugins&lt;\/groupId&gt;\n    &lt;artifactId&gt;wildfly-maven-plugin&lt;\/artifactId&gt;\n    &lt;version&gt;4.0.0.Final&lt;\/version&gt;\n    &lt;configuration&gt;\n        &lt;hostname&gt;localhost&lt;\/hostname&gt;\n        &lt;port&gt;9990&lt;\/port&gt;\n        &lt;username&gt;admin&lt;\/username&gt;\n        &lt;password&gt;admin123&lt;\/password&gt;\n    &lt;\/configuration&gt;\n&lt;\/plugin&gt;<\/pre>\n\n\n\n<p>\u30c7\u30d7\u30ed\u30a4\u30b3\u30de\u30f3\u30c9\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30c7\u30d7\u30ed\u30a4\u5b9f\u884c\nmvn wildfly:deploy\n\n# \u30a2\u30f3\u30c7\u30d7\u30ed\u30a4\nmvn wildfly:undeploy\n\n# \u518d\u30c7\u30d7\u30ed\u30a4\nmvn wildfly:redeploy<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-27\">\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u306e\u52b9\u7387\u7684\u306a\u4f7f\u3044\u65b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-28\">1. \u4e3b\u8981\u306a\u7ba1\u7406\u30bf\u30b9\u30af<\/h3>\n\n\n\n<p>\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\uff08http:\/\/localhost:9990\uff09\u3067\u306e\u64cd\u4f5c\uff1a<\/p>\n\n\n<div id=\"id-e687c01e-a7e1-4dba-a91c-99a954cfff39\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u64cd\u4f5c<\/th><th>\u5834\u6240<\/th><th>\u4e3b\u306a\u7528\u9014<\/th><\/tr><\/thead><tbody><tr><td>\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u7ba1\u7406<\/td><td>Deployments<\/td><td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u72b6\u614b\u78ba\u8a8d\u3001\u64cd\u4f5c<\/td><\/tr><tr><td>\u30ea\u30bd\u30fc\u30b9\u8a2d\u5b9a<\/td><td>Configuration<\/td><td>\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306a\u3069<\/td><\/tr><tr><td>\u30e9\u30f3\u30bf\u30a4\u30e0\u60c5\u5831<\/td><td>Runtime<\/td><td>\u30b5\u30fc\u30d0\u30fc\u30b9\u30c6\u30fc\u30bf\u30b9\u3001\u6027\u80fd\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u78ba\u8a8d<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-29\">2. \u3088\u304f\u4f7f\u3046\u7ba1\u7406\u64cd\u4f5c<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u8ffd\u52a0\uff08\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u306e\u64cd\u4f5c\u4f8b\uff09\n1. Configuration \u2192 Subsystems \u2192 Datasources &amp; Drivers \u2192 Datasources\n2. Add Datasource\n3. \u4ee5\u4e0b\u306e\u60c5\u5831\u3092\u5165\u529b\uff1a\n   - JNDI\u540d: java:\/jdbc\/MyDS\n   - Connection URL: jdbc:postgresql:\/\/localhost:5432\/mydb\n   - \u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\n4. Test Connection \u3067\u63a5\u7d9a\u78ba\u8a8d<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-30\">3. \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30e1\u30c8\u30ea\u30af\u30b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>JVM\u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1<\/li>\n\n\n\n<li>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u72b6\u614b<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u63a5\u7d9a\u30d7\u30fc\u30eb<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u7d71\u8a08\u60c5\u5831<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-31\">CLI\uff08\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\uff09\u3092\u4f7f\u7528\u3057\u305f\u64cd\u4f5c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-32\">1. \u57fa\u672c\u7684\u306aCLI\u30b3\u30de\u30f3\u30c9<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># CLI\u3078\u306e\u63a5\u7d9a\n.\/jboss-cli.sh --connect\n\n# \u30b5\u30fc\u30d0\u30fc\u72b6\u614b\u306e\u78ba\u8a8d\n:read-attribute(name=server-state)\n\n# \u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u4e00\u89a7\u306e\u8868\u793a\nls subsystem\n\n# \u30c7\u30d7\u30ed\u30a4\u3055\u308c\u3066\u3044\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4e00\u89a7\nls deployment<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-33\">2. \u30d0\u30c3\u30c1\u64cd\u4f5c\u306e\u5b9f\u884c<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30d0\u30c3\u30c1\u30e2\u30fc\u30c9\u306e\u958b\u59cb\nbatch\n\n# \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8a2d\u5b9a\u306e\u8ffd\u52a0\n\/subsystem=datasources\/data-source=MyDS:add(\n    jndi-name=\"java:\/jdbc\/MyDS\",\n    connection-url=\"jdbc:postgresql:\/\/localhost:5432\/mydb\",\n    driver-name=\"postgresql\",\n    user-name=\"user\",\n    password=\"pass\"\n)\n\n# \u30d0\u30c3\u30c1\u306e\u5b9f\u884c\nrun-batch<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-34\">3. \u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4f5c\u6210\u3068\u5b9f\u884c<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># CLI\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u4f8b\uff08deploy-apps.cli\uff09\nconnect\nbatch\ndeploy \/path\/to\/app1.war\ndeploy \/path\/to\/app2.war\nrun-batch\n\n# \u30b9\u30af\u30ea\u30d7\u30c8\u306e\u5b9f\u884c\n.\/jboss-cli.sh --file=deploy-apps.cli<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-35\">4. \u8a2d\u5b9a\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u5fa9\u5143<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u8a2d\u5b9a\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\n.\/jboss-cli.sh --connect --command=\"\/core-service=management\/configuration-export-operation=export:write-attribute(name=configuration-file,value=\/path\/to\/backup.xml)\"\n\n# \u8a2d\u5b9a\u306e\u5fa9\u5143\n.\/jboss-cli.sh --connect --command=\"core-service=management\/configuration-import-operation=import:add(configuration-file=\/path\/to\/backup.xml)\"<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u7ba1\u7406\u30c4\u30fc\u30eb\u3092\u52b9\u679c\u7684\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001WildFly\u306e\u904b\u7528\u7ba1\u7406\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-36\">WildFly\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-37\">\u8a8d\u8a3c\u30fb\u8a8d\u53ef\u306e\u57fa\u672c\u8a2d\u5b9a<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-38\">1. Elytron\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u306e\u6982\u8981<\/h3>\n\n\n\n<p>WildFly 10\u4ee5\u964d\u3067\u306f\u3001Elytron\u304c\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u4e2d\u5fc3\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone.xml\u3067\u306eElytron\u57fa\u672c\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:wildfly:elytron:15.0\"&gt;\n    &lt;security-domains&gt;\n        &lt;security-domain name=\"applicationDomain\" default-realm=\"application-realm\"&gt;\n            &lt;realm name=\"application-realm\"\/&gt;\n        &lt;\/security-domain&gt;\n    &lt;\/security-domains&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-39\">2. \u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">\u30d7\u30ed\u30d1\u30c6\u30a3\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u8a8d\u8a3c<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0\n.\/elytron-tool.sh passwd --output-file=users.properties --user admin --password admin123\n\n# \u30ed\u30fc\u30eb\u306e\u8a2d\u5b9a\n.\/elytron-tool.sh roles --output-file=roles.properties --user admin --roles \"admin,supervisor\"<\/pre>\n\n\n\n<p>\u8a2d\u5b9a\u306e\u9069\u7528\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;subsystem xmlns=\"urn:wildfly:elytron:15.0\"&gt;\n    &lt;security-realms&gt;\n        &lt;properties-realm name=\"application-realm\"&gt;\n            &lt;users-properties path=\"users.properties\"\/&gt;\n            &lt;groups-properties path=\"roles.properties\"\/&gt;\n        &lt;\/properties-realm&gt;\n    &lt;\/security-realms&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-41\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30d9\u30fc\u30b9\u306e\u8a8d\u8a3c<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8a2d\u5b9a --&gt;\n&lt;datasource jndi-name=\"java:\/jdbc\/SecurityDS\" pool-name=\"SecurityDS\"&gt;\n    &lt;connection-url&gt;jdbc:postgresql:\/\/localhost:5432\/security_db&lt;\/connection-url&gt;\n    &lt;driver&gt;postgresql&lt;\/driver&gt;\n    &lt;security&gt;\n        &lt;user-name&gt;security_user&lt;\/user-name&gt;\n        &lt;password&gt;security_pass&lt;\/password&gt;\n    &lt;\/security&gt;\n&lt;\/datasource&gt;\n\n&lt;!-- JDBC-realm\u8a2d\u5b9a --&gt;\n&lt;security-realm name=\"jdbc-realm\"&gt;\n    &lt;jdbc-realm&gt;\n        &lt;principal-query sql=\"SELECT password FROM users WHERE username=?\" \n                        data-source=\"SecurityDS\"&gt;\n            &lt;clear-password-mapper password-index=\"1\"\/&gt;\n        &lt;\/principal-query&gt;\n    &lt;\/jdbc-realm&gt;\n&lt;\/security-realm&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-42\">SSL\/TLS\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-43\">1. \u8a3c\u660e\u66f8\u306e\u751f\u6210\u3068\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30ad\u30fc\u30b9\u30c8\u30a2\u306e\u4f5c\u6210\nkeytool -genkeypair -alias wildfly -keyalg RSA -keysize 2048 \\\n        -validity 365 -keystore wildfly.keystore \\\n        -dname \"CN=localhost,OU=IT,O=Company,L=City,S=State,C=JP\" \\\n        -storepass password -keypass password\n\n# \u8a2d\u5b9a\u306e\u9069\u7528\n.\/jboss-cli.sh --connect\n\/subsystem=elytron\/key-store=applicationKS:add(path=wildfly.keystore,relative-to=jboss.server.config.dir,credential-reference={clear-text=password},type=JKS)\n\/subsystem=elytron\/key-manager=applicationKM:add(key-store=applicationKS,credential-reference={clear-text=password})\n\/subsystem=elytron\/server-ssl-context=applicationSSC:add(key-manager=applicationKM)\n\/subsystem=undertow\/server=default-server\/https-listener=https:write-attribute(name=ssl-context,value=applicationSSC)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-44\">2. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d8\u30c3\u30c0\u30fc\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;subsystem xmlns=\"urn:jboss:domain:undertow:12.0\"&gt;\n    &lt;server name=\"default-server\"&gt;\n        &lt;host name=\"default-host\" alias=\"localhost\"&gt;\n            &lt;filter-ref name=\"security-headers\"\/&gt;\n        &lt;\/host&gt;\n    &lt;\/server&gt;\n    &lt;filters&gt;\n        &lt;response-header name=\"security-headers\" \n                        header-name=\"X-Frame-Options\" \n                        header-value=\"SAMEORIGIN\"\/&gt;\n        &lt;response-header name=\"security-headers\" \n                        header-name=\"Strict-Transport-Security\" \n                        header-value=\"max-age=31536000; includeSubDomains\"\/&gt;\n    &lt;\/filters&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-45\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c9\u30e1\u30a4\u30f3\u306e\u8a2d\u8a08\u3068\u5b9f\u88c5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-46\">1. \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ web.xml\u3067\u306e\u8a2d\u5b9a\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;web-app version=\"4.0\"&gt;\n    &lt;security-constraint&gt;\n        &lt;web-resource-collection&gt;\n            &lt;web-resource-name&gt;Secure Area&lt;\/web-resource-name&gt;\n            &lt;url-pattern&gt;\/secure\/*&lt;\/url-pattern&gt;\n        &lt;\/web-resource-collection&gt;\n        &lt;auth-constraint&gt;\n            &lt;role-name&gt;admin&lt;\/role-name&gt;\n        &lt;\/auth-constraint&gt;\n        &lt;user-data-constraint&gt;\n            &lt;transport-guarantee&gt;CONFIDENTIAL&lt;\/transport-guarantee&gt;\n        &lt;\/user-data-constraint&gt;\n    &lt;\/security-constraint&gt;\n\n    &lt;login-config&gt;\n        &lt;auth-method&gt;FORM&lt;\/auth-method&gt;\n        &lt;realm-name&gt;application-realm&lt;\/realm-name&gt;\n        &lt;form-login-config&gt;\n            &lt;form-login-page&gt;\/login.html&lt;\/form-login-page&gt;\n            &lt;form-error-page&gt;\/error.html&lt;\/form-error-page&gt;\n        &lt;\/form-login-config&gt;\n    &lt;\/login-config&gt;\n&lt;\/web-app&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-47\">2. \u30ab\u30b9\u30bf\u30e0\u8a8d\u8a3c\u30e1\u30ab\u30cb\u30ba\u30e0\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@ApplicationScoped\npublic class CustomAuthenticationMechanism implements HttpAuthenticationMechanism {\n    @Inject\n    private IdentityStoreHandler identityStoreHandler;\n\n    @Override\n    public AuthenticationStatus validateRequest(\n            HttpServletRequest request,\n            HttpServletResponse response,\n            HttpMessageContext httpMessageContext) {\n\n        \/\/ \u30ab\u30b9\u30bf\u30e0\u8a8d\u8a3c\u30ed\u30b8\u30c3\u30af\u306e\u5b9f\u88c5\n        String token = extractToken(request);\n        if (token != null) {\n            CredentialValidationResult result = identityStoreHandler.validate(\n                new CustomCredential(token));\n\n            if (result.getStatus() == CredentialValidationResult.Status.VALID) {\n                return httpMessageContext.notifyContainerAboutLogin(result);\n            }\n        }\n\n        return httpMessageContext.responseUnauthorized();\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-48\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;subsystem xmlns=\"urn:wildfly:elytron:15.0\"&gt;\n    &lt;audit-logging&gt;\n        &lt;file-audit-log name=\"audit-log\" path=\"audit.log\" relative-to=\"jboss.server.log.dir\" format=\"JSON\"\/&gt;\n    &lt;\/audit-logging&gt;\n    &lt;security-domains&gt;\n        &lt;security-domain name=\"applicationDomain\"&gt;\n            &lt;audit-logging&gt;\n                &lt;audit-log-logger name=\"audit-log\"\/&gt;\n            &lt;\/audit-logging&gt;\n        &lt;\/security-domain&gt;\n    &lt;\/security-domains&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u57fa\u672c\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-49\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u5b9f\u8df5<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-50\">\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u624b\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-51\">1. JVM\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># standalone.conf\uff08Linux\uff09\u307e\u305f\u306fstandalone.conf.bat\uff08Windows\uff09\u3067\u306e\u8a2d\u5b9a\n\n# \u57fa\u672c\u7684\u306a\u30d2\u30fc\u30d7\u8a2d\u5b9a\nJAVA_OPTS=\"$JAVA_OPTS -Xms2048m -Xmx4096m\"\n\n# GC\u95a2\u9023\u306e\u8a73\u7d30\u8a2d\u5b9a\nJAVA_OPTS=\"$JAVA_OPTS \\\n    -XX:MetaspaceSize=512m \\\n    -XX:MaxMetaspaceSize=1024m \\\n    -XX:+UseG1GC \\\n    -XX:G1HeapRegionSize=16M \\\n    -XX:+ParallelRefProcEnabled \\\n    -XX:+UseStringDeduplication\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-52\">2. \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u76e3\u8996\u3068\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/h3>\n\n\n<div id=\"id-244498ce-f0d0-450f-bc33-6f578d67a5ab\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30e2\u30ea\u9818\u57df<\/th><th>\u63a8\u5968\u8a2d\u5b9a\u5024<\/th><th>\u76e3\u8996\u9805\u76ee<\/th><\/tr><\/thead><tbody><tr><td>\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u521d\u671f\u5024<\/td><td>\u7269\u7406\u30e1\u30e2\u30ea\u306e25%<\/td><td>GC\u30ed\u30b0\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u7387<\/td><\/tr><tr><td>\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u6700\u5927\u5024<\/td><td>\u7269\u7406\u30e1\u30e2\u30ea\u306e50%<\/td><td>OOM\u30a8\u30e9\u30fc\u306e\u767a\u751f\u983b\u5ea6<\/td><\/tr><tr><td>Metaspace<\/td><td>512MB-1GB<\/td><td>\u30af\u30e9\u30b9\u30ed\u30fc\u30c9\u6570<\/td><\/tr><tr><td>Stack Size<\/td><td>1MB<\/td><td>\u30b9\u30ec\u30c3\u30c9\u6570<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"i-53\">\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u3068\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306e\u8abf\u6574<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-54\">1. Undertow\u306e\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone.xml\u3067\u306e\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:jboss:domain:undertow:12.0\"&gt;\n    &lt;server name=\"default-server\"&gt;\n        &lt;http-listener name=\"default\" \n                      socket-binding=\"http\" \n                      worker=\"custom-worker\"\/&gt;\n    &lt;\/server&gt;\n    &lt;workers&gt;\n        &lt;worker name=\"custom-worker\"\n                io-threads=\"8\"\n                task-max-threads=\"64\"\n                task-keepalive=\"60\"\/&gt;\n    &lt;\/workers&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-55\">2. \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u6700\u9069\u5316<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;datasource jndi-name=\"java:\/jdbc\/MyDS\" pool-name=\"MyDS\" enabled=\"true\"&gt;\n    &lt;connection-url&gt;jdbc:postgresql:\/\/localhost:5432\/mydb&lt;\/connection-url&gt;\n    &lt;driver&gt;postgresql&lt;\/driver&gt;\n    &lt;!-- \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u8a2d\u5b9a --&gt;\n    &lt;pool&gt;\n        &lt;min-pool-size&gt;10&lt;\/min-pool-size&gt;\n        &lt;initial-pool-size&gt;20&lt;\/initial-pool-size&gt;\n        &lt;max-pool-size&gt;100&lt;\/max-pool-size&gt;\n        &lt;prefill&gt;true&lt;\/prefill&gt;\n        &lt;use-strict-min&gt;false&lt;\/use-strict-min&gt;\n        &lt;flush-strategy&gt;FailingConnectionOnly&lt;\/flush-strategy&gt;\n    &lt;\/pool&gt;\n    &lt;!-- \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8a2d\u5b9a --&gt;\n    &lt;validation&gt;\n        &lt;check-valid-connection-sql&gt;SELECT 1&lt;\/check-valid-connection-sql&gt;\n        &lt;background-validation&gt;true&lt;\/background-validation&gt;\n        &lt;background-validation-millis&gt;10000&lt;\/background-validation-millis&gt;\n    &lt;\/validation&gt;\n    &lt;timeout&gt;\n        &lt;blocking-timeout-millis&gt;5000&lt;\/blocking-timeout-millis&gt;\n        &lt;idle-timeout-minutes&gt;5&lt;\/idle-timeout-minutes&gt;\n    &lt;\/timeout&gt;\n&lt;\/datasource&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-56\">\u8ca0\u8377\u30c6\u30b9\u30c8\u3068\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u5b9f\u65bd\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-57\">1. JMX\u3092\u4f7f\u7528\u3057\u305f\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u8a2d\u5b9a<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u7ba1\u7406\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:jboss:domain:jmx:1.3\"&gt;\n    &lt;expose-resolved-model\/&gt;\n    &lt;expose-expression-model\/&gt;\n    &lt;remoting-connector use-management-endpoint=\"true\"\/&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<p>JMX\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u63a5\u7d9a\u7528\u30b9\u30af\u30ea\u30d7\u30c8\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\nJAVA_OPTS=\"$JAVA_OPTS \\\n    -Dcom.sun.management.jmxremote \\\n    -Dcom.sun.management.jmxremote.port=9999 \\\n    -Dcom.sun.management.jmxremote.authenticate=false \\\n    -Dcom.sun.management.jmxremote.ssl=false\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-58\">2. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6307\u6a19\u306e\u53ce\u96c6<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ MBean\u3092\u4f7f\u7528\u3057\u305f\u30e1\u30c8\u30ea\u30af\u30b9\u53ce\u96c6\u4f8b\npublic class PerformanceMonitor {\n    private MBeanServerConnection mbeanServer;\n\n    public void collectMetrics() {\n        try {\n            \/\/ \u30d2\u30fc\u30d7\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u53d6\u5f97\n            ObjectName memory = new ObjectName(\"java.lang:type=Memory\");\n            MemoryMXBean memoryBean = \n                JMX.newMBeanProxy(mbeanServer, memory, MemoryMXBean.class);\n\n            MemoryUsage heapMemoryUsage = memoryBean.getHeapMemoryUsage();\n            System.out.println(\"Used Memory: \" + \n                             heapMemoryUsage.getUsed() \/ (1024 * 1024) + \" MB\");\n\n            \/\/ \u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u72b6\u614b\u306e\u53d6\u5f97\n            ObjectName threading = \n                new ObjectName(\"java.lang:type=Threading\");\n            ThreadMXBean threadBean = \n                JMX.newMBeanProxy(mbeanServer, threading, ThreadMXBean.class);\n\n            System.out.println(\"Active Threads: \" + \n                             threadBean.getThreadCount());\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-59\">3. \u8ca0\u8377\u30c6\u30b9\u30c8\u306e\u5b9f\u65bd\u624b\u9806<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>JMeter\u30c6\u30b9\u30c8\u30d7\u30e9\u30f3\u4f8b\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;jmeterTestPlan version=\"1.2\"&gt;\n  &lt;hashTree&gt;\n    &lt;ThreadGroup guiclass=\"ThreadGroupGui\" testname=\"WildFly Load Test\"&gt;\n      &lt;elementProp name=\"ThreadGroup.main_controller\"&gt;\n        &lt;stringProp name=\"LoopController.loops\"&gt;100&lt;\/stringProp&gt;\n        &lt;stringProp name=\"ThreadGroup.num_threads\"&gt;50&lt;\/stringProp&gt;\n        &lt;stringProp name=\"ThreadGroup.ramp_time\"&gt;10&lt;\/stringProp&gt;\n      &lt;\/elementProp&gt;\n    &lt;\/ThreadGroup&gt;\n  &lt;\/hashTree&gt;\n&lt;\/jmeterTestPlan&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790\u30dd\u30a4\u30f3\u30c8\uff1a<\/li>\n<\/ol>\n\n\n<div id=\"id-730c6872-9158-4761-8ea4-fb58d02337d0\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6307\u6a19<\/th><th>\u8b66\u544a\u95be\u5024<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>\u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593<\/td><td>3\u79d2\u4ee5\u4e0a<\/td><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u5c0e\u5165\u3001SQL\u6700\u9069\u5316<\/td><\/tr><tr><td>\u30b9\u30ec\u30c3\u30c9\u4f7f\u7528\u7387<\/td><td>80%\u4ee5\u4e0a<\/td><td>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u62e1\u5927<\/td><\/tr><tr><td>\u30d2\u30fc\u30d7\u4f7f\u7528\u7387<\/td><td>85%\u4ee5\u4e0a<\/td><td>\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u8abf\u6574\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u8abf\u67fb<\/td><\/tr><tr><td>DB\u63a5\u7d9a\u6570<\/td><td>\u30d7\u30fc\u30eb80%\u4ee5\u4e0a<\/td><td>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u62e1\u5927\u3001\u30af\u30a8\u30ea\u6700\u9069\u5316<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-60\">4. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ec\u30d9\u30eb\u3067\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u5b9f\u88c5\u4f8b\n@Singleton\n@CacheConfig(cacheNames = \"myCache\")\npublic class DataService {\n    @Cacheable(key = \"#id\")\n    public Data getData(Long id) {\n        \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30b9\u306a\u3069\u306e\u91cd\u3044\u51e6\u7406\n        return heavyOperation(id);\n    }\n\n    @CacheEvict(allEntries = true)\n    public void clearCache() {\n        \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\u51e6\u7406\n    }\n}<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u57fa\u672c\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u624b\u6cd5\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-61\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30ac\u30a4\u30c9<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-62\">\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-63\">1. \u8d77\u52d5\u6642\u306e\u30a8\u30e9\u30fc<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-64\">\u30dd\u30fc\u30c8\u30d0\u30a4\u30f3\u30c9\u30a8\u30e9\u30fc<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) \nWFLYCTL0348: Timeout after [300] seconds waiting for service container stability<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u89e3\u6c7a\u65b9\u6cd5:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u4f7f\u7528\u4e2d\u306e\u30dd\u30fc\u30c8\u306e\u78ba\u8a8d\nnetstat -ano | findstr \"8080\"  # Windows\nnetstat -tulpn | grep \"8080\"   # Linux\n\n# \u30dd\u30fc\u30c8\u756a\u53f7\u306e\u5909\u66f4\uff08standalone.xml\uff09\n&lt;socket-binding name=\"http\" port=\"${jboss.http.port:8081}\"\/&gt;\n&lt;socket-binding name=\"https\" port=\"${jboss.https.port:8444}\"\/&gt;\n&lt;socket-binding name=\"management-http\" port=\"${jboss.management.http.port:9991}\"\/&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-65\">\u30e1\u30e2\u30ea\u4e0d\u8db3\u30a8\u30e9\u30fc<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">java.lang.OutOfMemoryError: Java heap space<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u89e3\u6c7a\u65b9\u6cd5:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># standalone.conf\u3067\u306e\u30e1\u30e2\u30ea\u8a2d\u5b9a\u8abf\u6574\nJAVA_OPTS=\"-Xms1024m -Xmx2048m -XX:MetaspaceSize=256m\"\n\n# \u30d2\u30fc\u30d7\u30c0\u30f3\u30d7\u306e\u53d6\u5f97\u3068\u5206\u6790\nJAVA_OPTS=\"$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\/path\/to\/dumps\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-66\">2. \u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30a8\u30e9\u30fc<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-67\">\u30af\u30e9\u30b9\u30ed\u30fc\u30c9\u30a8\u30e9\u30fc<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">java.lang.ClassNotFoundException: com.example.MyClass<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u89e3\u6c7a\u65b9\u6cd5:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e2\u30b8\u30e5\u30fc\u30eb\u4f9d\u5b58\u95a2\u4fc2\u306e\u78ba\u8a8d<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- jboss-deployment-structure.xml --&gt;\n&lt;jboss-deployment-structure&gt;\n    &lt;deployment&gt;\n        &lt;dependencies&gt;\n            &lt;module name=\"com.example.required.module\" \/&gt;\n        &lt;\/dependencies&gt;\n    &lt;\/deployment&gt;\n&lt;\/jboss-deployment-structure&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30af\u30e9\u30b9\u30d1\u30b9\u306e\u78ba\u8a8d<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># WAR\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u78ba\u8a8d\njar tvf application.war\n\n# \u30e2\u30b8\u30e5\u30fc\u30eb\u30d1\u30b9\u306e\u78ba\u8a8d\nls $JBOSS_HOME\/modules\/system\/layers\/base\/<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-68\">\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u63a5\u7d9a\u30a8\u30e9\u30fc<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">javax.resource.ResourceException: IJ000453: Unable to get managed connection<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\">\u89e3\u6c7a\u624b\u9806:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8a2d\u5b9a\u306e\u691c\u8a3c --&gt;\n&lt;datasource jndi-name=\"java:\/jdbc\/MyDS\" pool-name=\"MyDS\" enabled=\"true\"&gt;\n    &lt;validation&gt;\n        &lt;valid-connection-checker class-name=\"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker\"\/&gt;\n        &lt;exception-sorter class-name=\"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter\"\/&gt;\n    &lt;\/validation&gt;\n&lt;\/datasource&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-69\">\u30ed\u30b0\u89e3\u6790\u306e\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-70\">1. \u30ed\u30b0\u53ce\u96c6\u3068\u5206\u6790<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-71\">\u52b9\u7387\u7684\u306a\u30ed\u30b0\u691c\u7d22<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u62bd\u51fa\ngrep -r \"ERROR\" $JBOSS_HOME\/standalone\/log\/\n\n# \u7279\u5b9a\u306e\u4f8b\u5916\u306e\u8ffd\u8de1\ngrep -A 10 -B 2 \"Exception\" server.log\n\n# \u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3067\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\nsed -n '\/2024-03-20 10:00\/,\/2024-03-20 11:00\/p' server.log<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-72\">\u30ab\u30b9\u30bf\u30e0\u30ed\u30b0\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone.xml --&gt;\n&lt;subsystem xmlns=\"urn:jboss:domain:logging:8.0\"&gt;\n    &lt;periodic-rotating-file-handler name=\"FILE\"&gt;\n        &lt;file relative-to=\"jboss.server.log.dir\" path=\"server.log\"\/&gt;\n        &lt;suffix value=\".yyyy-MM-dd\"\/&gt;\n        &lt;formatter&gt;\n            &lt;pattern-formatter pattern=\"%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n\"\/&gt;\n        &lt;\/formatter&gt;\n    &lt;\/periodic-rotating-file-handler&gt;\n\n    &lt;logger category=\"com.example\"&gt;\n        &lt;level name=\"DEBUG\"\/&gt;\n        &lt;handlers&gt;\n            &lt;handler name=\"FILE\"\/&gt;\n        &lt;\/handlers&gt;\n    &lt;\/logger&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-73\">2. \u30ed\u30b0\u5206\u6790\u30c4\u30fc\u30eb\u306e\u6d3b\u7528<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30ed\u30b0\u89e3\u6790\u7528\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30af\u30e9\u30b9\npublic class LogAnalyzer {\n    public static Map&lt;String, Integer&gt; analyzeErrorFrequency(String logFile) {\n        Map&lt;String, Integer&gt; errorCount = new HashMap&lt;&gt;();\n        try (BufferedReader reader = new BufferedReader(new FileReader(logFile))) {\n            String line;\n            while ((line = reader.readLine()) != null) {\n                if (line.contains(\"ERROR\")) {\n                    String errorType = extractErrorType(line);\n                    errorCount.merge(errorType, 1, Integer::sum);\n                }\n            }\n        }\n        return errorCount;\n    }\n\n    private static String extractErrorType(String logLine) {\n        \/\/ \u30a8\u30e9\u30fc\u30bf\u30a4\u30d7\u3092\u62bd\u51fa\u3059\u308b\u30ed\u30b8\u30c3\u30af\n        Pattern pattern = Pattern.compile(\"ERROR.*?\\\\[(.*?)\\\\]\");\n        Matcher matcher = pattern.matcher(logLine);\n        return matcher.find() ? matcher.group(1) : \"Unknown\";\n    }\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-74\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u306e\u7279\u5b9a\u3068\u89e3\u6c7a<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-75\">1. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790\u30c4\u30fc\u30eb<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># JFR\uff08Java Flight Recorder\uff09\u306e\u6709\u52b9\u5316\nJAVA_OPTS=\"$JAVA_OPTS \\\n    -XX:+UnlockCommercialFeatures \\\n    -XX:+FlightRecorder \\\n    -XX:StartFlightRecording=duration=60s,filename=recording.jfr\"\n\n# \u30b9\u30ec\u30c3\u30c9\u30c0\u30f3\u30d7\u306e\u53d6\u5f97\njstack -l &lt;pid&gt; &gt; thread_dump.txt\n\n# \u30d2\u30fc\u30d7\u5206\u6790\njmap -heap &lt;pid&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-76\">2. \u3088\u304f\u3042\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3068\u89e3\u6c7a\u7b56<\/h3>\n\n\n<div id=\"id-a0912a29-590b-4f7f-9325-783d525ea2ee\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u554f\u984c<\/th><th>\u75c7\u72b6<\/th><th>\u89e3\u6c7a\u7b56<\/th><\/tr><\/thead><tbody><tr><td>\u30e1\u30e2\u30ea\u30ea\u30fc\u30af<\/td><td>\u30d2\u30fc\u30d7\u4f7f\u7528\u91cf\u306e\u7d99\u7d9a\u7684\u306a\u5897\u52a0<\/td><td>\u30d2\u30fc\u30d7\u30c0\u30f3\u30d7\u5206\u6790\u3001GC\u8a2d\u5b9a\u306e\u8abf\u6574<\/td><\/tr><tr><td>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u67af\u6e07<\/td><td>\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u9045\u5ef6<\/td><td>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u30b5\u30a4\u30ba\u306e\u8abf\u6574\u3001\u30c7\u30c3\u30c9\u30ed\u30c3\u30af\u691c\u51fa<\/td><\/tr><tr><td>DB\u63a5\u7d9a\u30d7\u30fc\u30eb\u4e0d\u8db3<\/td><td>\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u30a8\u30e9\u30fc\u306e\u5897\u52a0<\/td><td>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/td><\/tr><tr><td>GC\u306e\u983b\u767a<\/td><td>\u5fdc\u7b54\u6642\u9593\u306e\u6025\u6fc0\u306a\u5897\u52a0<\/td><td>GC\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u5909\u66f4\u3001\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u306e\u8abf\u6574<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u5b9f\u88c5\u4f8b\n@Singleton\npublic class PerformanceMonitor {\n    private static final Logger logger = LoggerFactory.getLogger(PerformanceMonitor.class);\n\n    @Schedule(hour = \"*\", minute = \"*\/5\")\n    public void checkSystemHealth() {\n        Runtime runtime = Runtime.getRuntime();\n        long totalMemory = runtime.totalMemory();\n        long freeMemory = runtime.freeMemory();\n        long usedMemory = totalMemory - freeMemory;\n\n        logger.info(\"Memory Usage: {}MB \/ {}MB\", \n            usedMemory \/ (1024 * 1024), \n            totalMemory \/ (1024 * 1024));\n    }\n}<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u57fa\u672c\u7684\u306a\u30ac\u30a4\u30c9\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u672c\u756a\u74b0\u5883\u3067\u306e\u904b\u7528\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-77\">\u672c\u756a\u74b0\u5883\u3067\u306e\u904b\u7528\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-78\">\u5197\u9577\u69cb\u6210\u306e\u8a2d\u8a08\u3068\u5b9f\u88c5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-79\">1. \u30c9\u30e1\u30a4\u30f3\u30e2\u30fc\u30c9\u3067\u306e\u30af\u30e9\u30b9\u30bf\u69cb\u7bc9<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- domain.xml \u3067\u306e\u57fa\u672c\u8a2d\u5b9a --&gt;\n&lt;server-groups&gt;\n    &lt;server-group name=\"main-server-group\" profile=\"full-ha\"&gt;\n        &lt;jvm name=\"default\"&gt;\n            &lt;heap size=\"1024m\" max-size=\"2048m\"\/&gt;\n        &lt;\/jvm&gt;\n        &lt;socket-binding-group ref=\"full-ha-sockets\"\/&gt;\n    &lt;\/server-group&gt;\n&lt;\/server-groups&gt;\n\n&lt;host xmlns=\"urn:jboss:domain:19.0\" name=\"master\"&gt;\n    &lt;servers&gt;\n        &lt;server name=\"server-one\" group=\"main-server-group\"&gt;\n            &lt;socket-bindings port-offset=\"0\"\/&gt;\n        &lt;\/server&gt;\n        &lt;server name=\"server-two\" group=\"main-server-group\"&gt;\n            &lt;socket-bindings port-offset=\"100\"\/&gt;\n        &lt;\/server&gt;\n    &lt;\/servers&gt;\n&lt;\/host&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-80\">2. mod_cluster\u8a2d\u5b9a\u306b\u3088\u308b\u8ca0\u8377\u5206\u6563<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone-ha.xml\u3067\u306emod_cluster\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:jboss:domain:modcluster:5.0\"&gt;\n    &lt;mod-cluster-config advertise-socket=\"modcluster\"\n                       connector=\"ajp\"&gt;\n        &lt;dynamic-load-provider&gt;\n            &lt;load-metric type=\"busyness\"\/&gt;\n            &lt;load-metric type=\"cpu\" weight=\"2\"\/&gt;\n            &lt;load-metric type=\"sessions\" weight=\"1\"\/&gt;\n        &lt;\/dynamic-load-provider&gt;\n    &lt;\/mod-cluster-config&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<p>Apache\u5074\u306e\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># httpd.conf\u3067\u306emod_cluster\u8a2d\u5b9a\nLoadModule proxy_module modules\/mod_proxy.so\nLoadModule proxy_ajp_module modules\/mod_proxy_ajp.so\nLoadModule cluster_slotmem_module modules\/mod_cluster_slotmem.so\nLoadModule manager_module modules\/mod_manager.so\nLoadModule proxy_cluster_module modules\/mod_proxy_cluster.so\n\n&lt;IfModule manager_module&gt;\n    Listen 6666\n    &lt;VirtualHost *:6666&gt;\n        &lt;Directory \/&gt;\n            Require all granted\n        &lt;\/Directory&gt;\n\n        ServerAdvertise on\n        EnableMCPMReceive\n\n        &lt;Location \/mod_cluster_manager&gt;\n            SetHandler mod_cluster-manager\n            Require ip 127.0.0.1\n        &lt;\/Location&gt;\n    &lt;\/VirtualHost&gt;\n&lt;\/IfModule&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-81\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u30ea\u30ab\u30d0\u30ea\u306e\u6226\u7565<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-82\">1. \u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u5b9f\u88c5<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n# backup-wildfly.sh\n\n# \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u8a2d\u5b9a\nBACKUP_DIR=\"\/backup\/wildfly\"\nWILDFLY_HOME=\"\/opt\/wildfly\"\nDATE=$(date +%Y%m%d_%H%M%S)\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\ntar -czf $BACKUP_DIR\/config_$DATE.tar.gz \\\n    $WILDFLY_HOME\/standalone\/configuration\/ \\\n    $WILDFLY_HOME\/domain\/configuration\/\n\n# \u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\ntar -czf $BACKUP_DIR\/deployments_$DATE.tar.gz \\\n    $WILDFLY_HOME\/standalone\/deployments\/\n\n# \u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\ntar -czf $BACKUP_DIR\/data_$DATE.tar.gz \\\n    $WILDFLY_HOME\/standalone\/data\/\n\n# \u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\nfind $BACKUP_DIR -name \"*.tar.gz\" -mtime +30 -delete<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-83\">2. \u30ea\u30ab\u30d0\u30ea\u624b\u9806\u306e\u6587\u66f8\u5316<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n# restore-wildfly.sh\n\n# \u30ea\u30b9\u30c8\u30a2\u8a2d\u5b9a\nBACKUP_DIR=\"\/backup\/wildfly\"\nWILDFLY_HOME=\"\/opt\/wildfly\"\nRESTORE_DATE=$1\n\n# WildFly\u306e\u505c\u6b62\nsystemctl stop wildfly\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30ea\u30b9\u30c8\u30a2\ntar -xzf $BACKUP_DIR\/config_$RESTORE_DATE.tar.gz -C \/\n\n# \u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306e\u30ea\u30b9\u30c8\u30a2\ntar -xzf $BACKUP_DIR\/deployments_$RESTORE_DATE.tar.gz -C \/\n\n# \u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30ea\u30b9\u30c8\u30a2\ntar -xzf $BACKUP_DIR\/data_$RESTORE_DATE.tar.gz -C \/\n\n# \u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u4fee\u6b63\nchown -R wildfly:wildfly $WILDFLY_HOME\n\n# WildFly\u306e\u8d77\u52d5\nsystemctl start wildfly<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-84\">\u76e3\u8996\u4f53\u5236\u306e\u69cb\u7bc9\u3068\u904b\u7528\u30d5\u30ed\u30fc<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-85\">1. Prometheus\u3092\u4f7f\u7528\u3057\u305f\u30e1\u30c8\u30ea\u30af\u30b9\u53ce\u96c6<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- standalone.xml\u3067\u306ePrometheus\u8a2d\u5b9a --&gt;\n&lt;subsystem xmlns=\"urn:wildfly:microprofile-metrics-smallrye:3.0\"&gt;\n    &lt;expose-subsystem-metrics&gt;true&lt;\/expose-subsystem-metrics&gt;\n    &lt;security-enabled&gt;false&lt;\/security-enabled&gt;\n    &lt;exposed-subsystems&gt;\n        &lt;subsystem&gt;undertow&lt;\/subsystem&gt;\n        &lt;subsystem&gt;datasources&lt;\/subsystem&gt;\n    &lt;\/exposed-subsystems&gt;\n&lt;\/subsystem&gt;<\/pre>\n\n\n\n<p>Prometheus\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># prometheus.yml\nscrape_configs:\n  - job_name: 'wildfly'\n    static_configs:\n      - targets: ['localhost:9990']\n    metrics_path: '\/metrics'\n    scheme: 'http'<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-86\">2. \u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a\u3068\u30a8\u30b9\u30ab\u30ec\u30fc\u30b7\u30e7\u30f3\u30d5\u30ed\u30fc<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># alertmanager.yml\nglobal:\n  resolve_timeout: 5m\n\nroute:\n  group_by: ['alertname', 'cluster', 'service']\n  group_wait: 30s\n  group_interval: 5m\n  repeat_interval: 3h\n  receiver: 'team-emails'\n  routes:\n  - match:\n      severity: critical\n    receiver: 'team-pager'\n\nreceivers:\n- name: 'team-emails'\n  email_configs:\n  - to: 'team@example.com'\n- name: 'team-pager'\n  pagerduty_configs:\n  - service_key: '&lt;pagerduty-key&gt;'<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-87\">3. \u904b\u7528\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">## \u65e5\u6b21\u30c1\u30a7\u30c3\u30af\u9805\u76ee\n\n1. \u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\n   - [ ] CPU\u4f7f\u7528\u7387 &lt; 80%\n   - [ ] \u30e1\u30e2\u30ea\u4f7f\u7528\u7387 &lt; 85%\n   - [ ] \u30c7\u30a3\u30b9\u30af\u4f7f\u7528\u7387 &lt; 80%\n\n2. \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u72b6\u614b\n   - [ ] \u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u78ba\u8a8d\n   - [ ] \u30a2\u30af\u30c6\u30a3\u30d6\u30bb\u30c3\u30b7\u30e7\u30f3\u6570\n   - [ ] \u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\n\n3. \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\n   - [ ] \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30b8\u30e7\u30d6\u306e\u6210\u529f\u78ba\u8a8d\n   - [ ] \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30d5\u30a1\u30a4\u30eb\u306e\u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af\n\n## \u9031\u6b21\u30c1\u30a7\u30c3\u30af\u9805\u76ee\n\n1. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790\n   - [ ] GC\u30ed\u30b0\u306e\u78ba\u8a8d\n   - [ ] \u30b9\u30ec\u30c3\u30c9\u30c0\u30f3\u30d7\u306e\u5206\u6790\n   - [ ] \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u4f7f\u7528\u72b6\u6cc1\n\n2. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\n   - [ ] \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d1\u30c3\u30c1\u306e\u78ba\u8a8d\n   - [ ] \u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u76e3\u67fb\n   - [ ] \u8a8d\u8a3c\u5931\u6557\u306e\u76e3\u8996<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-88\">4. \u81ea\u52d5\u5316\u30b9\u30af\u30ea\u30d7\u30c8\u4f8b<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u76e3\u8996\u7528\u306e\u30ab\u30b9\u30bf\u30e0MBean\n@MBean\npublic class SystemHealthMonitor implements SystemHealthMonitorMBean {\n    @Override\n    public HealthStatus checkSystemHealth() {\n        HealthStatus status = new HealthStatus();\n\n        \/\/ \u30e1\u30e2\u30ea\u4f7f\u7528\u7387\u30c1\u30a7\u30c3\u30af\n        Runtime runtime = Runtime.getRuntime();\n        long maxMemory = runtime.maxMemory();\n        long usedMemory = runtime.totalMemory() - runtime.freeMemory();\n        status.setMemoryUsage((double) usedMemory \/ maxMemory);\n\n        \/\/ \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u63a5\u7d9a\u30c1\u30a7\u30c3\u30af\n        try {\n            InitialContext ctx = new InitialContext();\n            DataSource ds = (DataSource) ctx.lookup(\"java:\/jdbc\/MainDS\");\n            try (Connection conn = ds.getConnection()) {\n                status.setDatabaseConnected(true);\n            }\n        } catch (Exception e) {\n            status.setDatabaseConnected(false);\n        }\n\n        return status;\n    }\n}<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u672c\u756a\u74b0\u5883\u3067\u306e\u904b\u7528\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3067\u3059\u3002\u3053\u308c\u3089\u306e\u624b\u9806\u3068\u8a2d\u5b9a\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u5b89\u5b9a\u3057\u305f\u904b\u7528\u304c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"i-89\">\u307e\u3068\u3081\uff1aWildFly\u5c0e\u5165\u30fb\u904b\u7528\u306e\u30dd\u30a4\u30f3\u30c8<\/h1>\n\n\n\n<p>WildFly\u306e\u5c0e\u5165\u304b\u3089\u904b\u7528\u307e\u3067\u3001\u4e3b\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3092\u89e3\u8aac\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u3053\u3053\u3067\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3092\u6574\u7406\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-90\">\u4e3b\u8981\u306a\u5c0e\u5165\u30fb\u904b\u7528\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u74b0\u5883\u69cb\u7bc9\u6642\u306e\u6ce8\u610f\u70b9<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u9069\u5207\u306aJava\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u9078\u629e<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u5fb9\u5e95<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5b89\u5b9a\u904b\u7528\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u76e3\u8996\u4f53\u5236\u306e\u78ba\u7acb<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u5b9f\u65bd<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c8\u30e9\u30d6\u30eb\u5bfe\u7b56\u306e\u30dd\u30a4\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30ed\u30b0\u76e3\u8996\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u554f\u984c\u306e\u65e9\u671f\u767a\u898b\u30fb\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u5b9a\u671f\u7684\u306a\u5065\u5168\u6027\u30c1\u30a7\u30c3\u30af<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-91\">\u4eca\u5f8c\u306e\u767a\u5c55\u306b\u5411\u3051\u3066<\/h2>\n\n\n\n<p>WildFly\u306f\u7d99\u7d9a\u7684\u306b\u9032\u5316\u3092\u7d9a\u3051\u3066\u304a\u308a\u3001\u4ee5\u4e0b\u306e\u70b9\u306b\u6ce8\u76ee\u304c\u5fc5\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30f3\u30c6\u30ca\u5316\u3078\u306e\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u6a5f\u80fd\u306e\u5f37\u5316<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u306e\u7d71\u5408<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-92\">\u6700\u7d42\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h2>\n\n\n<div id=\"id-4e74fea0-a35b-4577-8271-ef8fe657a13e\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a7\u30fc\u30ba<\/th><th>\u91cd\u8981\u9805\u76ee<\/th><th>\u5099\u8003<\/th><\/tr><\/thead><tbody><tr><td>\u5c0e\u5165\u6642<\/td><td>\u8981\u4ef6\u5b9a\u7fa9\u3068\u8a2d\u8a08<\/td><td>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u8003\u616e<\/td><\/tr><tr><td>\u69cb\u7bc9\u6642<\/td><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/td><td>\u7279\u306b\u8a8d\u8a3c\u30fb\u8a8d\u53ef\u306b\u6ce8\u610f<\/td><\/tr><tr><td>\u904b\u7528\u6642<\/td><td>\u76e3\u8996\u4f53\u5236\u306e\u78ba\u7acb<\/td><td>\u81ea\u52d5\u5316\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528<\/td><\/tr><tr><td>\u4fdd\u5b88\u6642<\/td><td>\u5b9a\u671f\u7684\u306a\u66f4\u65b0<\/td><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d1\u30c3\u30c1\u306e\u9069\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>WildFly\u306e\u9069\u5207\u306a\u904b\u7528\u306b\u306f\u3001\u672c\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305f\u5404\u8981\u7d20\u3092\u7dcf\u5408\u7684\u306b\u8003\u616e\u3057\u3001\u81ea\u793e\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u6700\u9069\u5316\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u7d99\u7d9a\u7684\u306a\u5b66\u7fd2\u3068\u6539\u5584\u3092\u901a\u3058\u3066\u3001\u3088\u308a\u5b89\u5b9a\u3057\u305f\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u3092\u5b9f\u73fe\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WildFly\u3068\u306f\uff1f\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baJava\u306e\u6b21\u4e16\u4ee3\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":{"0":"post-865","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-java","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=865"}],"version-history":[{"count":2,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/865\/revisions"}],"predecessor-version":[{"id":887,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/865\/revisions\/887"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}