Troubleshooting Remote Agents
Platform Notice: Server and Data Center Only. This article only applies to Atlassian products on the server and data center platforms.
Technical Overview of Remote Agent Connectivity Mechanism
The communication between the remote agent and server is done through two protocols, HTTP and JMS on top of separate unicast TCP connections.
The communication between the remote agent and server is bi-directional, and the remote agent initiates both TCP connections.
The HTTP protocol is used for the initial registration to the server and bootstrapping on the HTTP(s) connector of the server. Artifacts are also transferred using this protocol over the main connector of the server.
The agent will usually connect to the server using the same Bamboo URL used for general user access. The URL is set during the agent installation and can be changed later as described here.
|Examples of addresses||Port||Context path||Protocol|
This connection will be established to the address configured in Bamboo broker at <Bamboo_Home>/bamboo.cfg.xml file. There are two properties defined here:
|The broker client URI is the address that is distributed to agents and the endpoint they will attempt to connect to.|
The broker URI is the local listener address that Bamboo will attempt to bind the JMS listener to.
- Any changes to these properties will require a Bamboo restart.
- The address should NOT be set to localhost. Ideally, the agent should reach the server directly to it's IP or hostname. If a reverse proxy address is set here, please make sure the proxy is correctly configured to redirect the broker TCP traffic.
|Examples of addresses||Port||Protocol|
TCP (JMS - secure)
TCP (JMS - buffered TCP)
The commands below can be used for primary connectivity checks and should succeed if the correct addresses and ports are used.
|Agent-side checks||Command||Examples||Related articles|
|ping <Server_Hostname>||ping my.bamboo.url|
|telnet <Server_Hostname> <HTTP_Port>||telnet my.bamboo.url 8085|
|ping <Server_Hostname or IP_address>|
|telnet <Server_Hostname or IP_address> <JMS_Port>|
telnet 192.168.10.10 54663
|ping <Server_Hostname or IP_address>||ping bamboo.hostname|
Windows: netstat -an | findstr <HTTP_Port>
|netstat -an | findstr 8085|
netstat -an | grep 8085
|Windows: netstat -an | findstr <Broker_Port>|
Unix Like: netstat -an | grep <Broker_Port>
|netstat -an | findstr 54663|
netstat -an | grep 54663
|Agent remains in loading: "java.net.BindException: Address already in use"|
Increase debug Logging
In case extra logging is needed:
Bamboo with a reverse proxy
If Bamboo is running behind a reverse proxy and the remote agent is getting trouble to connect with Bamboo (in the first stages of connection - using HTTP protocol) or experiencing artifact transfer problems, it might be worth to bypass the proxy to check if it could be causing the issue. The following document can be used for this purpose:
Other common causes for connectivity issues
Some common reasons for port and socket connectivity issues include:
- Forward proxies
Please check the above to see if any are interfering or blocking required ports and connections.