Index

A
 
abstracting a data layer 83
adapters 13
HTML adapter 24?26, 29?33, 35?42, 46, 48, 52?56, 60, 66, 68, 81?82, 87, 136, 188?189, 196, 219, 226?227, 238, 240, 249, 261, 294?298, 327, 354
TCP 13, 186, 215?216, 218?220, 225?226, 228
addNotificationListener() 46?47, 120, 124?125, 133?134, 172, 194, 211
addRelation() 275
addURL() 236, 240, 249, 251
agent layer 14, 17?18, 22, 24?25, 29
agent services
M-let service 163, 171, 230?241, 243?244, 247, 249, 251, 254
relation service 179, 251, 254?257, 259, 261, 266?277, 280, 284
agents
defined 12
definition 12
domain 33, 175
in architecture 10?20
      see HelloAgent
JMXBook agent
      see JMXBookAgent
Ant 385?388
application architecture 20
attribute change notifications 127
filtering 128
AttributeChangeNotification class 127?131, 138
AttributeChangeNotificationFilter class 129
AttributeList 97, 99, 107?108, 113, 173?174, 208, 367?368
AttributeValueExp 179?180, 182
 
C
 
classpath 26
componentization 10, 82, 94
configurable applications 77
configuring a DataSource 79
connectors 13
JINI 163, 186, 195?197, 202, 204, 209, 211, 228
RMI 13, 25, 53?58, 60, 62, 81, 163, 167, 186, 189?196, 212, 215, 228, 293
contrib folder 25, 189, 212, 330
CounterMonitor 285, 291?293, 296, 299
createMBean() 34, 54, 61
createMBeans() method from RelationMain.java source 265
createRelation() method from RelationMain.java source 275

createRelationServie() method from JMXBookAgent.java source 274
HelloAgent.java source 30
HelloWorldSetup.java source 61
JINIConnector.java source 202
JINIConnectorConnector.java source 206?209
JINIConnectorImpl.java source 202
JINIServer.java source 198
JMSSetup.java source 323?324
JMXBookAgent.java source 54
main() method from RelationMain.java source 277
MletWrapperSetup.java source 250
ModeledClass.java source 158
MonitoringSetup.java source 295
PollingSetup.java source 132
PropertyManager MBean example 82
startMletService() method from JMXBookAgent.java source 237
TCPAdapter.java source 222
UserInfoMgr.java source 348
working with MBean Server 168?169
working with Model MBean 138, 161
working with the Jini service 201?204, 210
working with the M-let service 236, 238?239
working with the relation service 264, 275
working with the TCP adapter example 222, 225
createRelationService() 273
CtlRelation.java 271
 
D
 
DebugSubscriber.java 320
deployment descriptor 351
derived gauge 290, 292
Descriptor interface 146
DescriptorAccess interface 147
descriptors 146
currencyTimeLimit 149, 151?152, 157
default 32?34, 37, 42, 58, 90, 149?150, 157, 170, 191?193, 195, 218, 387
descriptorType 147, 149, 151, 153, 156?158
displayName 147?148, 150, 152?153, 156?158
export 148
getMethod 108, 149?150, 157, 369
interface 146?147
iterable 149?150
lastReturnedTimeStamp 152
lastReturnedValue 152
lastUpdatedTimeStamp 149, 151
log 15, 66, 69, 84?85, 88, 134, 142, 148, 153?154, 157?158, 240, 284
logfile 148, 154
messageid 153?154
messageText 153
persistLocation 148, 157?158
persistName 148, 157?158
persistPeriod 148, 156?158
persistPolicy 148?149, 156?158
predefined fields 147
presentationString 148, 152?154
protocolMap 149
role 4, 64, 152?153, 157, 177, 196, 255?257, 261, 266?267, 269?270, 274?276, 279
setMethod 149?150, 157
targetObject 152, 157
targetType 152, 157
value 147?149
visibility 16, 148?149, 152?154, 309, 337, 339
deserialize() 175
distributed layer 16?17, 22
domain name 31, 33?34, 37, 55, 178, 195, 365
Dynamic MBean 17, 66, 94, 230
attributes 98?99
inheritance patterns 104
invoking operations 100
similarities to Model MBean 140, 143?145, 154, 162
using with Jini service 105?107, 110
using with notifications 121?122
utility class 110?111, 116
working with 95?98
working with EJBs 366, 370?371
working with MBeanInfo class 100?102
working with M-let service 230, 366, 370, 379
DynamicMBean interface 66, 68, 96?101, 104, 107, 111?113, 116, 122, 140, 143?144, 366, 370, 378, 381
DynamicMBeanSupport class 111?112, 116, 154
DynamicMBeanSupport.java 111
 
