this appears to imply that JMX management of the local node must be done on the same JMX host/port used for the driver. Is this correct?
No, the driver and node use separate JMX remote connector servers, listening on separate ports. The fact that there is a single configuration property for both is a shortcoming for which I registered a bug:
JPPF-276 The management port of a server-local node cannot be configured separatelyWe should have removed the "jppf.management.host" property, as it is not used anymore. The JPPF client uses the same host as <driver_name>.jppf.server.host or whatever is received from the server discovery. It's clear that we need to do some cleanup here

Another precision: the local executor in the client is not manageable, it doesn't have any associated JMX connector server or MBeans. In this respect, it is not a real node and should be seen as an Executor Service that can be used via the JPPF APIs. The original intent was to enable local testing of the jobs using the same API as for a remote grid. It was since extended (enrolled in the client-side load balancing and job SLA), so it can also be used to offload some of the work to a local execution service.
In the latter case, how would I identify a local node uniquely?
Each node (and client and driver, for that matter) has its own UUID. You can use that to filter the nodes you want the NodeForwardingMBean request to apply to. You just need to define the appropriate
node selector, for instance:
String node uuid = ...;
NodeSelector selector = new NodeSelector.UuidSelector(nodeUuid); // vararg constructor
// get the number of executed tasks for each selected node
Map<String, Object> results = forwarder.forwardGetAttribute(selector, JPPFNodeTaskMonitorMBean.MBEAN_NAME, "TotalTasksExecuted");
The nodes uuids can be obtained via the
JPPFManagementInfo returned by a number of methods in
JMXDriverConnectionWrapper. They are also accessible via the
JPPFSystemInformation objects, using the property "jppf.uuid": JPPFSystemInformation.getUuid().getString("jppf.uuid")
If you want to identify all driver-local nodes, the best is to use an execution policy selector in conjunction with JPPFSystemInfo property
"jppf.channel.local", for example:
ExecutionPolicy localNodePolicy = new Equal("jppf.channel.local", true);
NodeSelector selector = new NodeSelector.ExecutionPolicySelector(localNodePolicy);
// forward some request ...
-Laurent