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…
[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 MinSize=10 [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 MinSize=40 [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 MinSize=40 [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 StateString=Started [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 ConnectionCount=40 [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 'null' [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 ConnectionCount=0 [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 true [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 ConnectionCount=40 [sa-jboss@servername bin]$
You can completely refresh pools with something like the following…
#!/bin/sh
#--------------------------------------------------------------------------------------------------------------------------------------------------
function expPrint {
echo -e $(date)'\t'$MESSAGE
}
#--------------------------------------------------------------------------------------------------------------------------------------------------
INSTANCE=$1
PID=$(ps -ef | grep java | awk -v INSTANCE=$INSTANCE '$(NF - 2) == INSTANCE {print $2}')
echo -e $(date)'\t'"java PID is $PID"
export PORT=$(netstat -anp 2>&1 | awk -v PID=$PID '$NF == PID"/java" && $6 == "LISTEN" && $4 ~ ":..99" {split($4,t,":");print t[2]}')
if [ ! $PORT ]; then
echo "can't find port!"
exit
fi
echo -e $(date)'\t'"connecting to JMX port $PORT on $HOSTNAME for instance $INSTANCE"
for pool in {atgcataloga_ds,atgcatalogb_ds,atgcore_ds}; do
MESSAGE="flushing ${pool}..."
expPrint
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get "jboss.jca:service=ManagedConnectionPool,name=${pool}" StateString)
expPrint
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get "jboss.jca:service=ManagedConnectionPool,name=${pool}" ConnectionCount)
expPrint
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin invoke "jboss.jca:service=ManagedConnectionPool,name=${pool}" flush)
expPrint
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get "jboss.jca:service=ManagedConnectionPool,name=${pool}" ConnectionCount)
expPrint
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin invoke "jboss.jca:service=ManagedConnectionPool,name=${pool}" testConnection)
expPrint
sleep 3
#give time to repopulate pool before checking. could add a handler here to alert if pool is not re-populated...
MESSAGE=$(/usr/local/jboss/bin/twiddle.sh --server=${HOSTNAME}:${PORT} -u admin -p admin get "jboss.jca:service=ManagedConnectionPool,name=${pool}" ConnectionCount)
expPrint
MESSAGE="---------------------------------------------------------------------"
expPrint
done
#---------------------------------------------------------------------------------------------------------------------------------------------------