E
 
EJB home interface 342, 358?359
EJB methods
ejbLoad() 364
ejbRemove() 365
findByPrimaryKey() 369
lookupHome() 369
EJB remote interface 342, 358?359
Enterprise JavaBeans 142, 336, 338, 340?343, 345?352, 356?359, 361?362, 364?367, 369?371
enterprise messaging 312
entity beans 336?337
exceptions
InstanceAlreadyExistsException 35, 169, 171, 206?207
InstanceNotFoundException 134, 169, 172?175, 207?209
MBeanException 59, 91?92, 97, 107?108, 112?113, 171, 173?174, 206?208, 270?272, 323, 367?369
MBeanRegistrationException 93, 169, 171, 206?207
NotCompliantMBeanException 92, 169, 171, 206?207
ReflectionException 91, 97, 107?108, 112?113, 170, 173?174, 206?209, 367?369

RuntimeOperationsException 94, 169?171, 173?174
external relation 259

 
F
 
FaxCard.java 263
 
G
 
GaugeMonitor 285, 290?293, 296, 298?299
getAttribute() 98?99, 110?111, 116, 173, 222, 287, 370
getAttributes() 98?99, 173, 370
getDefaultDomain() 175, 199, 208, 363?364
getDescriptor() 147
getMBeanCount() 175, 190, 200?203, 206, 209?210
getMBeanInfo() 97?101, 104, 108, 110?111, 114, 122, 174, 366, 370?371, 378, 381
getMBeansFromURL() 236, 239, 249, 251
getNotificationInfo() 46, 121?122, 127, 131, 248
getNotifTypes() 122
getter methods 27
 
H
 
handback object 46?47, 120?121, 124, 171?172, 208
handleNotification() 46?48, 124, 250
Hello World example 26
HelloWorld class 26?30, 32, 34?35, 37?48, 60?61, 66?67, 69, 87, 119, 133, 168, 178, 209?210, 213, 226, 232?233, 238?240, 251
printGreeting() 27?28, 40, 44, 61, 227
HelloAgent 28?36, 38, 40?42, 46?48, 52, 54, 89?90, 123, 133, 178
HelloWorldMBean interface 27?28, 40?42, 44, 67
home theater system 313, 319
HTML adapter 24?26, 48, 66, 68, 87, 196, 219
admin view 40?41
running the JMXBookAgent class 52?56, 60, 238, 240, 354
testing the PropertyManagerMBean 81?82, 87
using JBoss server 327
using MLetWrapper MBean instead of HTML Adapter 249
using with JMX agent 29?33, 36, 137, 188?189
using with monitor service example 294?298
using with relation service example 261, 277?278
using with TCP adapter 226?228
working with the HelloAgent class 46
working with the HTML Adapter 36?40, 43
HTMLAdapter 277?278
 
I
 
ideal management environment 6
instantiate() 176
instrumentation 7, 9?10, 13?14, 18, 21?22, 24?25, 63, 118, 140?141, 161, 257
Internet bike shop 4?5
Internet Engineering Task Force (IETF) 213
isInstanceOf() 175
isRegistered() 169
 
J
 
