Timeouts occur because the Atom is waiting too long for a server to respond. In some cases, the server will accept the request and continues to process it, even if the client disconnects. This means a record could actually be created on the server side but the client (i.e. the process) will not know that and report an error.
This is inherent in the HTTP protocol; the client cannot tell the server to stop processing a request if a timeout occurs. Also in today's distributed infrastructure, timeouts can occur at any of multiple "hops" between the Atom and the destination service, of which you may or may not have control.
- Server side: The server to which you are connecting may impose a processing timeout on its side. However this is generally returned as an HTTP 500 or other type of failure than a timeout.
- Infrastructure: Network devices such as firewalls, routers, switches, and proxies between the Atom and the destination service can impose timeouts as well.
- Client side: The client (i.e. the Atom) may choose to terminate the connection if it is unable to initially connect and/or does not receive a response from the server in a certain amount of time. You have the most control over this timeout.
Setting the HTTP Timeout
Local Atom HTTP Timeouts
If you are using a local Atom, Molecule, or Atom Cloud you can configure the global default HTTP Read and Connect Timeouts for all outbound HTTP traffic. Understand that many application connectors use web services and HTTP behind the scenes. The default timeouts for newly installed Atoms is two minutes.
You can adjust these timeouts by modifying the following properties in the atom.vmoptions file located in ../<ATOM_INSTALL_ROOT>/bin:
Values are in milliseconds. You must restart the Atom after modifying the values.
For example, to set the timeout to 10 minutes:
Dell Boomi Atom Cloud Timeouts
The timeout settings for the Dell Boomi Atom Cloud are set to 10 minutes and cannot be changed.
Connection Specific Timeouts
Some connectors such as HTTP Client (Advanced tab) and Zuora (EXECUTE action) allow you to set a timeout value in the Connection component. This value overrides the Atom's default HTTP timeouts, even for processes executing in the Dell Boomi Atom Cloud. However note that executions in the Dell Boomi Atom Cloud are still subject to a maximum execution duration (currently 24 hours).
If you remove the timeout value for the Atom, then it is possible that a client will wait forever for a response. This could happen if the server goes away, or some switch/router in the middle disconnects the connection but fails to inform the client. In this case, the process will hang forever. This can cause problems in the Cloud when processes won't stop, or if processes in the Atom won't stop then the Atom won't be able to restart.