About the Author | p. xiii |
About the Technical Reviewers | p. xv |
Introduction | p. xvii |
Introducing JMX | p. 1 |
System and Resource Management Challenges | p. 1 |
JMX Overview | p. 4 |
How JMX Works | p. 5 |
Implementing JMX | p. 5 |
JMX Architecture | p. 6 |
Instrumentation Level | p. 8 |
Agent Level | p. 11 |
Agents | p. 11 |
MBean Servers | p. 11 |
Distributed Services Level | p. 12 |
Modular Server Architecture | p. 15 |
Writing Your First MBean | p. 16 |
Writing Your First Agent | p. 17 |
Summary | p. 20 |
The Three-Level Model: Instrumentation and MBeans | p. 21 |
An MBean Primer | p. 22 |
Naming MBeans Using Object Names | p. 23 |
Standard MBeans | p. 24 |
Dynamic MBeans | p. 25 |
Implementing the DynamicMBean Interface | p. 26 |
Eliminating the DateTimeServiceMBean Interface | p. 26 |
Implementing the DynamicMBean Methods | p. 28 |
Model MBeans | p. 35 |
Open MBeans | p. 35 |
MBean Notifications | p. 35 |
MBean Information and Metadata Classes | p. 37 |
Adding Fields to Your MBean | p. 38 |
Modifying the setDate and setTime Methods | p. 38 |
Modifying the stop and start Methods | p. 39 |
Enabling the MBean to Add and Remove Notification Listeners | p. 40 |
Modifying the mBeanInfo Object | p. 41 |
Creating the Notification Metadata Objects | p. 41 |
Summary | p. 42 |
The Three-Level Model: Agents | p. 43 |
The Agent Level of JMX | p. 43 |
MBean Servers | p. 44 |
Opening Up the ServiceAgent | p. 45 |
Declaring an Effective Constructor | p. 46 |
Adding the addResource Method | p. 46 |
Adding the getResources Method | p. 48 |
Categorizing Resource Groups Using Domains | p. 49 |
Domain Names | p. 49 |
Uniquely Naming MBeans Using Key Properties | p. 49 |
Extending an Agent with Agent Services | p. 50 |
Dynamic MBean Loading | p. 50 |
Using Monitors to Track Changes | p. 52 |
Scheduling Notifications Using Timers | p. 58 |
The Relation Service | p. 65 |
Summary | p. 76 |
MBean Servers | p. 79 |
Creating an MBean Server | p. 79 |
Finding an MBean Server | p. 79 |
MBean Server Delegate | p. 81 |
Modifying the Default MBean Server Implementation | p. 82 |
Naming and Registering MBeans | p. 82 |
Controlling MBean Registration | p. 84 |
MBean Registration Notifications | p. 85 |
MBean Server Queries | p. 86 |
Query Expressions | p. 87 |
Applying Query Expressions | p. 89 |
Methods for Defining Query Expressions | p. 93 |
MBean Proxies | p. 97 |
MBean Server Remote Communications | p. 98 |
Summary | p. 99 |
Distributed Management System Design | p. 101 |
Management System Evolution | p. 101 |
History of Management Standards and Initiatives | p. 102 |
History of Management Designs | p. 107 |
Management Framework Patterns | p. 111 |
Specialized/Detached | p. 111 |
Centralized | p. 112 |
Hierarchical | p. 112 |
Distributed/Cooperative | p. 113 |
Manager/Agent Frameworks | p. 114 |
Managers | p. 114 |
Agents | p. 115 |
Manager and Agent Models and Roles | p. 116 |
Master Agents and Subagents | p. 118 |
Manager Domains | p. 119 |
Manager of Managers (MoMs) | p. 120 |
Managers and JMX | p. 121 |
Summary | p. 122 |
The Three-Level Model and Distributed Services | p. 127 |
Clients and Servers Unite with Connectors | p. 128 |
Creating Connector Servers | p. 129 |
Publishing a Connector Server with Existing Infrastructures | p. 130 |
Creating Connector Clients | p. 131 |
Using a JMXConnectorFactory to Create a Connector Client | p. 131 |
Using a Connection Stub to Create a Connector Client | p. 131 |
Finding a Connector Server | p. 132 |
Finding Servers Using Connector Server Addresses | p. 132 |
Terminating Connections Between Clients and Servers | p. 133 |
The RMI Connector | p. 133 |
Mechanics of the RMI Connector | p. 133 |
JMX and Distributed Notification Events | p. 134 |
RMIConnector Notification Events | p. 135 |
Pluggable Object Wrapping | p. 136 |
The Generic Connector | p. 136 |
The Generic Connector Protocol | p. 137 |
Bindings to Lookup Services | p. 140 |
Lookup Attributes | p. 141 |
Summary of Environment Parameters | p. 142 |
Service Templates | p. 144 |
Summary | p. 148 |
JMX Connectors | p. 151 |
Establishing a JMX Remote Connection | p. 151 |
MBean Server Operations Through a Connection | p. 152 |
Terminating a Connection | p. 153 |
Connecting to Connector Servers Using Connector Server Addresses | p. 153 |
Creating a Connector Server | p. 154 |
The RMI Connector | p. 155 |
Using RMI Transports | p. 156 |
Mechanics of the RMI Connector | p. 156 |
Connecting to an RMI Connector Server | p. 159 |
The Generic Connector | p. 160 |
The Pluggable Transport Protocol | p. 160 |
Customizing Serialization Using Pluggable Object Wrapping | p. 161 |
Defining a New Transport | p. 163 |
Summary of Environment Parameters | p. 164 |
Describing JMX Services Using Service Templates | p. 167 |
Summary | p. 167 |
Remote Lookup | p. 169 |
Finding a Server | p. 169 |
Publishing a Server | p. 170 |
How to Connect to an RMI Connector Server | p. 170 |
Bindings to Lookup Services | p. 171 |
General Principles | p. 171 |
Using the Service Location Protocol | p. 175 |
Using the Jini Network Technology | p. 180 |
Using the Java Naming and Directory Interface (LDAP Back End) | p. 185 |
Summary | p. 193 |
JMX Clients | p. 197 |
Connector Clients | p. 197 |
Finding a Connector Server | p. 197 |
Looking Up a JMX Service URL with SLP | p. 198 |
Looking Up a JMX Connector Stub from the Jini Lookup Service | p. 199 |
Looking Up a JMX Service URL from an LDAP Server | p. 201 |
Establishing a Connection | p. 202 |
JMXConnectorFactory | p. 202 |
Connection Stubs | p. 203 |
Connecting to an RMI Connector Server | p. 203 |
MBean Server Operations Through a Connection | p. 204 |
Distributed Notifications | p. 204 |
Adding Remote Listeners | p. 204 |
Filters and Handbacks | p. 205 |
Removing Listeners | p. 206 |
Terminating a Connection | p. 207 |
Abnormal Termination | p. 207 |
Creating a Connector Client | p. 208 |
Mechanics of the RMI Connector | p. 208 |
The Generic Connector Protocol | p. 208 |
Summary | p. 211 |
Security | p. 213 |
Connector Server Security | p. 213 |
Subject Delegation | p. 214 |
Using the JMXAuthenticator Interface | p. 214 |
Basic Security with the RMI Connector | p. 215 |
How Security Affects the RMI Connector Protocol | p. 215 |
Implementing Tighter Security | p. 216 |
Security and the Generic Connector | p. 216 |
Handshake and Profile Message Exchanges | p. 217 |
Using the SASL Message Class | p. 226 |
Using Fine-Grained Security with Connector Servers | p. 229 |
Summary | p. 234 |
JMX in the Industry | p. 237 |
AdventNet | p. 237 |
Agent Toolkit Java Edition | p. 237 |
ManageEngine JMX Studio | p. 239 |
BEA Systems | p. 239 |
WebLogic Server | p. 239 |
IBM | p. 241 |
WebSphere Application Server | p. 241 |
Emerging Technologies Toolkit | p. 242 |
JMX Bridge | p. 242 |
IONA Technologies | p. 242 |
Orbix E2A Application Server Platform | p. 243 |
IONA Administrator | p. 243 |
XMLBus | p. 244 |
JBoss | p. 245 |
JMX4Ant | p. 246 |
Tomcat | p. 247 |
The JMX Proxy Servlet | p. 247 |
XMOJO | p. 248 |
MX4J | p. 248 |
MC4J Management Console | p. 249 |
MC4J Layout | p. 250 |
MC4J and JBoss | p. 251 |
MC4J and WebLogic | p. 251 |
MC4J and Tomcat | p. 251 |
Summary | p. 251 |
A Summary of JMX | p. 253 |
Instrumentation, Agents, and Distributed Services | p. 253 |
MBean Servers | p. 254 |
Designs of Distribution | p. 256 |
Distributed Services and Remote Access | p. 259 |
Connectors | p. 259 |
Connector Server Addresses | p. 260 |
Protocol Message Exchanges | p. 261 |
Remote Notification Events | p. 262 |
Remote Agent and Server Lookup | p. 262 |
Remote Clients | p. 263 |
Security | p. 264 |
Industry Appeal | p. 265 |
Conclusion | p. 266 |
Index | p. 267 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.