J2EE 21, 308?309, 312, 315, 326, 328, 330, 333, 336, 340, 350
Java Dynamic Management Kit (JDMK) 214
Java Message Service 311?315, 319?320, 323?324, 326?333, 335?336, 377, 385
Java Naming and Directory Interface (JNDI) 350
JBoss server 326?332
JBossMQ 327?328
JINI 96, 105?107, 109?110, 163, 186, 188, 195?205, 209?213, 215, 228
Jini 12?13, 17
JINI Connector
testing 211
Jini DiscoveryListener 210
Jini LookupDiscoveryManager 210
Jini ServiceIDListener 201
Jini toolkit 200
JINIConnector class 196, 200, 202?206, 209?210, 212?213
JINIConnectorClient.java 205
JINIConnectorException.java 204
JINIConnectorImpl.java 202
JINIServer class 196, 198, 201?203, 211?212
JINIServer.java 198
JINIServerMBean class 196?198, 201
JINIServiceManager.java 107
JMS Durable subscription 312
JMS subscriber 313
JMSController.java 316
JMSControllerMBean.java 315
JMSPublisher.java 324
JMSSetup.java 323
JMX
advantages 10, 82, 94
JMX Architechture
agent layer 14, 17, 20, 22, 24?25, 29, 162?163
distributed layer 16?17, 22
instrumentation layer 14, 18, 22, 24?25, 63
JMX benefits 9?10v JMX Exception hierarchy 92
JMX Reference Implementation 24?25, 53, 141?142, 144?145, 148, 152, 163, 170, 189?191, 193
JMXBookAgent 189?192, 197, 219
agent services 293, 296
building TCP Adapter 225?227
connecting using Jini 209, 211?212
creating 52?57
creating Model MBeans 161
running 60?62
testing the Polling MBean 131?132

testing the PropertyManager MBean 81?82
user login monitor example 346, 348?350, 354
using with M-let service 237?238, 250
using with relation service 261, 265, 268?269, 271?278
working with Java Message Service 324, 328?330
 
L
 
load() 6, 8, 11, 41?42, 78?79, 91, 141, 145, 175, 207, 209, 231?232, 235?239, 251, 359
Logger.java 85, 88
 
M
 
manageable resource 11?14, 24?26, 35, 67?69, 94, 96, 110, 140, 142, 161
ManagedJINIService class 105?107, 110
management applet 230
management application 13
MBean
common rules 66, 67
definition 12, 271, 272, 294
Dynamic 95?107, 110?112, 116
errors 90
Model 139?154, 158?162
Open 385
querying 165?180, 182?186
relationships 254?267, 270?280
Standard 68?77, 79, 81?84, 86?88, 90?94
with EJB 338?341, 345?351, 354?356, 358?359, 363?366, 369?371
with JMS 312?320, 322?324, 326?327, 329?332
MBean Server 12?14
agent layer 17?18
embedding agent in application 76
HTML adapter Admin View 40
Logger MBean example 90
MBean accessing another MBean 87
MBean Exceptions 92?93
MBeanServer interface 167?168
notification methods 172
query methods 177?178, 183, 186
register/unregister MBeans 41, 43, 48, 49
registration and creation methods 168?171
running in JBoss 327
server and MBean information methods 174?175, 210
using in JMXBookAgent 52?53, 55?56, 61
using Jini connector 195?197, 201?204, 210, 212
using JMX as application layer 20?21
using RMI connector 189?190, 192?195
using TCP Adapter 225?226
working with Dynamic MBeans 98, 101
working with EJBs 356, 365
working with JMX monitoring 285?287
working with MBean server 165?166
working with MLET MBean 238?239, 249
working with Model MBeans 140, 162
working with notifications 133?134, 136?137
working with SNMP 215
working with the HTML adapter 37?39, 188
working with the relation service 273, 276
writing first MBean 24, 26
writing Hello World 29?32, 34?35
MBeanAttributeInfo class 101?103, 108, 114?115, 146, 149, 323, 366?367
MBeanConstructorInfo class 101?102, 108, 114?115, 146, 323, 367
MBeanFeatureInfo class 101?102, 122
MBeanInfo class 101
MBeanNotificationInfo 46, 101, 104, 108, 121?123, 127, 131, 138, 146, 248, 323, 381?382
MBeanOperationInfo class 101, 103?104, 108?109, 114?115, 146, 159, 323, 367, 382
MBeanParameterInfo class 101?104, 109, 114, 155, 323, 367
MBeanRegistration interface 87?90, 93, 169, 171, 198, 201, 217, 235, 243?244, 271, 273, 285?286
MBeanServer
      interface 163, 166?168, 170?171, 174?177, 186, 190, 197, 204, 210
      creation and registration methods 170
      MBean manipulation methods 173
      notification methods 172
      registration methods 168
