Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



Jira Legacy
serverJIRA - NovaTec GmbH
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId182cead0-3112-3f31-b55d-460913cb8020
keyAPE-40

The CoreService is initialized by the Spring Framework. The CoreService itself performs the following steps to set up the agent component:

  • calls start() on the ListSizeStrategy (AbstractSendingStrategy) which basically adds itself as a listListener at the CoreService
  • calls start() on the TimeStrategy (AbstractSendingStrategy) which in turn starts a thread (Trigger). This thread periodically notifies the PreparingThread (starts the data preparation).
  • starts the PreparingThread. This thread prepares the data before it can be send by the SendingThread. The thread will wait until notified either after a specific time by the Trigger thread or if a predefined size of gathered data is reached.
  • starts the SendingThread. this thread sends the data which has been prepared before by the PreparingThread. The thread will wait until notified by the PreparingThread.
  • starts the thread PlatformSensorRefresher. This thread periodically gathers system information like ClassLoading or CPU information.


GliffynameCoreService init phaseImage Added



Now everything is started and the agent is ready to gather data and send it to the CMR. This process works in the following way:

  1. The hooks +  PlatformSensorRefresher thread are adding data to the ConcurrentHashMaps of the CoreService.
  2. The ListSizeStrategy is informed about the content changes everytime after data has been added.
  3. The PreparingThread is notified that he can start preparing data 
    1. either if the size is reached (checked by the ListSizeStrategy)
    2. or every N seconds by the Trigger thread
  4. The PreparingThread prepares the data (some data cannot be send directly). This step includes switching of the ConcurrentHashMaps which allows parallel gathering of data while the collected data is prepared and send to the CMR.
  5. The prepared data is passed to the AbstractBufferStrategy.
  6. The PreparingThread notifies the SendingThread that data is available for sending to the CMR.
  7. The SendingThread retrieves the data from the AbstractBufferStrategy  and sends it to the CMR.


GliffynameDiagramImage Added