Modifying a Role
Suppose that we
want to
add another Consumer MBean thread into the system.
The Controller class provides a method,
createWorker( ), that allows us to do so through
a management application. We specify the worker’s
role name and its work factor, and createWorker(
) creates the appropriate worker MBean and starts its
thread of execution. However, in order for the relation service to
perform a consistency check on the relationship between the
Consumer and Supplier MBeans,
we must modify the Consumer role. Moreover, we
must do so through the methods provided to us by the relation
service.
Tip
Simply creating an MBean of a class type that has been specified to
be part of a role in a relation has no effect on the relation
service. In other words, if we instantiate a new
Consumer worker but fail to modify the appropriate
Role object, the relation service will be unaware
of the new MBean and will not perform any consistency checks on the
relation!
In the agent code that creates new worker MBeans and registers them
with the MBean server, we must also modify the appropriate
Role object within the
Consumer/Supplier relation that
we created. If creating the new worker MBean makes the role no longer
be consistent, the relation service will throw an exception. We must
be prepared to catch the exception and take any necessary steps to
remove the newly created MBean from the system.
Let’s look at an example.
Suppose we create a new Consumer MBean, using a browser and the HTML Adaptor ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access