queries 176
registration 35, 133, 168?170, 365
MBeanServer interface
MBean server information methods 175
other methods 175
MBeanServerFactory 30?31, 47, 55, 323
message 123
message driven beans 336?337
metadata 101?104
MIB 5, 214
M-let file 231
ARCHIVE attribute 233
ARGLIST attribute 234
CODE attribute 233
CODEBASE attribute 233
example file 238
NAME attribute 233
OBJECT attribute 233
rules 234
VERSION attribute 234
M-let service 17, 163, 171, 230?241, 243?244, 247, 249, 251, 254, 284
expanding the codebase 236, 239
reusing loaded classes 239
wrapping for notifications 240
mlet tag attribute
ARCHIVE attribute 233
ARGLIST tag 234
CODE attribute 233
CODEBASE attribute 233
NAME attribute 233
VERSION attribute 234
mlet tag rules 234
MLetMBean 235?236, 243?244
MLetNotification.java 242
MLetWrapper.java 243
MLetWrapperSetup.java 250
Model MBean 12, 26, 64, 138, 140?154, 158, 161?162, 371
attribute cache 142
features 141
generic notifications 143, 145
notification log 142
operation delegating 142
persistence 141, 145
ModeledClass.java 158
ModelMBean interface 140, 143?145, 160
ModelMBeanAttributeInfo class 146, 149, 151, 155?156
ModelMBeanConstructorInfo class 146, 153, 156
ModelMBeanInfo interface 141?146, 154, 156, 158, 160?161, 371
ModelMBeanInfoBuilder.java 154
ModelMBeanInfoSupport class 140?141, 144?145, 147, 149, 156
ModelMBeanNotificationBroadcaster class 145
ModelMBeanNotificationInfo class 146, 153, 155?156
ModelMBeanOperationInfo class 146, 151, 155?156
Monitor class 285
monitor examples 293
monitoring MBean attributes 284
MonitoringSetup.java 295
MonitorMBean interface 286
MonitorNotification class 287?289, 291
monitors
Counter monitor 285, 291?293, 296, 299
Gauge monitor 285, 290?293, 296, 298?299
MBean attributes 284
String monitor 285, 288?289, 293, 296?297
monitors and timers 283, 311, 335, 377, 385
MOVIELIGHTSOff 314?315, 317, 319?320, 324, 326
MOVIELIGHTSOn 314?315, 317, 319?320, 324?326
 
N
 
Network Management System (NMS) 214
Notification class 122
notification model 119
notification type 123
NotificationBroadcaster 43, 45, 67, 69, 71, 119?122, 125, 133?134, 138, 172, 302
v NotificationBroadcasterPersister.java 135
NotificationBroadcasterSupport 44?45, 48, 119, 121, 125?127, 129, 134?135, 138, 243?244, 285
NotificationFilter 46, 120, 124, 129, 171?172, 208
NotificationListener 43, 45?48, 119, 123?124, 132, 138, 171?172, 208, 250, 295, 306
notifications 9?11, 13, 19?20, 37, 43?44, 118
attribute change notifications 128?129, 138
components of notification model 119
describing notifications 121?122
filtering notifications 124?125
generic notifications 142
HelloWorld MBean example 43?45
MBeanNotificationInfo class 104, 111, 116, 120?121
MBeanServer interface 171?172
members of Notification class 122
notification logging 142
notification polling example 127, 129?133
NotificationBroadcaster interface 46, 67, 138
NotificationListener interface 123?124, 138
notifications from MBean Server 136?137
persisting notifications 134?136
registering as listener 133?134
standard management interface 67?71, 101
using with EJBs 339
using with Jini connector 195, 211
using with M-let service 240?243, 249?251
using with ModelMBeans 142?149, 153?156, 158
using with monitors 284?285, 289?293, 295, 297?299
using with relation service 255
using with RMI connector 187, 193?194
using with SNMP 215
using with the timer service 302?308
working with DynamicMBean interface 96, 101, 104, 111, 116
working with HelloAgent class 46?48
writing JMXBookAgent class 55
 
O
 
OBJECT attribute 233
object serialization 141
ObjectInstance 169, 175?177, 200, 202?203, 206?208, 243, 249
ObjectName 26, 32?37, 90
identifying MBeans 41
registering/unregistering MBeans 42, 134
using with notifications 45?47, 123, 137
working with adapters/connectors 56?57
working with an MBean server 168?175
working with EJBs 365
working with Java Message Service 324
working with Jini service 212
working with MBeanServer queries 177?176, 184?185
working with M-let service 238?240, 249
working with Model MBeans 161
working with monitors 286?287, 296, 302
working with relation service 254, 268, 270, 272?273
working with TCP adapter 219
ObservableObject.java 294
 
