Process overview

Agent registers to CMR

  • When Agent configuration is created new use time-stamp of creation for the Agent Configuration last update time.

Class loaded on Agent

Synchronous sending mode

  • No need to mark class as being sending in the cache, cause cache only knows about classes that should not be sent

Asynchronous sending mode

Class sent to CMR

Based on the synchronous or asynchronous mode invoked, sending of instrumentation points at the end of the activity is in fact:

  1. sending to Agent (synchronous mode) or
  2. sending to queue Agent is reading from (asynchronous mode)

Missing from the activity diagram:

  • possible saving of the changed byte code to the disk
  • possible sending of the additional byte-code for classes that need to be updated

 

Questions / Remarks: (Clear this after discussion and add to decisions or what ever chapter (wink))

  • What if an interface is added that would affect the instrumentation of already loaded classes? (your second point above?)
  • When nothing is changed we can return null and not send the bytecode again
  • I think the saving of bytecode to disc must be added to this chart right away
  • Below path (so new class), how would we added methods Ids before we know if we have instrumentations points?

Agent receives InstrumentationResult from CMR (asynchronous mode)

Environment or Profile changed on the UI

Agent in sync mode

  • Diagrams might be a slight different for the situation where Profile or Environment is deleted

Agent in async mode