AS:ReadFile operation is pending
am_read_data_from_pipe Exit nothing found in AS AS:read_am_pipe GetOverlappedResult I / O Incomplete AM_SUBMIT:read_from_as_pipe GetOverlappedResult I / O Incomplete AM_SUBMIT:ReadFile operation is pending
Technical information regarding OS jobs on Windows Job Submit =========== Move from sockets to pipes - Agent 9.0.21.000 Important note – Using pipes is the default, BMC does not recommend changing it without consulting first. Until Control-M Agent V8 OS jobs were ran under the same process, p_ctmag. p_ctmag - main Control-M Agent process logically called AG, receiving all the requests from Control-M Server. When Job request arrives an AS thread is created by AG, collects all information and then creates an AM thread to run and monitor the job. No communication is needed between AS and AM because they run under the same process. In case of a thread crash the entire process crashes, which means loss of all the jobs and all other requests e.g. ping from Server. In V8 the AM threads were moved to a new process, p_ctmam. This allowed the possibilities of 1. Upgrade with no downtime. 2. Stopping Agent and OS jobs continues to run. 3. If AG crashes OS jobs will continue to run. 4. If AM crashes a recovery mechanism is possible by starting the AM and recovering jobs that are still running. The move to two processes, AS and AM, introduced the need for inter process communication in order to pass the job request from AS to AM. We used TCP sockets for this. For one job two sockets are opened, one on AS side and one on AM side. This means that for 20 jobs 40 sockets are opened. Over the years, we have observed that as the number of jobs processed by the Agent increases, there is a significant rise in resource consumption. The solution we used, in order to meet the demand of increased job volumes on Windows platforms, was to use pipes to replace the use of sockets. The main difference between sockets and pipes is that a pipe is a shared resource between the 2 processes and not a resource on each side like sockets. This dramatically improved the Agent performance and allowed it to run more jobs pipes VS sockets.
|