Process Scheduler

来源:互联网 发布:app数据库设计 编辑:程序博客网 时间:2024/05/16 18:27
 

This wiki page is dedicated to the PeopleSoft process scheduler - the server process(es) that are responsible for running and managing batch processes including SQR, Application Engine, Crystal Reports and Winword.

FoldUnfold
Table of Contents
Processes stuck at Queued
Run status
Process Output Directory
Suppressing files from the Report Repository
Application Engine programs only stuck at queued
Active Processes
Summary of requested processes by process status
Distribution
Further Information
Comments

Processes stuck at Queued

There 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:

  • PSPRCSRQST
  • PSPRCSQUE
  • PSPRCSPARMS

The row count should be the same in both tables. If one is out of sync with the other, then it can help to remove orphaned instances in of the tables. Restarting the process scheduler and clearing the process scheduler cache will also fix a number of issues.

Run status

In the PeopleTools 8.4x look at the translates on the field RUNSTATUS or use the query.

select FIELDVALUE, XLATLONGNAME from PSXLATITEM where FIELDNAME = 'RUNSTATUS'

Here's a summary of the run status translates (from PeopleTools 8.49). Note that not all of these are active.

ValueStatus1Cancel2Delete3Error4Hold5Queued6Initiated7Processing8Cancelled9Success10Not Successful11Posted12Unable to Post13resend14Posting15Content Generated16Pending17Success with Warning18Blocked19Restart

The following query will give you a summary of the process run statuses in your process request table:

select         RUNSTATUS,    (        select  XLATSHORTNAME        from    PSXLATITEM        where   FIELDNAME = 'RUNSTATUS'        and     FIELDVALUE = RUNSTATUS    ) as RUNSTATUS_DESCR,    count(PRCSINSTANCE)from      PSPRCSRQSTgroup by     RUNSTATUSorder by     RUNSTATUS;

Process Output Directory

  • Finding the SQR Output Directory
  • Writing an SQR to post a custom file to the web

Suppressing files from the Report Repository

I 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

Not sure if the destination source has any impact. User specified is apparently the default (PeopleSoft Process Scheduler PeopleBooks) and means that the output destination is determined by the process run control designation. SQRs apparently must use this as their setting and I believe any application engine programs that output files.

Application Engine programs only stuck at queued

You 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 processesblocking 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

This indicates that the three process instances, 2319373, 2319395 and 2319404 are all running. As there is a maximum of 3 application engine programs that can run at any one time and there are currently 3 running, all other application engine programs requested will remained at queued. However, the three process instances may not actually be running. If this is the case, these will need to be manually stopped, for example with a process scheduler restart and perhaps by manually killing the processes on the process scheduler server if required.

Active Processes

Ever 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 andPS_SERVERCLASS. It is the ITEMCOUNT field from PS_SERVERMONITOR that gives you theactive processes count by process type (SQR, COBOL, Application engine etc).

Summary of requested processes by process status

The 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_OCCURREDfrom PSPRCSRQST RQSTgroup by RQST.RUNSTATUS, RQST.PRCSTYPEorder by RUNSTATUS_XLAT, RQST.PRCSTYPE

Distribution

The following tables store information about the distribution of process scheduler output to users or roles.

PS_PRCSDEFNCNTDIST
Distribution settings for process definitions.

PS_PRCSJOBCNTDIST
Distribution settings for jobs.

PS_PRCSRQSTDIST
Distribution settings by process instance. Join to PS_CDM_FILE_LIST on the process instance to get the file names.

PS_PRCSRUNCNTLDIST
Distribution by operator ID and run control.

Further Information

  • Troubleshooting the Process Scheduler
原创粉丝点击