We have an agent that the scheduler can autoping successfully but the application server cannot. In the agent's transmitter.log, we see a lot 'Broken Pipe' errors but the agent is executing jobs successfully.
Broken pipe errors occur when the agent tries to transmit a message about a job on a channel of communication that is already closed (meaning the agent has already sent a completed job status back to the scheduler).
You have a batch job that runs SQL commands. The batch job is executed and completes but there was an error about a failed database insert. The agent transmits a message back to the scheduler saying the job has completed execution and closes the conversation BEFORE transmitting the message about the failed database insert. The agent will continue to try and transmit the message about the error but will never be able to.
Restarting the agent service and/or rebooting the server will not flush out this error message. To clear out the untransmitted message, perform a cold start on the agent:
1. Stop the agent service
2. Rename the database, log and spool directories
3. Restart the agent services (which will re-create the database, log and spool directories)