P
 
phone system example 257?258
PhoneCard.java 262
Point-to-Point 312
Point-to-Point Messaging 312
Polling.java 126, 129
PollingSetup.java 132
PrinterMBean interface 70
PropertyManager.java 78
PropertyManagerSetup.java 81
protocol adapters and connectors 189
protocols 9, 12?17, 166, 214
Publish-Subscribe 312?313, 328
Publish-Subscribe Messaging 312
 
Q
 
queries 176
creating expressions 179
defining the scope 177
examples 182
methods 180?181
QueryExp 177, 179?185, 208
Querying 176
queryMBeans() 177
queryNames() 177
 
R
 
registerMBean() 35, 133, 168?170, 365
Relation service 179, 251, 254?257, 259, 261, 266?277, 280, 284
external relations 255?256, 259, 270?272
internal relations 256
relation type 254?257, 266, 268?270, 272?273, 275?276
relations 253?257, 261, 266?267, 269?274, 277
role information 255?257, 266?268, 270, 273?274, 277
roles 255?257, 261, 267, 269?270, 273?276
RelationMain class 264, 266, 268?269, 274, 276?277
RelationMain.java 264, 266
RelationService MBean 274
RelationSupport class 272
RelationType class 256, 261, 266?270
removeNotificationListener() 172
RequiredModelMBean class 140, 160?161
resource management 4
RMI 10, 12?13, 16?17, 25, 52?58, 60?62, 81?82, 105, 163, 167, 186, 188?196, 203, 212?213, 215, 228, 293, 323, 348
RMI Connector
heartbeat 193?194
notifications 193
RMI_CONNECTOR_PORT 193
RMIClientFactory 58, 60?62, 82, 132, 159?160, 192, 249?250, 266, 276, 296, 306, 323, 344, 346, 348
RMIClientFactory class 58, 60?62, 82, 132, 159?160, 192, 249?250, 266, 276, 296, 306, 323, 344, 346, 348
RmiConnectorServer class 57, 61, 190?192
RoutingTable.java 263
runDeviceDebug.cmd 331
runPublisher.cmd 332
runSubscriber.cmd 330
 
S
 
sendNotification() 45, 121, 127, 131, 136, 145
SequenceNumber 123
session beans 336?337
stateful session 337
stateless session 337
setAttribute() 98?99, 110?111, 116, 173?174, 222, 370
setAttributes() 98?99, 370
setDescriptor() 147
setManagedResource() 144, 160?161
setModelMBeanInfo() 144, 160?161
setObservedAttribute() 286
setObservedObject() 286
setter methods 27
SNMP 5, 7, 9?10, 12?13, 16?17, 150, 166, 189, 213?215
SNMP Protocol Adapte 214
SNMP trap 214
source 123
Standard MBean 26?28, 38, 76, 79, 82, 94, 96, 125, 243, 261, 366
breaking applications into components 82, 86
comparing to dynamic MBeans 98, 101, 104
inheritance patterns 71?72
part of standard management interface 66?71
PropertyManager example 77
using with TCP connector 216
working with monitors 284, 286, 294, 302
writing Jini connector 197
startHTMLAdapter() 55?57
startJINIConnector() 211?212
startMletService() 237
startRMIConnector() 55?57, 190, 212
startTCPAdapter() 225
startTimerService() 305
store() 4?5, 24, 131, 134, 142, 145, 148, 154, 160, 203, 211, 244, 262, 339, 343
String monitor 289, 297
StringMonitor class 285, 288?289, 293, 296?297
StringValueExp 179, 182
 
T
 
TCP 13, 186, 215?216, 218?220, 225?226, 228
TCP protocol adapter 215
TCPAdapter.java 219
TCPServer.java 217
TCPTester.java 226
TestRMI class 61
TestRMI.java 61
Timer class 302?304
Timer MBean 302?304, 306
timer number of occurrences 303?304
timer period 303?304
timer service 302
TimerNotification class 302
TimerSetup.java 306
timestamp 123
 
U
 
unregisterMBean() 169, 365
 
V
 
ValueExp 179?182
 
W
 
web browser 35, 280
wildcards 178