Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.
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.
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:
- The hooks + PlatformSensorRefresher thread are adding data to the ConcurrentHashMaps of the CoreService.
- The ListSizeStrategy is informed about the content changes everytime after data has been added.
- The PreparingThread is notified that he can start preparing data
- either if the size is reached (checked by the ListSizeStrategy)
- or every N seconds by the Trigger thread
- 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.
- The prepared data is passed to the AbstractBufferStrategy.
- The PreparingThread notifies the SendingThread that data is available for sending to the CMR.
- The SendingThread retrieves the data from the AbstractBufferStrategy and sends it to the CMR.