ERP,Web development/Desin technical solutions and MBA discussion forum....
Generation copy book /remote call and .lis file
Labels:
PeopleSoft
For Microsoft Windows, cblmake.bat, which lives
under %PS_HOME%\src\cbl\win32. Add this location to your PATH environment
variable so you can call the command from anywhere you want. Because there are
so many dependencies, I would copy everything under %PS_HOME%\src\cbl\base to a
temp location like C:\Temp, then issue the following command to compile a
single COBOL in error call mode
C:\Temp>cblmake.bat GLPJEDIT
(Note the drop of .cbl extension).
If you run cblmake.bat without any parameters it will display all available compile options.
Once compiled, copy the appropriate INT/GNT/EXE to your %PS_HOME%\CBLBIN<%Type%> directory.
C:\Temp>cblmake.bat GLPJEDIT
(Note the drop of .cbl extension).
If you run cblmake.bat without any parameters it will display all available compile options.
Once compiled, copy the appropriate INT/GNT/EXE to your %PS_HOME%\CBLBIN<%Type%> directory.
Compiling Single COBOL program
Labels:
PeopleSoft
To compile a single COBOL program, run the command with the COBOL program name
excluding the .cbl extension.
For example, for a PeopleSoft PeopleTools COBOL program PTPDBTST.CBL, or a PeopleSoft
Application COBOL program GPPDPRUN.CBL, run:
pscbl.mak PTPDBTST
pscbl.mak GPPDPRUN
For more information, you may refer 'Installing and Compiling COBOL on UNIX Chapter 12B' in PeopleTools 8.52 install guide
For example, for a PeopleSoft PeopleTools COBOL program PTPDBTST.CBL, or a PeopleSoft
Application COBOL program GPPDPRUN.CBL, run:
pscbl.mak PTPDBTST
pscbl.mak GPPDPRUN
For more information, you may refer 'Installing and Compiling COBOL on UNIX Chapter 12B' in PeopleTools 8.52 install guide
How to identify who is locking the Oracle account
Labels:
Oracle DBA
With AUDIT_TRAIL
The first and preferred solution is with Oracle standard auditing feature. Start by setting initialization parameter AUDIT_TRAIL to db and restart your Oracle database as it is static parameter.Then activate network auditing with (as SYS):
SQL> AUDIT network BY ACCESS; AUDIT succeeded. |
SELECT * FROM dba_audit_session ORDER BY sessionid DESC; |
[oracle@server1 ~]$ oerr ora 1017 01017, 00000, "invalid username/password; logon denied" // *Cause: // *Action: |
SQL> SELECT username,userhost,returncode FROM dba_audit_session WHERE username='YJAQUIER' ORDER BY sessionid DESC; USERNAME USERHOST RETURNCODE ------------------------------ -------------------- ---------- YJAQUIER server1 1017 YJAQUIER GVADT30596 0 YJAQUIER server1 0 YJAQUIER server1 0 . . . |
SQL> SELECT username, account_status,lock_date, PROFILE FROM dba_users WHERE username='YJAQUIER'; USERNAME ACCOUNT_STATUS LOCK_DATE PROFILE ------------------------------ -------------------------------- -------------------- ------------------------------ YJAQUIER LOCKED(TIMED) 23-nov-2012 10:30:37 DEFAULT |
SQL> SET lines 200 SQL> SET pages 200 SQL> SELECT * FROM DBA_STMT_AUDIT_OPTS; USER_NAME PROXY_NAME AUDIT_OPTION SUCCESS FAILURE ------------------------------ ------------------------------ ---------------------------------------- ---------- ---------- ALTER SYSTEM BY ACCESS BY ACCESS SYSTEM AUDIT BY ACCESS BY ACCESS CREATE SESSION BY ACCESS BY ACCESS CREATE USER BY ACCESS BY ACCESS ALTER USER BY ACCESS BY ACCESS DROP USER BY ACCESS BY ACCESS PUBLIC SYNONYM BY ACCESS BY ACCESS DATABASE LINK BY ACCESS BY ACCESS ROLE BY ACCESS BY ACCESS PROFILE BY ACCESS BY ACCESS CREATE ANY TABLE BY ACCESS BY ACCESS ALTER ANY TABLE BY ACCESS BY ACCESS DROP ANY TABLE BY ACCESS BY ACCESS CREATE PUBLIC DATABASE LINK BY ACCESS BY ACCESS GRANT ANY ROLE BY ACCESS BY ACCESS SYSTEM GRANT BY ACCESS BY ACCESS ALTER DATABASE BY ACCESS BY ACCESS CREATE ANY PROCEDURE BY ACCESS BY ACCESS ALTER ANY PROCEDURE BY ACCESS BY ACCESS DROP ANY PROCEDURE BY ACCESS BY ACCESS ALTER PROFILE BY ACCESS BY ACCESS DROP PROFILE BY ACCESS BY ACCESS GRANT ANY PRIVILEGE BY ACCESS BY ACCESS CREATE ANY LIBRARY BY ACCESS BY ACCESS EXEMPT ACCESS POLICY BY ACCESS BY ACCESS GRANT ANY OBJECT PRIVILEGE BY ACCESS BY ACCESS CREATE ANY JOB BY ACCESS BY ACCESS CREATE EXTERNAL JOB BY ACCESS BY ACCESS |
Without AUDIT_TRAIL
The only drawback of the previous solution is that you have to restart the database. And maybe two times because after problem solved you would like to deactivate auditing. This is most probably not reliable solution on a production database so I have been looking for a better solution with no database reboot.I initially thought of the AFTER LOGON trigger but you need to be logged-in and the BEFORE LOGON does not exits. Then at same documentation place I found the AFTER SERVERERROR trigger and decided to give it a try.
First I created a dummy table to log server error (columns inherited from dba_audit_session dictionary table):
CREATE TABLE sys.logon_trigger ( USERNAME VARCHAR2(30), USERHOST VARCHAR2(128), TIMESTAMP DATE ); |
CREATE OR REPLACE TRIGGER sys.logon_trigger AFTER SERVERERROR ON DATABASE BEGIN IF (IS_SERVERERROR(1017)) THEN INSERT INTO logon_trigger VALUES(SYS_CONTEXT('USERENV', 'AUTHENTICATED_IDENTITY'), SYS_CONTEXT('USERENV', 'HOST'), SYSDATE); COMMIT; END IF; END; / |
SQL> ALTER SESSION SET nls_date_format='dd-mon-yyyy hh24:mi:ss'; SESSION altered. SQL> SET lines 200 SQL> col USERHOST FOR a30 SQL> SELECT * FROM sys.logon_trigger ORDER BY TIMESTAMP DESC; USERNAME USERHOST TIMESTAMP ------------------------------ ------------------------------ -------------------- yjaquier ST\GVADT30596 23-nov-2012 11:05:56 |
Tablespace not displaying in Application designer to save records
Labels:
PeopleSoft
Below SQL will help to resolve the Tablespace not displaying in Application designer to save records
INSERT INTO PSTBLSPCCAT
SELECT DISTINCT DDLSPACENAME, DBNAME ,'R',' ', '' FROM PSRECTBLSPC A
WHERE TEMPTBLINST = 'N'
AND NOT EXISTS (SELECT 'X' FROM PSTBLSPCCAT
WHERE DDLSPACENAME = A.DDLSPACENAME
AND DBNAME = A.DBNAME);
INSERT INTO PSTBLSPCCAT
SELECT DISTINCT DDLSPACENAME, DBNAME ,'R',' ', '' FROM PSRECTBLSPC A
WHERE TEMPTBLINST = 'N'
AND NOT EXISTS (SELECT 'X' FROM PSTBLSPCCAT
WHERE DDLSPACENAME = A.DDLSPACENAME
AND DBNAME = A.DBNAME);
JSL/WSL (jolt/Work Listener) failed to start with error Could not establish listening address on network
Labels:
PeopleSoft
These error messages indicate that the port number that the Tuxedo process is attempting to start listening on is either in use, invalid, or the hostname/IP address specified for that address is invalid.
The Application Server will spawn new processes when it boots up based on the Min and Max Handlers for the Workstation Listener and Jolt Listener. Make sure you have your ports spread out between the WSL and JSL to accommodate the Max Handlers value for the Workstation Listener. For example if you are using port 7000 for WSL and have a Max Handlers value of 5, ports 7001 - 7005 will be used as well. You will want to set the JSL to no less then 7006
For example appserver use port 9618 and spaned 5 more in use and it fails when rebooting.Find the spawned process in use using netstat -lpn and get the PID - kil the PID and start the appserver
netstat -lpn | grep 961*
tcp 0 0 10.137.4.25:9619 0.0.0.0:* LISTEN 16347/JSH
tcp 0 0 10.137.4.25:9620 0.0.0.0:* LISTEN 16348/JSH
tcp 0 0 10.137.4.25:9621 0.0.0.0:* LISTEN 16349/JSH
tcp 0 0 10.137.4.25:9622 0.0.0.0:* LISTEN 16350/JSH
tcp 0 0 10.137.4.25:9623 0.0.0.0:* LISTEN 16351/JSH
[PS_HOME/appserv]$ kill -9 16347 16348 16349 16350 16351
Query to find user security access by navigation
Labels:
PeopleSoft
select a.oprid as OPRID, a.oprdefndesc as NAME, b.rolename as ROLENAME, c.descr254 as NAVIGATION, c.descr150_mixed as DESCRIPTION
from psoprdefn a, psroleuser b, psroleclass d, psauthitem e, ps_authitem_cmp c
where a.oprid = b.roleuser
and b.rolename = d.rolename
and d.classid = e.classid
and e.menuname = c.menuname
and e.barname = c.barname
and e.baritemname = c.baritemname
and e.pnlitemname = c.pnlitemname
and a.oprclass like 'PP_UK%'
and a.acctlock = 0
order by a.oprid, b.rolename;
Maintaining Security in PeopleSoft Upgarde
Labels:
PeopleSoft
In order to preserve security through your upgrade passes, you will have 3 options.
1) Low Risk - Re-enter your security changes into one of the target databases. Once this is complete, those security tables can be exported out and imported into any other upgraded databases at the same tools release using security migration reDocument:610138.1, included below.
2) Low Risk - Re-do the Initial Upgrade again. This will get the security as it is when you take the copy of production. Many customers chose this option because they are most comfortable with it. Once the initial upgrade is completed, follow the steps outlined in reDocument:610138.1 (Included below) to migrate security to your other upgraded databases.
3) High Risk -
Attention! This workaround has not gone through our formal quality regression test cycle. We strongly recommend that you thoroughly test this workaround in a development environment before applying it to your production environment.
Be sure to document this change as this workaround may be detected during your next upgrade. Because this workaround has not yet gone through our formal quality regression test cycle, this workaround will have risk.
1) Low Risk - Re-enter your security changes into one of the target databases. Once this is complete, those security tables can be exported out and imported into any other upgraded databases at the same tools release using security migration reDocument:610138.1, included below.
2) Low Risk - Re-do the Initial Upgrade again. This will get the security as it is when you take the copy of production. Many customers chose this option because they are most comfortable with it. Once the initial upgrade is completed, follow the steps outlined in reDocument:610138.1 (Included below) to migrate security to your other upgraded databases.
3) High Risk -
Attention! This workaround has not gone through our formal quality regression test cycle. We strongly recommend that you thoroughly test this workaround in a development environment before applying it to your production environment.
Be sure to document this change as this workaround may be detected during your next upgrade. Because this workaround has not yet gone through our formal quality regression test cycle, this workaround will have risk.
You should only follow this option if you only want the latest operator security in production migrated to your upgraded database. Do the Initial Upgrade again, up through the end of Chapter 2 (Updating PeopleTools). You will need to definitely run the Relnnn.sql scripts, copy the projects and do the alters - but to make sure you get everything correct, it would be best to run all steps in Chapter 2. Once completed your tools release will be at the same level as your fully upgraded database that you want operator security imported into. DO NOT FOLLOW Document:610138.1 as you will LOSE ALL security delivered by the new application release you just upgraded to. To migrate your operator security, select the appropriate Data Mover script for your PeopleTools release to export and import operator security:
For PT 8.4x -
******Export******
USEREXPORT.dms
This script looks as follows:
-- USERS
EXPORT PSOPRDEFN;
EXPORT PSOPRALIAS;
EXPORT PSROLEUSER;
EXPORT PSUSERATTR;
EXPORT PSUSEREMAIL;
EXPORT PSUSERPRSNLOPTN;
EXPORT PS_ROLEXLATOPR;
EXPORT PS_RTE_CNTL_RUSER;
******Import******
USERIMPORT.dms
This script looks as follows:
UPDATE PSLOCK SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'UPM';
REPLACE_DATA *;
UPDATE PSVERSION SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'SYS';
UPDATE PSVERSION SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'UPM';
UPDATE PSOPRDEFN SET VERSION = (SELECT VERSION FROM PSVERSION WHERE OBJECTTYPENAME = 'UPM');
******Export******
USEREXPORT.dms
This script looks as follows:
-- USERS
EXPORT PSOPRDEFN;
EXPORT PSOPRALIAS;
EXPORT PSROLEUSER;
EXPORT PSUSERATTR;
EXPORT PSUSEREMAIL;
EXPORT PSUSERPRSNLOPTN;
EXPORT PS_ROLEXLATOPR;
EXPORT PS_RTE_CNTL_RUSER;
******Import******
USERIMPORT.dms
This script looks as follows:
UPDATE PSLOCK SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'UPM';
REPLACE_DATA *;
UPDATE PSVERSION SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'SYS';
UPDATE PSVERSION SET VERSION = VERSION + 1 WHERE OBJECTTYPENAME = 'UPM';
UPDATE PSOPRDEFN SET VERSION = (SELECT VERSION FROM PSVERSION WHERE OBJECTTYPENAME = 'UPM');
Steps for PopleTools 8.5X PIA and Weblogic Installation with JRockit
Labels:
PeopleSoft
1) To download the latest WebLogic maintenance pack (10.3.6) for PeopleTools 8.52, do the following:
a. Go to the following URL for the “Oracle Software Delivery Cloud site (aka eDelivery): http://edelivery.oracle.com/
b. Follow instructions for filling in personal info and confirm acceptance of terms, etc. Then click 'Continue' button
c. On the "Media Pack Search" page, click on the first ("Product Pack") drop down list, and choose "Oracle Fusion Middleware".
d. In the second, "Platform" drop down list, chose Linux x86-64
e. After making your choices, click the "Go" button.
f. Click the 'Oracle Fusion Middleware 11g Media Pack for Linux x86-64' hyperlink
g. Then click the 'Download' button next to 'Oracle WebLogic Server 11gR1 (10.3.6) Generic and Coherence' (part# is V29856-01)
h. After the file is downloaded, unzip it.
2) To download the latest JRockit:
a. Go to My Oracle Support through http://support.oracle.com and log in
b. Once logged in, click the "Patches & Updates" tab.
d. Select "Product or Family (Advanced Search)". (on top right corner of page)
e. Enter the following info:
Product is: "Oracle JRockit"
Release is "Oracle JRockit 28.2.5"
Platform is: "Linux x86-64"
f. Click "Search" to continue. You will see a list of the JRockit patches available.
Please select "JDK160 ORACLE JROCKIT R28.2.5" (Make sure you get JDK160, and NOT JDK150!).
g. Click "Download", and save the patch to your local drive. The file name will be in *.zip format. For example: p14261101_2825_Linux-x86-64.zip
3) To install WebLogic 10.3.6 and the new JRockit:
a) Unzip the JRockit zip file (from step 3) to the directory where you want it installed. (I'd suggest you install it in the same directory where you are installing WebLogic
c) Now install WebLogic 10.3.6. Follow the instructions in the PeopleTools 8.52 Installation guide
(see section: "Installing Oracle WebLogic on Linux or UNIX)
4) Now try to re-install the WebLogic PIA
a. Go to the following URL for the “Oracle Software Delivery Cloud site (aka eDelivery): http://edelivery.oracle.com/
b. Follow instructions for filling in personal info and confirm acceptance of terms, etc. Then click 'Continue' button
c. On the "Media Pack Search" page, click on the first ("Product Pack") drop down list, and choose "Oracle Fusion Middleware".
d. In the second, "Platform" drop down list, chose Linux x86-64
e. After making your choices, click the "Go" button.
f. Click the 'Oracle Fusion Middleware 11g Media Pack for Linux x86-64' hyperlink
g. Then click the 'Download' button next to 'Oracle WebLogic Server 11gR1 (10.3.6) Generic and Coherence' (part# is V29856-01)
h. After the file is downloaded, unzip it.
2) To download the latest JRockit:
a. Go to My Oracle Support through http://support.oracle.com and log in
b. Once logged in, click the "Patches & Updates" tab.
d. Select "Product or Family (Advanced Search)". (on top right corner of page)
e. Enter the following info:
Product is: "Oracle JRockit"
Release is "Oracle JRockit 28.2.5"
Platform is: "Linux x86-64"
f. Click "Search" to continue. You will see a list of the JRockit patches available.
Please select "JDK160 ORACLE JROCKIT R28.2.5" (Make sure you get JDK160, and NOT JDK150!).
g. Click "Download", and save the patch to your local drive. The file name will be in *.zip format. For example: p14261101_2825_Linux-x86-64.zip
3) To install WebLogic 10.3.6 and the new JRockit:
a) Unzip the JRockit zip file (from step 3) to the directory where you want it installed. (I'd suggest you install it in the same directory where you are installing WebLogic
c) Now install WebLogic 10.3.6. Follow the instructions in the PeopleTools 8.52 Installation guide
(see section: "Installing Oracle WebLogic on Linux or UNIX)
4) Now try to re-install the WebLogic PIA
Linux kernal parameters for PeopleTools 8.52
Labels:
PeopleSoft
Below Linux kernal parameter has to be set to for PeopleTools 8.52 installtion on Linux else the the process with fail to start with less allocated memory
Add the following lines to /etc/sysctl.conf
# Added for PS
kernel.sem = 256 32000 128 192
# Added for PS
kernel.msgmni = 2048
# Added for PS
net.ipv4.ip_local_port_range = 1024 65000
to activate:
/sbin/sysctl -p
to retain settings after booting add the following line to /etc/rc.local
/sbin/sysctl -p
Add the following lines to /etc/sysctl.conf
# Added for PS
kernel.sem = 256 32000 128 192
# Added for PS
kernel.msgmni = 2048
# Added for PS
net.ipv4.ip_local_port_range = 1024 65000
to activate:
/sbin/sysctl -p
to retain settings after booting add the following line to /etc/rc.local
/sbin/sysctl -p
shell Script to monitor log file
Labels:
PeopleSoft
Below script will monitor for the error log file updated date every 5 minutes and compare it with the current date and send email if it is updated today.After the issue has been fixed you may need to backup the old log
Scheduled to run 5 mins:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/monitor.sh
Monitor.sh Script:
#!/bin/sh
cd /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW
Current_Date=`date +"%b %e"`
Filerrordate=`ls -ltr /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/errorLog.html
awk '{print $6,$7}'`
if [ "$Current_Date" = "$Filerrordate" ] ; then
echo $Current_Date":Error logged in IB gateway log" >> /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/dailystatus.log
cat errorLog.html
mailx -s "URGENT::Error occured in IB Gateway please Check immediatly" xxxx@name.com
exit 0
else
echo $Current_Date":No new error in error log" >> /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/dailystatus.log
exit 0
fi
Scheduled to run 5 mins:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/monitor.sh
Monitor.sh Script:
#!/bin/sh
cd /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW
Current_Date=`date +"%b %e"`
Filerrordate=`ls -ltr /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/errorLog.html
awk '{print $6,$7}'`
if [ "$Current_Date" = "$Filerrordate" ] ; then
echo $Current_Date":Error logged in IB gateway log" >> /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/dailystatus.log
cat errorLog.html
mailx -s "URGENT::Error occured in IB Gateway please Check immediatly" xxxx@name.com
exit 0
else
echo $Current_Date":No new error in error log" >> /opt/hrms/webserv/hr/applications/peoplesoft/PSIGW/dailystatus.log
exit 0
fi
Integration Broker gateway setup with Load Balancer
Labels:
PeopleSoft
What should the Gateway URL be and what should the Physical Gateways URL's be?
The gateway URL should actually be the URL of the load balancer, and not any of the web servers hosting the Gateways.
If the load balancer checkbox is checked, then additional field is opened on the page where the URLs for the physical web servers (hosting the gateways) can be listed. These URLs are for information purposes only. There is no load balancing code/logic being triggered as a result of these values. The load balancing logic/code to redirect connections to one of the physical web servers (hosting the gateways) should be in the load balancer.
What happens if the Gateway URL is down, what kind of failover will happen?
If the Gateway URL (Load Balancer) is down, then messaging will not work as it will not be able to direct requests to one of the Physical gateways/web servers. But if one of the Physical Gateways were down, it will just failover to another one. There is no significance of the order in which you add those Physical Gateways.
When hitting the Load Gateway Connectors button, is that only loading connectors for the primary gateway URL? Do they need to do that for each Physical URL also?
You only need to hit the Load button once, provided you have not added or modified any of the connectors on any of the webservers. We are assuming all connectors on any of the web servers are the same and as delivered. When you hit the Load button, we are only going through one Gateway, and loading the connectors from one webserver, then loading them into the database.
When you ping a node, which Gateway is it using?
Load Balancing typically is a Round Robin approach driven by the load balancer, and PSFT does not control which Gateway to use. The way to test each Gateway is to bring down all but one > then ping. Then bring down all but the next Gateway > then ping. etc until all are tested successfully.
The gateway URL should actually be the URL of the load balancer, and not any of the web servers hosting the Gateways.
If the load balancer checkbox is checked, then additional field is opened on the page where the URLs for the physical web servers (hosting the gateways) can be listed. These URLs are for information purposes only. There is no load balancing code/logic being triggered as a result of these values. The load balancing logic/code to redirect connections to one of the physical web servers (hosting the gateways) should be in the load balancer.
What happens if the Gateway URL is down, what kind of failover will happen?
If the Gateway URL (Load Balancer) is down, then messaging will not work as it will not be able to direct requests to one of the Physical gateways/web servers. But if one of the Physical Gateways were down, it will just failover to another one. There is no significance of the order in which you add those Physical Gateways.
When hitting the Load Gateway Connectors button, is that only loading connectors for the primary gateway URL? Do they need to do that for each Physical URL also?
You only need to hit the Load button once, provided you have not added or modified any of the connectors on any of the webservers. We are assuming all connectors on any of the web servers are the same and as delivered. When you hit the Load button, we are only going through one Gateway, and loading the connectors from one webserver, then loading them into the database.
When you ping a node, which Gateway is it using?
Load Balancing typically is a Round Robin approach driven by the load balancer, and PSFT does not control which Gateway to use. The way to test each Gateway is to bring down all but one > then ping. Then bring down all but the next Gateway > then ping. etc until all are tested successfully.
Process tables
Labels:
PeopleSoft
PS_PMN_SRVRLIST – PeopleSoft Process
Scheduler Server List Record.The corresponding information is available also in
the PeopleSoft interface on the menu Home>PeopleTools>Process
Scheduler>Process Monitor, Server List tab.The table stores the system name
that identifies the server (SERVERNAME),the name of server on which the PeopleSoft
Process Scheduler Server Agent was started (HOSTNAME), the last time that you
refreshed the server list to display the most current information
(LASTUPDDTTM),the name of the report node where the Distribution Agent posted
all generated reports, logs, or trace files (DISTNODENAME), the status of the
Process Scheduler server:Running, Down, or Suspended
(SERVERSATUS,SERVERSTATUSDESCR), the CPU threshold percentage value specified
in the server definition – CPU usage exceeds this value, the server will not
schedule new requests until CPU usage drops below this amount (MAXCPU), memory
threshold in percent (MINEM), the disk threshold specified in Process Scheduler
configuration file (PRCSTHRESHOLD), the amount of disk space available
(PRCSDISKSPACE), server load balancing option (SRVRLOADBALOPTN), the
name/version of the operating system of the server (OPSYS) and some other
Deamon services related information.
PSPRCSLOCK – Peoplesoft Process
Scheduler Lock table,contains the number of process scheduler locks (PRCSLOCK)
and is used to single thread process requests and to avoid any deadlocks on the
PSPRCSRQST table.
PS_SERVERNOTIFY – PeopleSoft Process
Scheduler Notification table which can be, also, identified and updated from
the menu Home>PeopleTools>Process Scheduler>Servers, Notification tab.
It records the Process Scheduler name (SERVERNAME), the distribution OPRID
-DISTID,the distribution id type -DISTIDTYPE (2-User ID, 3-Role Name), the
options of notifying when the process scheduler errors – NOTIFYSERVERERROR,
when it is down – NOTIFYWHENDOWN or when it has been started –
NOTIFYWHENSTARTD, or when suspended/overloaded -NOTIFYWHENSUSP, or disabled –
NOTIFYDISABLED.
PS_SERVERDEFN – PeopleSoft Process
Scheduler Definition table, which can be, also, identified and updated from the
menu Home>PeopleTools>Process Scheduler>Servers, Definition,
Distribution and Daemon tab.This record stores the Process Scheduler name
(SERVERNAME),its VERSION, its description (DESCR), the sleep time, in seconds,
SLEEPTIME – the time the Process Scheduler stops searching for processes that
have entered in its queue for running, therefore once every interval set in the
SLEEPTIME, the process scheduler wakes up and looks for processes in”Queued”
state.The generraly recommended sleeptime is 30-60 seconds and the maximum
allowed is 9999 seconds.The table contains, also, the HEARTBEAT of the Process
Scheduler- the interval at which the Process Scheduler Agent checks the status
of the server (Running,Suspended,Down), each time this verfication is done the
agent updates the field LASTUPDDTTM in the PS_SERVERDEFN record. This prevents
the database from accepting more than one Process Server Agent with the same
name on one or multiple servers. This table also stores the Maximum number of
Application Program Interface (API) aware tasks running concurrently –
MAXIAPIAWARE, the Maximum number of non Application Program Interface aware
tasks running concurrently -MAXIAPIUNAWARE,the defined operating system -OPSYS
(0-DOS,1-NT/Win95
Client,2-NT/Win2000,3-OS/2,4-UNIX,5-VMS,6-MPE/XL,7-OS390,9-OS/400), the
distribution node name (DISTNODENAME),the Transfer System Files to Report
Repository flag – TRANSFERLOGFILES (1, if checked in the PIA checkbox), the
Interval for Transfer Attempt – TRANSFERINTERVAL, Maximum Transfer Retries
-TRANSFERMAXRETRY, Server Load Balancing Option -SRVRLOADBALOPTN (0-Do Not Use
for Load Balancing,1-Use for Load Balancing),Redistribute Workload Option –
REDISTWRKOPTION (0-Do Not Redistribute, 1-Redistribute with same
O/S,2-Redistribute to any O/S),the daemon enabled flag – DAEMONENABLED,the
daemon servers group -DAEMONGROUP,the daemon sleep time -in minutes-DAEMONSLEEPTIME,
the deamon recycle count, which recycles the deamon agent after the set number
of iterations -DEAMONCYCLECNT,the deamon Process Instance -DEAMONPRCSINSTANCE,
the CPU utilization treshold – MAXCPU and the Memory utilization threshold –
MINMEM,both recorded as percentages.
PS_SERVEROPRTN – PeopleSoft Process
Scheduler server Operation times table, available in PT 8.4xx versions,
contains the defined Process Scheduler names (SERVERNAME) and their set
availability days ( established in the day of the week format with values from
0-6,Sunday is represented by 0, Monday by 1,Saturday by 6 and so on) and the
start time/hour of day (STARTTIME) and the time of the day the availability
ends (ENDTIME). Both STARTTIME and ENDTIME are stored at the database level as
their minute value (eg: the hour 05:00 is represented in the DB as 300,23:59 as
1439 and so on).Also, the content of this table is avialble for editing and
viewing from the menu Home>PeopleTools>Process Scheduler>Servers,
Operation tab for the specific selected Process Scheduler name.
SELECT S.SERVERNAME,
X.XLATSHORTNAME,X.FIELDVALUE,cast(S.MAXCPU as varchar2(3))||’%’
MAXCPU,cast(S.PRCSDISKSPACE as varchar2(15))||’ MB’
PRCS_DISK_SPACE,TO_CHAR(S.LASTUPDDTTM,’DD-MM-YYYY HH:MI:SS’)LAST_UPDATE_TIME
FROM PSSERVERSTAT S, PSXLATITEM X
WHERE X.FIELDNAME = ‘SERVERSTATUS’
AND X.FIELDVALUE = S.SERVERSTATUS
FROM PSSERVERSTAT S, PSXLATITEM X
WHERE X.FIELDNAME = ‘SERVERSTATUS’
AND X.FIELDVALUE = S.SERVERSTATUS
PSPRCSRQST and PSPRCSQUE tables –
when a user submits a process request to the Process Scheduler a corresponding
record will be inserted in the PSPRCSRQST (Process Request) table and
afterwards replicated into the PSPRCSQUE table and further acknowledged by the
Process Scheduler to be processed. Therefore every “x” seconds (whatever the
Sleep time is set your PS environment) 3 retrieve commands get exceuted on the
PSPRCSQUE table. While the PSPRCSRQST table is used more with informational
purposes to ensure that the correct data is displayed in the Process Monitor
tool,the PSPRCSQUE table is the one managing the queue of processes and jobs;
modifying this last table is what can detrmine a specific PS job or
process to stop. Actually, the parameter that must be affected, at each
process instance level, in order to generate the previously mentioned behaviour
is RUNSTATUS and it controls whether or not the job is further processed
by the Process Scheduler. DISTATUS is the distribution state and controls
whether or not the distribution agent will pick up the job.
In order to avoid diverse Process Scheduler related problems the following tables must be always synchronized: PSPRCSRQST,PSPRCSQUE and PSPRCSPARMS.In conclusion, the values returned by the three count statements must be equal:
select count(*) from PSPRCSRQST;
select count(*) from PSPRCSQUE;
select count(*) from PSPRCSPARMS;
Also, to check if there are any incompatibilities between the fields of the above mentioned 3 tables the the following commands should be issued:
SELECT * FROM PSPRCSQUE Q WHERE NOT EXISTS (SELECT ‘N’ FROM PSPRCSRQST R WHERE R.PRCSINSTANCE = Q.PRCSINSTANCE);
SELECT * FROM PSPRCSQUE Q WHERE NOT EXISTS (SELECT ‘N’ FROM PSPRCSPARMS P WHERE P.PRCSINSTANCE = Q.PRCSINSTANCE);
In order to avoid diverse Process Scheduler related problems the following tables must be always synchronized: PSPRCSRQST,PSPRCSQUE and PSPRCSPARMS.In conclusion, the values returned by the three count statements must be equal:
select count(*) from PSPRCSRQST;
select count(*) from PSPRCSQUE;
select count(*) from PSPRCSPARMS;
Also, to check if there are any incompatibilities between the fields of the above mentioned 3 tables the the following commands should be issued:
SELECT * FROM PSPRCSQUE Q WHERE NOT EXISTS (SELECT ‘N’ FROM PSPRCSRQST R WHERE R.PRCSINSTANCE = Q.PRCSINSTANCE);
SELECT * FROM PSPRCSQUE Q WHERE NOT EXISTS (SELECT ‘N’ FROM PSPRCSPARMS P WHERE P.PRCSINSTANCE = Q.PRCSINSTANCE);
Reports not Posting
Labels:
PeopleSoft
Troubleshooting why reports and files are not posting can be
really painful.
Generally you'll be in one of two scenarios:
- All reports are not posting and
display not posted in the process monitor. This is generally an
infrastructure issue.
- A particular file or report does not
post. This could be a development issue or an infrastructure issue.
So where do you start? The Administration tab in Report
Manager is updated
first. You'll need to know the process instance and report ID (content ID).
If you suspect an infrastructure issue, then the first course of
action is to restart the relevant process scheduler(s).
|
Table
of Contents
|
Report Related Tables
Behind the scenes, the records to look at are those starting with
CDM (content distribution manager). Here are the key records and the
information they give you:
|
Record
|
What does it tell you?
|
|
PS_CDM_DIST_NODE
|
These are your report distribution nodes - check the
configuration here if you have a system-wide reports not posting issue.
Navigation: PeopleTools > Process Scheduler > Report Nodes.
|
|
PS_CDM_AUTH
|
This tells you who (users/roles) the reports were distributed
to. DISTIDTYPE of 2 is user, 3 is role. You may just not be able to see the
report due to security.
|
|
PS_CDM_FILE_EXT
|
These are the file extension distribution options found under
PeopleTools > System Settings > Distribution File Options (tab). Are
you using a new file extension? Is that configured and has it been set to
display (DISPLAY_OPTION = 1)?
|
|
PS_CDM_FILE_LIST
|
This gives you a list of all files you should be able to see. Is
your file in the table? What file type does it think it is - is that right?
No file here means that your file probably wasn't transferred to the report
repository at all.
|
|
PS_CDM_FILTER
|
These are the filter options selected in report manager by
users. Does the user have a filter option that prevents them from seeing the
report ?
|
|
PS_CDM_FILTER_ARCH
|
These are the filter options selected in the report manager
archive tab by users
|
|
PS_CDM_LIST
|
This is probably the most useful table. It tells the process
name, where the process stored its output, where that output was distributed
to (if at all) and the distribution status.
|
|
PS_CDM_LIST_ARCH
|
Same as PS_CDM_LIST but for archived reports
|
|
PS_CDM_LIST_PURGE
|
Reports that have been purged from PeopleSoft altogether
|
|
PS_CDM_TRANSFER
|
Cases where reports were transferred between servers
|
|
PS_CDM_TRNFR_RJCT
|
Cases where reports were transferred between servers and the
transfer was rejected - failed
|
With the information from these tables you are now ready to go
looking on your process scheduler server(s).
If all looks good in the Administration tab of Report
Manager, but you can't see things in the List or Explorer tabs, then you have an integration
broker issue.
These are the translate values for the DISTSTATUS field (PeopleTools 8.48.15):
- DISTSTATUS 0 = None
- DISTSTATUS 1 = Scheduled (N/A)
- DISTSTATUS 2 = Processing
- DISTSTATUS 3 = Generated
- DISTSTATUS 4 = Unable to Post
- DISTSTATUS 5 = Posted
- DISTSTATUS 6 = Delete
- DISTSTATUS 7 = Posting (stuck).
XML File is Invalid Error
If you are getting errors in the message log along the lines of:
- The XML file returned by the web
server is invalid
- XML document object creation failed
Here's a screenshot of what you might see in the message log:
|
|
It could be because you have not set the authentication option on
your default local node. Find your default local node under: PeopleTools >
Integration Broker > Integration Setup > Nodes (has default local node
set to Y e.g. PSFT_HR). Change your authentication option to Password and enter
the default user ID and their password as shown:
|
|
Once you fix this, go back to the process monitor, view the
details for the relevant processes and resend the content.
|
|
Hopefully it now posts.
HTTP Transfer Error
Check the distribution agent logs for the process scheduler. If
you are seeing lines like this:
(JNIUTIL): Java exception thrown: java.net.SocketException: socket closed
HTTP transfer error.
Then check your report node configuration under:
PeopleTools > Process Scheduler > Report Nodes
PeopleTools > Process Scheduler > Report Nodes
In particular:
- Check that your URL and URI is fully
qualified and includes both the server name and the domain.
- You only need login information if
there is web server authentication, otherwise leave this blank
- If you change the URL or URI you
will need to restart the appropriate process schedulers.
Also under PeopleTools > Integration Broker > Nodes
- Open your default local node (e.g.
PSFT_HR) - in the search page, find Local Node = 1
- Confirm it is using the
authentication option of password
- Confirm that the user ID specified
exists and has appropriate roles such as ProcessSchedulerAdmin and ReportDistAdmin
- Retype the password for that user to
confirm it is correct
- Ensure the user's account isn't
locked
HTTP Status Code is 900
If you see the following in your process message log/distribution
agent log:
HTTP Status Code is: 900 (63,72)
HTTP transfer error
There is probably something wrong with your report node
configuration. Browse to PeopleTools > Process Scheduler > Report Nodes,
and in particular, check the connection information, such as the protocol
(http/https), URI host, URI port, and URI Resource (this should beSchedulerTransfer/ps). Also confirm that the
report repository location in the web profile
configuration/configuration.properties of the web server is accessible and
writable from the webserver.
Any changes will require at least a process scheduler restart, and
perhaps a web server restart.
HTTP Status Code is 902
If you see the following in your process message log/distribution
agent log:
Java exception thrown: java.lang.SecurityException: illegal URL redirect
HTTP Status Code is: 902 (63,7 2)
Navigate to PeopleTools > Integration Broker > Integration
Setup > Nodes
Open the default local node (Y) (e.g. PSFT_HR):
- Confirm the authentication option is
Password
- The default user ID is correct (and
exists in the system)
- The password is correct for that
user ID
Navigate to PeopleTools > Security > Security Objects >
Single Signon
Confirm that your default local node (e.g. PSFT_HR) is included in the trust authentication tokens issued by these
nodes list.
Reports not posting initially
If reports are not posting initially, but do post after some
length of time, Solution ID 660253.1 on My Oracle Support might be helpful.
This involves adding the line 0 to the web.xml file on the web server.
Distribution status is N/A
One reason why the distribution status might stay at N/A for some
processes is if the Transfer
System Files to Report Repository check
box is not set in the distribution tab of the process scheduler where the
process is running.
Navigation for this is:
- PeopleTools > Process Scheduler
> Servers > [Distribution Tab]
A process scheduler restart might be required.
Note this is value is stored in the field TRANSFERLOGFILES in
PS_SERVERDEFN.
Directory Creation Failed
If you get the following errors:
Java Exception: Error while write to file:java.lang.SecurityException: Directory Creation Failed (6 3,49)
SchedulerTransfer Servlet error.
HTTP transfer error.
First check your report repository path is correct in the relevant
web profile (and if blank there), in the configuration.properties file for your web server. Also check that the disk is not full for
the relevant report repository path. Also check you have the fileauthtokenenabled.html exists in the same location as configuration.properties.
Finally check permissions - is the owner/security for the folder
correct? Does it match the OS user that started the process scheduler?
Error 404—Not Found
When opening a report that has run to success and posted through
view log/trace or through the report manager, the following error appears (this
is for Weblogic):
Error 404--Not Found
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.4.5 404 Not Found
The server has not found anything matching the Request-URI. No indication is given of whether the condition
is temporary or permanent.
If the server does not wish to make this information available to the client, the status code 403 (Forbidden)
can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally
configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.
This is due to an incorrect value in the URL field under:
PeopleTools > Process Scheduler > Reports Nodes
PeopleTools > Process Scheduler > Reports Nodes
For instance instead of the correct http://machinename:port/psreports/ps,
I had http://machinename:port/reports/ps.
Having the incorrect value (reports instead of psreports) caused this error.
Subscribe to:
Posts (Atom)