Agents › DevTest Java Agent › Java Agent Architecture › Java Agent Data Flow
Java Agent Data Flow
The following graphic shows the Java agent components and how they interact.
The following JMS destinations specify the flow of data:
- The lisa.agent.info topic is carried over connections 1 and 2, produced by the agents and consumed by the broker and the consoles. This topic lets the broker and the consoles see which agents are currently online and what their basic properties are.
- The lisa.agent.port topic is carried over connection 1, produced by the agents and consumed by the broker. This topic lets the broker see the connections that are currently active between multiple agents.
- The lisa.agent.api topic is carried over connections 1 and 2, produced by the consoles and consumed (and replied to) by the agents. This topic allows the consoles to invoke agent APIs over JMS.
- The lisa.broker.api topic is carried over connection 2, produced by the consoles and consumed (and replied to) by the broker. This topic allows the consoles to invoke broker APIs over JMS.
- The lisa.stats topic is carried over connections 1 and 2, produced by the agents and consumed by the broker and the consoles. This topic gives the consoles an idea of what type of load the agents are currently under. This topic also lets the broker persist those to the database.
- The lisa.vse topic is carried over connections 1 and 2, produced by the agents and consumed by the consoles. When VSE is enabled, the consoles receive VSE frames (and reply to them in playback mode).
- The lisa.tx.partial queue is carried over connection 1, produced by the agents and consumed by the broker. When an agent captures a partial transaction (all the frames that happen in its JVM), the agent sends it to the broker for assembly.
- The lisa.tx.full topic is carried over connection 2, produced by the broker and consumed by the consoles. When the broker finishes assembling the partial transactions that are received over lisa.tx.partial, the broker sends the full transactions to the consoles.
- The lisa.tx.incomplete topic is carried over connection 2, produced by the broker and consumed by the consoles. This topic is similar to lisa.tx.full, but is used for transactions that are not fully completed within the allowed timeout.
- JDBC connection 3 is used when the broker saves StatsFrame objects or fully assembled TransactionFrame objects.
- The consoles use JDBC connection 4 to perform their queries for transactions or statistics that are no longer held in memory.
The startup order of agents, broker, and consoles does not matter because all communications are asynchronous and can reestablish themselves automatically. This concept is especially important for agents to avoid performance issues because the broker goes down, for example.
When an agent comes online, the agent starts pulsing its information over the lisa.agent.info topic at regular, short intervals.
If a broker is not available, the agent does not try to notify any listeners of anything else until a connection is established or reestablished.
If the broker is available, all interested parties are quickly notified of the online agents. The broker and consoles keep a running list of those agents. When they stop pulsing their information, they are expired and removed from the list after a while.
Copyright © 2014 CA Technologies.
All rights reserved.
|
|