Please note: twiddle is not available any more as default Command Line in JBoss AS 7 and WildFly. If you still need to monitor the MBeans attribute of the application server from the shell, see this article: Monitoring WildFly MBeans from the shell
Twiddle example commands
JBoss provides a simple command line tool that allows for interaction with a remote JMX server instance. This tool is called jboss twiddle (for twiddling bits via JMX) and is located in the bin directory of the distribution. Twiddle is a command execution tool, not a general command shell.
The syntax of this tool is:
twiddle.sh [options] <command> [command_arguments]
Let’s see some practical examples
List of MBeans with twiddle
If you want to see the list of MBeans published simply pass the “-l” argument to serverinfo
twiddle -s localhost serverinfo -l (for Win Users)
or for Unix machines:
twiddle.sh -s localhost serverinfo -l
Database Management
How to change the Connection Pool size via twiddle
Supposing you need to change at runtime the size of your datasource named “DefaultDS”, then you can use twiddle command (or modify it manually from the JMX-Console)
twiddle.sh set jboss.jca:name=DefaultDS,service=ManagedConnectionPool MaxSize 300
This sets the Max ConnectionPool size to 300
How to count the number of Connections available in a Datasource:
(In this example we are checking DefaultDS Datasource)
twiddle.sh get "jboss.jca:name=DefaultDS,service=ManagedConnectionPool" AvailableConnectionCount
JBoss Management with twiddle
How to shut down JBoss with twiddle:
twiddle.sh -s hostname invoke jboss.system:type=Server shutdown
How to shutdown JBoss with twiddle using authentication:
twiddle.sh -s hostname -u admin -p admin invoke jboss.system:type=Server shutdown
JVM Management with twiddle
How to check the amount of free memory available:
twiddle.sh -s localhost:1099 get "jboss.system:type=ServerInfo" FreeMemory
Take ThreadDump :
twiddle.sh -s localhost:1099 invoke 'jboss.system:type=ServerInfo' listThreadDump
How to suggest the JVM to run the Garbage collector:
twiddle.sh invoke jboss.system:type=Server runGarbageCollector
Then you should see from the server log the following message:
13:52:39,281 INFO [Server] Hinted to the JVM to run garbage collection
13:52:39,281 INFO [Server] Total/free memory: 170065920/139849848
How to list Thread x CPU Usage:
twiddle.sh -s localhost:1099 invoke jboss.system:type=ServerInfo listThreadCpuUtilization
Web Applications
How to count active Sessions in a Web application:
twiddle -s localhost get "jboss.web:host=localhost,path=/SampleApp,type=Manager" activeSessions
activeSessions=3
How to inspect session attributes of a Web application:
First get the list of session ids running:
twiddle.sh -s localhost invoke "jboss.web:host=localhost,path=/Sample,type=Manager" listSessionIds
C01C7A10A4209D8A87F6467F5439FEF0
Then query for the session attibute:
twiddle.sh -s localhost invoke "jboss.web:host=localhost,path=/Sample,type=Manager" getSessionAttribute C01C7A10A4209D8A87F6467F5439FEF0 name=JohnSmith
Application Deployment
Deploying an Application :
twiddle.sh -s localhost:1099 invoke 'jboss.service:MainDeployer' deploy Application.war
Undeploying an Application :
twiddle.sh -s localhost:1099 invoke 'jboss.service:MainDeployer' undeploy Application.war
Redeploying an Application :
twiddle.sh -s localhost:1099 invoke 'jboss.service:MainDeployer' redeploy "