Pages

Wednesday, November 28, 2012

Lock Files in Weblogic


There are cases where we see

Lock is owned by Another Session
Or
weblogic.management.ManagementException: [Deployer:149164]The domain edit lock is owned by another session in exclusive mode - hence this deployment operation cannot proceed.

These issues say about the lock being owned by another process.During these cases we need to make sure that the process releases the lock.

There are 4 types of lock available in weblogic

config.lok : This is used for the getting the file lock on the config.xml file.This lock ensures that the config.xml file is being owned by only one process at a time.This also ensures that the updates to config.xml file are done in a sequential order.
Location : cfgdir/config/config.xml

edit.lok : This was the most important lock that we see.This lock ensures that only one user is editing the configurations at any point of time. No 2 operations are performed at a same time
Location : cfgdir/

embeddedLDAP.lok:This file locks access to the embedded ldap server to ensure that only one person has access to the directory server at any time.
Location  /cfgdir/servers/<Server Name>/data/ldap/ldapfiles/

XXXServer.lok:This lock indicates that a given server is running.This ensures that the server is not started or running multiple times.
Location : /cfgdir/servers/<Server Name>/servername.lok

When a webloigc server is stopped, the embeddedLDAP.lok and XXXservername.lok are deleted automatically.

Happy Learning
Read More

Tuesday, November 27, 2012

Connection Filters In Weblogic


Connection filters are one of the additional security Feature provides by Weblogic. Weblogic provides
Security for an domain level, application level and application component level using security roles and users.

Connection Filter is another feature provided by weblogic, which is a network layer security. These connection filters allow unwanted access to resources. For example these can be used in blocking a IP address in accessing the admin console of a weblogic.

Weblogic has a default connection filter implementation weblogic.security.net.ConnectionFilterImpl which connection filter rules that we configured and based on them it allows/blocks access to resources.

For adding a Connection Filter to a weblogic domain, Domain Name ->Security -> Filter. 
Connection Filter: weblogic.security.net.ConnectionFilterImpl
Connection Filter Rules:
IP address * * allow# Apache 
IP address * * allow#

Some thing like
173.222.34.54 * * allow#Apache
0.0.0.0/0 * * deny#Deny all
0.0.0.0/0 * 7001 deny

When We check in the config.xml file we can see,
 <connection-filter-rule>173.222.34.54 * * allow# Apache</connection-filter-rule>
<connection-filter-rule>0.0.0.0/0 * * deny#Deny All</connection-filter-rule>
<connection-filter-rule>0.0.0.0/0 * 7001 deny</connection-filter-rule>

The First line says to allow access to every thing for the IP address 173.222.34.54.The last  line will deny all traphic (0.0.0.0/0) to all local addresses (*) on admin port (7001).The Rules in here are validated from top to bottom.

