Server-agent communication
Most server-agent communication is done with JMS, but some agent activities such as uploading logs, test results, or artifact files to CodeStation use HTTP or HTTPS as needed. The JMS channel is the primary control channel for IBM® DevOps Build (Build). It is the channel that the server uses to send agent commands. By default, the server listens on port 7919 for JMS, port 8080 for HTTP, and port 8443 for HTTPS. These ports are configured during the server installation. The agent needs to know only the server's host and JMS port. The web interface URL is sent to the agent when it is needed.
The server's agent manager service uses JMS for all server communications and for sending commands, such as "run step," to the worker process. The worker process uses JMS for system communications, and HTTP REST services when it processes plug-in steps or retrieves information from the server.
Stateless server-agent communication provides significant benefits to performance, security, availability, and disaster recovery. Because each agent request is self-contained, a transaction consists of independent message, which can be synchronized to auxiliary storage as it occurs. The server or agent can be taken down and brought back up without repercussion (other than lost time). If communications fail mid-transaction, no messages are lost. When reconnected, the server and agent automatically determine which messages got through and what work was completed. After a connection outage, the system synchronizes the endpoints and recovers affected processes. The results of any work that an agent completes during the outage are communicated to the server.
Agent-server communication

In the accompanying figure, the arrow represents the direction in which communications was established, but the flow can be in both directions with JMS.