Twiddle
jest to aplikacja, która pozwala na zdalne komunikowanie się z serwerem aplikacji JBoss AS. Przy jej pomocy można bezpośrednio wywoływać odpowiednie polecenia, akcje. W praktyce można robić to samo co przy użyciu konsoli JMX. Polecenie to można znaleźć w katalogu $JBOSS_HOME/bin
.
List wszystkich wpisów z tej serii:
- Polecenie twiddle: jak połączyć się z serwerem aplikacji JBoss AS
- Polecenie twiddle: jak znaleźć informacje o ziarnach i metodach
- Polecenie twiddle: operacje na na zasobach serwera
Podstawowe opcje jakie można podać w aplikacji twiddle
Podstawowy zestaw przełączników jest dostępny przy uzyciu opcji -h
.
Polecenia pozwalające na uzyskanie pomocy
- -h – pomoc o przełącznikach
- –help-commands – lista dostępnych poleceń wraz z krótkimi opisami
- -H – wyświetlenie dodatkowej pomocy o wybranym poleceniu
Definiowanie parametrów połączenie
Teraz czas na zestaw przełączników pomocnych do nawiązania połączenia z serwerem JBoss:
- -s – adres IP oraz port na którym nasłuchuje serwer (domyślnie localhost:1099)
- -u – nazwa użytkownika potrzeba do uwierzytelnienia (powinna zostać zdefiniowana w pliku $JBOSS_HOME/server/PROFIL/conf/props/jmx-console-users.properties)
- -p – hasło użytkownika potrzebne do uwierzytelnienia (powinno zostać zdefiniowane w pliku $JBOSS_HOME/server/PROFIL/conf/props/jmx-console-users.properties)
Jeżeli serwer JBoss został zabezpieczony lub też nie został uruchomiony na innym interfejsie niż lokalny, to będzie trzeba używać tych przełączników przy każdym połączeniu z serwerem aplikacji. W poniższych przykładach nie będą one umieszczane, ale nie można o nich zapominać.
Lista poleceń
Listę dostępnych poleceń jakie można wydawać za pomocą narzędzia twiddle.sh
można uzyskać przy użyciu przełącznika --help-commands
:
twiddle.sh commands:
jsr77 Print out JSR77 related information
xmbean Print out mbean metadata as an xmbean descriptor
info Get the metadata for an MBean
get Get the values of one or more MBean attributes
invoke Invoke an operation on an MBean
create Create an MBean
setattrs Set the values of one or more MBean attributes
unregister Unregister one or more MBeans
queryMethod Query the server for a list of matching methods of MBeans
listDomains Query the server for a list of available domains
query Query the server for a list of matching MBeans
set Set the value of one MBean attribute
serverinfo Get information about the MBean server
Polecenia te pozwalają na wykonanie już konkretnych akcji po stronie serwera aplikacji.
Przykładowe użycie polecenia
Uzyskanie pomocy o poleceniu serverinfo
:
Help for command: 'serverinfo'
Get information about the MBean server
usage: serverinfo [options]
options:
-d, --domain Get the default domain
-c, --count Get the MBean count
-l, --list List the MBeans
-- Stop processing options
W podobny sposób można uzyskać krótkie informacje o wszystkich poleceniach dostępnych w twiddle.sh
Uzyskanie informacji o domyślnej domenie serwera (bez autentykacji, serwera aplikacji pracuje na domyślnym interfejsie sieciowym):
jboss
Dodanie autentykacji do połączenia:
jboss
Dodanie informacji o interfejsie sieciowym na którym znajduje się JBoss (lub zdalne łączenie z inną maszyną):
jboss
Trzeba pamiętać, że przełączniku określające sposób łączenia należy podawać przed nazwą polecenia jakie ma zostać wykonane.
W pozostałych przykładach pominę już autentykację użytkownika i serwer do którego chcemy się podłączyć. W razie potrzeby należy te informacje odpowiednio dodać do polecenia.
Pobranie informacji o MBeanach pasujących do zapytania:
jboss:service=invoker,type=local
jboss:service=invoker,type=jrmp
jboss:service=invoker,type=http,target=Naming
jboss:service=invoker,type=pooled
jboss:service=invoker,type=http
jboss:service=invoker,type=unified
jboss:service=invoker,type=http,target=Naming,readonly=true
Pobranie informacji o atrybutach danego ziarna:
Name=JRMPInvoker
ServerAddress=jboss1
RMIClientSocketFactory=null
StateString=Started
Backlog=200
State=3
RMIServerSocketFactory=null
RMIServerSocketFactoryBean=org.jboss.net.sockets.DefaultSocketFactory@ad093076[bindAddress=null]
RMIObjectPort=4444
EnableClassCaching=false
RMIClientSocketFactoryBean=null
SecurityDomain=null
Wyświetlenie drzewa JNDI:
<h1> Other components with java:comp namespace</h1>
<h2>java:comp namespace of the component jboss.j2ee:ear=eBikes.ear,jar=jboss-seam.jar,name=EjbSynchronizations,service=EJB3 :</h2>
<pre>
+- EJBContext (class: javax.ejb.EJBContext)
+- TransactionSynchronizationRegistry[link -> java:TransactionSynchronizationRegistry] (class: javax.naming.LinkRef)
+- UserTransaction (class: org.jboss.ejb3.tx.UserTransactionImpl)
+- env (class: org.jnp.interfaces.NamingContext)
+- ORB[link -> java:/JBossCorbaORB] (class: javax.naming.LinkRef)
</pre>
<h2>java:comp namespace of the component jboss.j2ee:jar=Common.jar,name=InventoryDAOImpl,service=EJB3 :</h2>
<pre>
+- EJBContext (class: javax.ejb.EJBContext)
....
Przykłady jak instalować aplikację przy użyciu twiddle.sh
można znaleźć w tym wpisie: Zarządzanie instalacją aplikacji w JBoss AS.