There are some syntax rules while configuring the filters
  • Each rule must be written on a single line.
  • Tokens in a rule are separated by white space.
  • A pound sign (#) is the comment character. Everything after a pound sign on a line is ignored.
  • Whitespace before or after a rule is ignored.
  • Lines consisting only of whitespace or comments are skipped.
  • Filters are activated to all servers in your domain, so remember you can lockout yourself (admin console) or even internal weblogic communication between managed servers and the admin server.
  • Filters are stored in the config.xml file, so if you really locked yourself out -> Look there

The connection filter syntax is

targetAddress  localAddress  localPort   action        protocols

targetAddress specifies one or more systems to filter.

localAddress defines the host address of the WebLogic Server instance. (If you specify an asterisk (*), the match returns all local IP addresses.)

localPort defines the port on which the WebLogic Server instance is listening. (If you specify an asterisk (*), the match returns all available ports on the server).

action specifies the action to perform. This value must be allow or deny.

protocols is the list of protocol names to match. The following protocols may be specified: http, https, t3, t3s,ldap, ldaps, iiop, iiops, and com.

If no protocol is defined, all protocols will match a rule.

There are cases where you will see Notices like

####<Nov 27, 2012 4:31:22 AM CST> <Notice> <Socket> <omhq19ea> < admin> <ExecuteThread: '5' for queue: 'weblogic.socket.Muxer'> <<WLS Kernel>> <> <> <1354012282145> <BEA-000445> <Connection rejected, filter blocked Socket[addr=x.x.x.x.x,port=62719,localport=29902], weblogic.security.net.FilterException: [Security:090220]rule 81>


####<Nov 27, 2012 4:49:25 AM CST> <Notice> <Socket> <omhq19eb> < admin> <ExecuteThread: '4' for queue: 'weblogic.socket.Muxer'> <<WLS Kernel>> <> <> <1354013365338> <BEA-000445> <Connection rejected, filter blocked Socket[addr=x.x.x.x,port=62941,localport=29802], weblogic.security.net.FilterException: [Security:090220]rule 107>

Just check the connection filters are according to the syntax.

Happy Learning.
Read More

Thursday, November 22, 2012

Random Number Generation in Weblogic


The Generation of Random Number are done by using Math.random() or SecureRandom. The Source for generating the random numbers can be configured in such a way that they can depend on the Operating System. Java uses its own source for generating the Random numbers but for better random numbers, the source for generating the random numbers can assigned to the underlying operating System hardware Signals which are generated from the interactions from the network ,keyboard and other devices.

In RHEL, there are 2 files available that help in generating the Random numbers
/dev/random
&
/dev/urandom

The Random number generator uses hardware noises for generating the random numbers. The noise generated by the hardware is thus stored inside the entropy pool. The generator also has the information on how much bits of information is available in the entropy pool.

From using this entropy pool, the random numbers are generated.

The /dev/random will only return random date within the estimated number of bits of noise in the
entropy pool but one issue with this is the /dev/random will be blocked until additional noise is generated or bits available in the entropy pool. If no bits are available in the entropy pool, the /dev/random will be blocked.

The /dev/urandom will return as much data requested.

If your system does not have /dev/random and  /dev/urandom created  already,  they  can be created with the following  commands:

               mknod -m 644 /dev/random c 1 8
               mknod -m 644 /dev/urandom c 1 9
               chown root:root /dev/random /dev/urandom

The library used for random number generation in Sun's JVM relies on /dev/random by default for Linux platforms. For configuring the random number generation with Weblogic,

Check if /dev/random works fine
head -n 1 /dev/random

If the command returns immediately, you can use /dev/random as the default generator for SUN's JVM. If the command does not return immediately, use these steps to configure the JVM to use/dev/urandom .This can be configured as
-Djava.security.egd=file:/dev/./urandom and added to the Weblogic startup script

Happy learning
Read More

Weblogic Command Line Tools


Ping
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> PING

Connect
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> CONNECT 10

Output May look like this,
Connection: 0 - 5 ms
Connection: 1 - 2 ms
Connection: 2 - 1 ms
Connection: 3 - 1 ms
Connection: 4 - 2 ms
Connection: 5 - 1 ms
Connection: 6 - 2 ms
Connection: 7 - 4 ms
Connection: 8 - 1 ms
Connection: 9 - 1 ms

RTT =<KeyStore> ~76 milliseconds, or ~7 milliseconds/connection

If the command does not establish a connection, it returns nothing.

State
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GETSTATE

output May Look like this,
Current state of "" : RUNNING

Help
java weblogic.Admin HELP PING

License
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> LICENSES

JNDI Content
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> LIST

The command lists the bindings immediately below the InitialContext of the specified server instance

Output May Look Like this,
Contents of InitialContext
  weblogic: weblogic.jndi.internal.ServerNamingNode
  ejb: weblogic.jndi.internal.ServerNamingNode
  javax: weblogic.jndi.internal.ServerNamingNode
  mejbmejb_jarMejb_EO: weblogic.rmi.cluster.ClusterableRemoteObject

Some More Example For JNDI Context are,
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> LIST ejb

Contents of ejb
  mgmt: weblogic.jndi.internal.ServerNamingNode

java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> LIST javax

Contents of javax
  transaction: weblogic.jndi.internal.ServerNamingNode
  jms: weblogic.jndi.internal.ServerNamingNode

    
Server Log
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> SERVERLOG | more

Logs at 8 Am
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> SERVERLOG 8:00 | more

Logs From 8AM to 8:30 AM
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> SERVERLOG "2002/10/18 08:00" "2002/10/18 08:30" | more

Thread Dump
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> THREAD_DUMP

Version
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> VERSION

JDBC Pool Test
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> TEST_POOL -poolName

JDBC  Pool Exists
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> EXISTS_POOL -poolName


Cluster
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> CLUSTERSTATE -clustername

Output May look Like this,
There are 1 server(s) in cluster:

The alive servers and their respective states are listed below:
---RUNNING

Get Server Configuration Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type Server

Server Status Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type ServerRuntime

JVM Runtime Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type JVMRuntime

JDBC Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type JDBCConnectionPoolRuntime

Application Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type ApplicationRuntime

Run Garbage Collection
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type ApplicationRuntime -method runGC

Cluster Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty –type   ClusterRuntime

Servlet Details
java  -Dweblogic.security.SSL.trustedCAKeyStore=<KeyStore> weblogic.Admin -adminurl t3s://<IPaddress:Port> -username <UserName> -password <Password> GET -pretty -type ServletRuntime

Some Other Runtime
ConnectorConnectionPoolRuntime
ConnectorConnectionRuntime
ConnectorServiceRuntime
DeploymentRuntime
DomainRuntime
EjbComponentRuntime
EjbEntityHomeRuntime
EjbMessageDrivenRuntime
EjbStatefulHomeRuntime
EjbStatelessHomeRuntime
ExecuteQueueRuntime
JdbcConnectionPoolRuntime
JmsConnectionRuntime
JmsConsumerRuntime
JmsDestinationRuntime
JMSDurableSubscriberRuntime
JmsProducerRuntime
JmsRuntime
JmsServerRuntime
JmsSessionPoolRuntime
JmsSessionRuntime
JoltConnectionPoolRuntime
JoltConnectionRuntime
JoltConnectionServiceRuntime
JtaRuntime
JvmRuntime
LogBroadcasterRuntime
ServerRuntime
ServerSecurityRuntime
ServletRuntime
ServletSessionRuntime
TimeServiceRuntime
TransactionNameRuntime
TransactionResourceRuntime
WebAppComponentRuntime


Additional Commands
Get Properties:  java utils.getProperty
My IP: java utils.myip
My System Information: java utils.system
Weblogic Version Information :java weblogic.utils.Versions

There are many more Commands that we can use for Deploying applications to creating Connection Pools. I will update the Doc with more commands.

Please try these and let me know.


Read More

Thursday, November 15, 2012

Twiddle commands In JBoss


Here are a Few Use Full Twiddle commands For JBoss.

All the Commands will retrieve information use full for a administrator,but there is a URL which can give the same information.

Try this : http://IP Address:Port/status?full=true

Here are the Commands

Server Information
./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo JavaVMName

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo ActiveThreadCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo AvailableProcessors

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo OSArch

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo MaxMemory

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo HostAddress

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo JavaVersion

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo OSVersion

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo JavaVendor

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo TotalMemory

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo ActiveThreadGroupCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo OSName

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo
FreeMemory

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo HostName

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo JavaVMVersion

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=ServerInfo JavaVMVendor

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.system:type=ServerInfo listThreadDump : Thread Dump

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.system:type=ServerInfo listThreadCpuUtilization : List CPU Utilization

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke "jboss.system:type=ServerInfo" listMemoryPools true : Memory Pools

./twiddle.sh -s Ip address:1099 -u UserName -p Password serverinfo -d --count

./twiddle.sh -s Ip address:1099 -u UserName -p Password serverinfo -d --domain

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.system:type=Server" Started : Server Status

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.system:type=Server runGarbageCollector

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.system:type=Server runFinalization

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:service=ThreadPool QueueSize

Memory Details
./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Memory" HeapMemoryUsage

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Memory" NonHeapMemoryUsage

Operating System
./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" MaxFileDescriptorCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" OpenFileDescriptorCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" CommittedVirtualMemorySize

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" FreePhysicalMemorySize
./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" FreeSwapSpaceSize

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" ProcessCpuTime

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" TotalPhysicalMemorySize

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" TotalSwapSpaceSize

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" Name

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" AvailableProcessors

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" Arch

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" SystemLoadAverage

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=OperatingSystem" Version

Runtime Information
./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Runtime" SystemProperties

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Runtime" InputArguments

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Runtime" Uptime

./twiddle.sh -s Ip address:1099 -u UserName -p Password  get "java.lang:type=Runtime" StartTime

JNDI
./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss:service=JNDIView list true

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss:service=JNDIView listXML

./twiddle.sh -s Ip address:1099 -u UserName -p Password get  jboss:service=JNDIView StateString

Logging
./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.system:type=Log4jService,service=Logging


DataSource
./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS StateString

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS MaxConnectionsInUseCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS PoolJndiName

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS MaxSize

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS AvailableConnectionCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS State

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS MinSize

./twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS InUseConnectionCount

/twiddle.sh -s Ip address:1099 -u UserName -p Password get jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS ConnectionCount

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS testConnection

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS flush

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS start

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS listStatistics

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS destroy

./twiddle.sh -s Ip address:1099 -u UserName -p Password invoke jboss.jca:service=ManagedConnectionPool,name=com.app.samp.jonPoolTXDS stop



Web
./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" activeSessions

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" sessionMaxAliveTime

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" sessionCounter

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" sessionAverageAliveTime

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" sessionIdLength

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" maxActive

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" distributable

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" maxActiveSessions

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" expiredSessions

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" rejectedSessions

./twiddle.sh -s Ip address:1099 -u UserName -p Password get "jboss.web:type=Manager,path=/jmx-console,host=localhost" pathname

Cluster
./twiddle.sh -s IP address:1099 -u UserName-p Password get  "jboss:partition=ertAPartition,service=HAPartition" CurrentView

./twiddle.sh -s IP address:1099 -u UserName-p Password get "jboss:partition=,service=HAPartition" JGroupsVersion 

More To Come ,Happy Learning J
Read More