{"id":6681,"date":"2018-05-04T12:17:00","date_gmt":"2018-05-04T17:17:00","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=6681"},"modified":"2018-05-10T10:15:47","modified_gmt":"2018-05-10T15:15:47","slug":"jboss-changing-connection-pool-size-with-jmx","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2018\/05\/04\/jboss-changing-connection-pool-size-with-jmx\/","title":{"rendered":"JBOSS &#8211; Changing connection pool size with JMX"},"content":{"rendered":"<p>Enable password in JBOSS_HOME\/server\/JBOSS_SERVER_NAME\/conf\/props\/jmx-console-users.properties<\/p>\n<p>You can then punch in bean calls such as the following&#8230;<\/p>\n<pre>\r\n[sa-jboss@servername ~]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcatalogb_ds\" MinSize\r\nMinSize=10\r\n[sa-jboss@servername ~]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin set \"jboss.jca:service=ManagedConnectionPool,name=atgcatalogb_ds\" MinSize 40\r\nMinSize=40\r\n[sa-jboss@servername ~]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcatalogb_ds\" MinSize\r\nMinSize=40\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" StateString\r\nStateString=Started\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" ConnectionCount\r\nConnectionCount=40\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin invoke \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" flush\r\n'null'\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" ConnectionCount\r\nConnectionCount=0\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin invoke \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" testConnection\r\ntrue\r\n[sa-jboss@servername bin]$ \/usr\/local\/jboss\/bin\/twiddle.sh --server=servername:1599 -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=atgcataloga_ds\" ConnectionCount\r\nConnectionCount=40\r\n[sa-jboss@servername bin]$\r\n<\/pre>\n<p>You can completely refresh pools with something like the following&#8230;<\/p>\n<pre>\r\n#!\/bin\/sh\r\n\r\n#--------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\nfunction expPrint {\r\n  echo -e $(date)'\\t'$MESSAGE\r\n}\r\n\r\n#--------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\nINSTANCE=$1\r\nPID=$(ps -ef | grep java | awk -v INSTANCE=$INSTANCE '$(NF - 2) == INSTANCE {print $2}')\r\necho -e $(date)'\\t'\"java PID is $PID\"\r\nexport PORT=$(netstat -anp 2>&1 | awk -v PID=$PID '$NF == PID\"\/java\" && $6 == \"LISTEN\" && $4 ~ \":..99\" {split($4,t,\":\");print t[2]}')\r\n\r\nif [ ! $PORT ]; then\r\n  echo \"can't find port!\"\r\n  exit\r\nfi\r\n\r\necho -e $(date)'\\t'\"connecting to JMX port $PORT on $HOSTNAME for instance $INSTANCE\"\r\n\r\nfor pool in {atgcataloga_ds,atgcatalogb_ds,atgcore_ds}; do\r\n  MESSAGE=\"flushing ${pool}...\"\r\n  expPrint\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" StateString)\r\n  expPrint\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" ConnectionCount)\r\n  expPrint\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin invoke \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" flush)\r\n  expPrint\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" ConnectionCount)\r\n  expPrint\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin invoke \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" testConnection)\r\n  expPrint\r\n  sleep 3\r\n  #give time to repopulate pool before checking.  could add a handler here to alert if pool is not re-populated...\r\n  MESSAGE=$(\/usr\/local\/jboss\/bin\/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get \"jboss.jca:service=ManagedConnectionPool,name=${pool}\" ConnectionCount)\r\n  expPrint\r\n  MESSAGE=\"---------------------------------------------------------------------\"\r\n  expPrint\r\ndone\r\n\r\n#---------------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Enable password in JBOSS_HOME\/server\/JBOSS_SERVER_NAME\/conf\/props\/jmx-console-users.properties You can then punch in bean calls such as the following&#8230; [sa-jboss@servername ~]$ \/usr\/local\/jboss\/bin\/twiddle.sh &#8211;server=servername:1599 -u admin -p admin get &#8220;jboss.jca:service=ManagedConnectionPool,name=atgcatalogb_ds&#8221; MinSize MinSize=10 [sa-jboss@servername ~]$ \/usr\/local\/jboss\/bin\/twiddle.sh &#8211;server=servername:1599 -u admin -p admin set &#8220;jboss.jca:service=ManagedConnectionPool,name=atgcatalogb_ds&#8221; MinSize 40 MinSize=40&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2018\/05\/04\/jboss-changing-connection-pool-size-with-jmx\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[48,49],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6681"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=6681"}],"version-history":[{"count":5,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6681\/revisions"}],"predecessor-version":[{"id":6690,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/6681\/revisions\/6690"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=6681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=6681"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=6681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}