When I submit a DCD scan, two DCDSRVR STCs are started, why?
One DCDSRVR task picks up the scan and the other DCDSRVR gives return code, "no work found" and ends. Second scan is then submitted. No DCDSRVR STC is started to handle it. Once the first scan is complete, the second one runs under that same DCDSRVR STC.
The CA DCD controller, DCDCONTL, registers a token, or unit of work, with the WLM queue manager. WLM associates the token with the CA DCD application and knows to start DCDSRVR.
DCDSRVR starts a java virtual machine (JVM) address space, which is resource-intensive during initialization. When the JVM initialization is complete the CA DCD application is initialized. DCDSRVR then connects to the WLM queue manager and selects any tokens on the queue, representing a scan.
WLM will start the first DCDSRVR task, but due to the time to it took to initialize the JVM, decided to start a second DCDSRVR. The first DCDSRVR then finished initializing and retrieved the unit of work and began scanning. By the time the second DCDSRVR finished initializing there was no work, thus it was requested to shutdown.
Upon submitting the second scan WLM determined that a second DCDSRVR should not be started. CA DCD does not influence WLM's policy or procedures outside of setting a service class to run under. DCDCONTL simply inserts tokens to the WLM queue manager and DCDSRVR retrieves available tokens.