Processes stuck at QueuedThere are a number of reasons why a process might be stuck at queued. The most obvious is that the process scheduler is down (check the Servers tab in the process monitor). Beyond this, there are some useful troubleshooting that apply:
Check the following tables:
Run statusIn the PeopleTools 8.4x look at the translates on the field RUNSTATUS or use the query.
select FIELDVALUE, XLATLONGNAME from PSXLATITEM where FIELDNAME = 'RUNSTATUS'
|12||Unable to Post|
|17||Success with Warning|
select RUNSTATUS, ( select XLATSHORTNAME from PSXLATITEM where FIELDNAME = 'RUNSTATUS' and FIELDVALUE = RUNSTATUS ) as RUNSTATUS_DESCR, count(PRCSINSTANCE) from PSPRCSRQST group by RUNSTATUS order by RUNSTATUS;
Process Output Directory
Suppressing files from the Report RepositoryI once wrote an application engine to extract photographs from the PeopleSoft database (BLOBs) and to put the photos into a common location on the application server. This was an application engine program. However, the only problem was that the photos being outputted (in .jpg format) were also going to the report repository. This was a hard one to pick up as the .JPG extension had never been configured in the Process Scheduler system settings under distribution file options.
PeopleTools > Process Scheduler > Process Scheduler > System Settings > Distribution File Options
This meant that to the end user, the links were never created to the files on the report repository but they were indeed going there. It was only when the application engine batch processed a lot of photos and the report repository came to a grinding halt that this became apparent.
The fix required suppresing output to the report repository. Here's how:
PeopleTools > Process Scheduler > Processes > [Your Process Name] > Destination
On the destination page, change the output destination options from the default to:
- Type = File
- Format = Other (or select appropriate file format if available)
- Destination Source = User Specified
Application Engine programs only stuck at queuedYou may find that only application engine programs are stuck at queued while other processes (SQRs, crystals etc) run to success. This typically happens due to processes blocking the process scheduler queue. Check the process scheduler/master process scheduler logs. You might see something like this:
Checking Process cancels... (NET.113): Client ChkAeStatus3 service request succeeded Process 2319373 is still running as Session ID 19955 (NET.113): Client ChkAeStatus1 service request succeeded Process 2319395 is still running as Session ID 19946 (NET.113): Client ChkAeStatus2 service request succeeded Process 2319404 is still running as Session ID 19950 Application Engine : 3:3 Requests found in Process Request table 3
Active ProcessesEver wondered where the active processes value on the server list tab comes from? Well it actually uses a view - PS_PMN_PRCSACTV_VW. This view uses the underlying records PS_SERVERMONITOR and PS_SERVERCLASS. It is the ITEMCOUNT field from PS_SERVERMONITOR that gives you the active processes count by process type (SQR, COBOL, Application engine etc).
Summary of requested processes by process statusThe following query will give you a summary of the requested processes by process status.
select RQST.RUNSTATUS, RQST.PRCSTYPE, ( select XLAT.XLATLONGNAME from PSXLATITEM XLAT where XLAT.EFFDT = ( select max(XLAT_ED.EFFDT) from PSXLATITEM XLAT_ED where XLAT_ED.FIELDNAME = XLAT.FIELDNAME and XLAT_ED.FIELDVALUE = XLAT.FIELDVALUE ) and XLAT.FIELDNAME = 'RUNSTATUS' and XLAT.FIELDVALUE = RQST.RUNSTATUS ) as RUNSTATUS_XLAT, count(RQST.PRCSINSTANCE) as TOTAL_PROCESSES, min(RUNDTTM) as FIRST_OCCURRED, max(RUNDTTM) as LAST_OCCURRED from PSPRCSRQST RQST group by RQST.RUNSTATUS, RQST.PRCSTYPE order by RUNSTATUS_XLAT, RQST.PRCSTYPE
DistributionThe following tables store information about the distribution of process scheduler output to users or roles.
Distribution settings for process definitions.
Distribution settings for jobs.
Distribution settings by process instance. Join to PS_CDM_FILE_LIST on the process instance to get the file names.
Distribution by operator ID and run control.