You are on page 1of 9

App Server boot problem - PSCLOCK

Last week I faced an issue while trying to boot the application server. I checked for all
the common things that could have caused the problem like password, connectivity,
path etc. But everything looked well. I configured the app server for SQL trace and
issued the boot command.

From trace file, it was observed that the app server boot was stuck up at SELECT
CURRENT TIMESTAMP FROM PSCLOCK command. While issued the command
SELECT * FROM PSCLOCK, PSCLOCK table was found blank and was responsible for
this problem.

I imported PSCLOCK table from another environment and started the app server to
success.

Incidentally, the reason for how data from PSCLOCK table have been deleted was not
identified.

XMLP Report Generation and Download Issue

There were two issues reported by user recently related to XMLP:


1) Suddenly XMLP Reports were not getting generated
2) Also, user is not able to download the existing template

App Server Log file shows following error messages while generating an XMLP Report:
Output Xliff file: XDOException:No source available for parsing
During calling method PTRTFPocessor.generateXSL, the XDO engine throws an
exception: No source available for parsing. (235,3101) (235,2304)

Trace File shows following exception message for downloading the XMLP Template:
PSAPPSRV.4931 (339) 1-334 12.37.03 0.000042 ExecuteGetAttachmentDB:
lpszTblName = PSFILE_ATTDET
PSAPPSRV.4931 (339) 1-335 12.37.03 0.001462 ExecuteGetAttachmentDB: Fetching
data
PSAPPSRV.4931 (339) 1-336 12.37.03 0.002891 ExecuteGetAttachmentDB: failed
trying to write file
PSAPPSRV.4931 (339) 1-337 12.37.03 0.000005 ExecuteGetAttachmentDB: Data
fetched
PSAPPSRV.4931 (339) 1-338 12.37.03 0.000054 ExecuteGetAttachmentDB: Finished
getting file.
PSAPPSRV.4931 (339) 1-339 12.37.03 0.000027 193: If &Rtn <>
%Attachment_Success And
PSAPPSRV.4931 (339) 1-340 12.37.03 0.000015 194: throw CreateException(235, 5,
"Error downloading file");

The XMLP Report logging was found enabled for the environment which was creating
huge files ( in /tmp/xdodebug) and have occupied most of temp space over the
period of 2 months - making /tmp filesystem 100% full. This caused both the issues.

To resolve this, delete the old files created under /tmp/xdodebug folder (or whatever
location is defined in your /jre/lib/xdodebug.cfg file). Also, you can choose to disable
the XMLP logging by deleting the xdodebug.cfg file. Recreate the config file when you
want to enable the XMLP Logging to replicate the issue - xdodebug.cfg file contains
following two parameter:
LogLevel=OFF or STATEMENT
LogDir=/tmp/xdodebug

Maybe FIELDTBLS32 is not set properly

It's been such a long time since my last post - was/am too busy to post new
learnings, will now try to be bit more regular :)

In Tuxedo 9.1 in PeopleTool 8.49 recently encountered with an issue where


WebServer was not able to connect to the App Server - even though App Server was
up. While checking the TUXLOG, following message was found:

093006.!JSH.26507.1.-2: JOLT_CAT:1198: "WARN: Forced shutdown of client; user


name 'JPOOL_685'; client name ''"
093006.!JSH.26502.1.-2: JOLT_CAT:1185: "INFO: Userid: [JPOOL_683], Clientid: []
timed out due to inactivity"
093006.!JSH.26502.1.-2: JOLT_CAT:1198: "WARN: Forced shutdown of client; user
name 'JPOOL_683'; client name ''"
093029.!JSH.26502.1.-2: Fldid32(PATTERN) failed for .GETALL: LIBFML_CAT:11:
ERROR: Cannot find or open field table. Maybe FIELDTBLS32 is not set properly.
093029.!JSH.26507.1.-2: Fldid32(PATTERN) failed for .GETALL: LIBFML_CAT:11:
ERROR: Cannot find or open field table. Maybe FIELDTBLS32 is not set properly

The issue appeared to be with the settings of FIELDTBLS32 and FLDTBLDIR32


variables in psappsrv.ubx post Tuxedo 9.1 RP 095. In order to resolve this values of
these variables needs to be modified in psappsrv.ubx:

From FIELDTBLS32=tpadm to FIELDTBLS32=jrep.f32,tpadm


From FLDTBLDIR32=$TUXDIR\udataobj to FLDTBLDIR32={$TUXDIR}/udataobj

*** make sure to use the correct "/"


*** There are two places in psappsrv.ubx where these changes are required to be
made. Reconfigure and restart the AppSrv domain.

PROCESS GROUP
Process group is crucial in securing the processes and jobs in the system. It is
possible to restrict access to certain processes within PeopleSoft by establishing
process groups. A batch process is assigned a 'Process Group' when created. That
'Process Group' is then linked to a permission list (PL). The PL is then assigned to a
'Role' and, subsequently, to a USERID. Process groups are collections of process
definitions that you create using PeopleSoft Process Scheduler.
Navigations to Assign a Process to a Process Group:
PeopleTools -> Process Scheduler -> Processes -> Process Definition Option Tab ->
Process Security section
Navigations to Assign a Process Group to a Permission List:
PeopleTools -> Security -> Permissions & Roles -> Permission -> Process tabs ->
Process Group Permissions

Users can run only the processes that belong to process groups assigned to their
roles. For example, you may have a set of process definitions that relate to your
Human Resources department and another set for your Manufacturing department. If
process 'P1' is in the process group 'PG1' and any of the Permission List (PL) of the
user, say 'USER1', does not have access to that process group 'PG1' - then - that user
'USER1' cannot run the process 'P1'. A process definition can be a member of
multiple process groups.

The process group are not stored in any setup table of its own. They are stored in the
table - PRCSDEFNGRP and PRCSJOBGRP (where process and job definitions are
stored). If you look at the prompt for PRCSGRP field in those tables, it is a 'PROMPT
WITH NO EDIT' - It means, you can keep adding new Process groups on the fly, on
process and job definition components. You may want to execute below queries for
better understanding:
select * from PS_PRCSDEFNGRP
select * from PS_PRCSJOBGRP

PsCIA - PeopleCode & File Pre-Processors

DDL for Tables created by PeopleCode & File Pre-Processors:

You must run the PeopleCode pre-processor to generate the database tables that
Change Impact Analysis reads and analyzes.

The PeopleCode pre-processor generates two tables:


• PSCIAPCXREF
• PSCIAPCXREFTIME

You must have permission to create, delete from and write to these files. If you have
full privileges, you can create these files prior to using Change Impact Analyzer.

**************************************************************************************
**************************
Note. Database administrators may consider assigning user IDs and passwords that
grant read-only access to the database. However, users need create and write access
to these work tables used by Change Impact Analyzer.
**************************************************************************************
**************************

The File Pre-processor generates the following database tables that Change Impact
Analysis reads to perform analysis.
• PSFILEPROCESSRUN
• PSSQLXREFDEFN
• PSSQLXREFITEM
• PSFILESQLXREFDEFN
• PSFILEXREFDEFN

Note. You must have permission to create, delete from and write to these files. If you
have full privileges, you run the pre-processor and create these files beforehand. DDL
for above tables for DB2/Unix, DB2/OS390:

-- Table 1 - PSCIAPCXREF

CREATE TABLE OWNERID.PSCIAPCXREF (


PROGSEQ INT NOT NULL
,REFOBJECTID1 SMALLINT NOT NULL
,REFOBJECTVALUE1 CHAR(60) NOT NULL
,REFOBJECTID2 SMALLINT NOT NULL
,REFOBJECTVALUE2 CHAR(60) NOT NULL
,REFOBJECTID3 SMALLINT NOT NULL
,REFOBJECTVALUE3 CHAR(60) NOT NULL
,REFOBJECTID4 SMALLINT NOT NULL
,REFOBJECTVALUE4 CHAR(60) NOT NULL
,REFOBJECTID5 SMALLINT NOT NULL
,REFOBJECTVALUE5 CHAR(60) NOT NULL
,REFOBJECTID6 SMALLINT NOT NULL
,REFOBJECTVALUE6 CHAR(60) NOT NULL
,REFOBJECTID7 SMALLINT NOT NULL
,REFOBJECTVALUE7 CHAR(60) NOT NULL
,OBJECTID1 SMALLINT NOT NULL
,OBJECTVALUE1 CHAR(60) NOT NULL
,OBJECTID2 SMALLINT NOT NULL
,OBJECTVALUE2 CHAR(60) NOT NULL
,OBJECTID3 SMALLINT NOT NULL
,OBJECTVALUE3 CHAR(60) NOT NULL
,OBJECTID4 SMALLINT NOT NULL
,OBJECTVALUE4 CHAR(60) NOT NULL
,OBJECTID5 SMALLINT NOT NULL
,OBJECTVALUE5 CHAR(60) NOT NULL
,OBJECTID6 SMALLINT NOT NULL
,OBJECTVALUE6 CHAR(60) NOT NULL
,OBJECTID7 SMALLINT NOT NULL
,OBJECTVALUE7 CHAR(60) NOT NULL
)
IN

-- Table 2 - PSCIAPCXREFTIME
CREATE TABLE OWNERID.PSCIAPCXREFTIME (
LASTRUN CHAR(120)
)
IN

-- Table 3 - PSFILEPROCESSRUN
CREATE TABLE OWNERID.PSFILEPROCESSRUN (
LASTREFRESHDTTM TIMESTAMP
,FPPSTATUS CHAR(10) NOT NULL
)
IN

-- Table 4 - PSSQLXREFDEFN
CREATE TABLE OWNERID.PSSQLXREFDEFN (
XREF_ID CHAR(128) NOT NULL
,XREF_SQLTYPE CHAR(1) NOT NULL
,DBTYPE CHAR(1) NOT NULL
,XREF_GROUPBY_CNT SMALLINT NOT NULL
,XREF_ORDERBY_CNT SMALLINT NOT NULL
,XREF_HAVING_CNT SMALLINT NOT NULL
,XREF_SUBQUERY_CNT SMALLINT NOT NULL
,XREF_OUTERJOIN_CNT SMALLINT NOT NULL
,LASTUPDDTTM TIMESTAMP
,SQLTEXT LONG VARCHAR
)
IN

-- Table 5 - PSSQLXREFITEM
CREATE TABLE OWNERID.PSSQLXREFITEM (
XREF_ID CHAR(128) NOT NULL
,XREF_SQLTYPE CHAR(1) NOT NULL
,DBTYPE CHAR(1) NOT NULL
,XREF_ITEMSEQ SMALLINT NOT NULL
,XREF_ITEMTYPE CHAR(4) NOT NULL
,XREF_RECNAME CHAR(30) NOT NULL
,XREF_VALUE CHAR(128) NOT NULL
,XREF_USAGE CHAR(4) NOT NULL
,XREF_CLAUSE CHAR(5) NOT NULL
)
IN

-- Table 6 - PSFILESQLXREFDEFN
CREATE TABLE OWNERID.PSFILESQLXREFDEFN (
SOURCE_FILE CHAR(40) NOT NULL
,FILE_TYPE CHAR(4) NOT NULL
,XREF_ID CHAR(128) NOT NULL
)
IN

-- Table 7 - PSFILEXREFDEFN
CREATE TABLE OWNERID.PSFILEXREFDEFN (
SOURCE_FILE CHAR(40) NOT NULL
,CALLED_FILE CHAR(40) NOT NULL
,FILE_TYPE CHAR(3) NOT NULL
)
IN

PeopleTools Tables

A quick guide to PeopleTools Tables:


Projects:
* PSPROJECTDEFN — Project header table
* PSPROJECTITEM — Definitions in the project

Fields:
* PSDBFIELD — Fields in the system
• PSXLATITEM — Translate Values

Records:
* PSRECDEFN — Record header table
* PSRECFIELD — Fields in the record (subrecords not expanded)
* PSRECFIELDALL — Fields in the record (subrecords expanded)
* PSKEYDEFN — Indexes

Pages - (Named as Panels in the PeopleTools Tables Names)


* PSPNLDEFN — Page header table
* PSPNLFIELD — Page controls
* PSPNLHTMLAREA — Static HTML Areas on Pages

Components - (Named as Panel Group in the PeopleTools Tables Names)


* PSPNLGRPDEFN — Component header table
* PSPNLGROUP — Pages in the components
Menus:
* PSMENUDEFN — Menu header table
* PSMENUITEM — Items (components) on the menu

Security:
* PSCLASSDEFN — Permission List header table
* PSAUTHITEM — Menu items granted security by permission lists
* PSROLEDEFN — Role header table
* PSROLECLASS — Permission Lists in roles
* PSOPERDEFN — User ID header table
* PSROLEUSER — Roles granted to users

Portal:
* PSPRSMDEFN — Content References and Folders

Change Control:
* PSCHGCTLHIST — shows history of locked definitions with project name, incident,
and description
* PSCHGCTLLOCK — shows definitions that are currently locked

Application Engine:
* PSAEAPPLDEFN — header record; 1 row per app engine
* PSAEAPPLSTATE — state records assigned to app engines
* PSAEAPPLTEMPTBL — temp tables assigned to app engines
* PSAESECTDEFN — sections
* PSAESTEPDEFN — steps
* PSAESTEPMSGDEFN
* PSAESTMTDEFN — actions

HTML Definitions:
* PSCONTDEFN — header record; last update time, etc.
* PSCONTENT — stores actual text in the HTML definition

Process Scheduler Related Tables:


* PSPRCSRQST
* PSPRCSQUE
* PSPRCSPARMS
* PS_PRCSRQSTDIST
* PS_MESSAGE_LOG
* PSPRCSRQSTTEXT
* PS_MESSAGE_LOGPARM
* PSPRCSRQSTXFER
* PS_CDM_LIST

All these tables should be in sync.

Configuring Report Manager - List/Explorer

Here I'll try to describe an approach to setup Report Manager - List/Explorer in


PeopleTools 8.48. This is not a compherensive explaination... It, however, may help
you understand basic approach.

Report Manager is a utility in PeopleSoft to view Reports from a different place than
Process Monitor. Navigation: Reporting Tools -> Report Manager. It has fours pages:
List, Explorer, Administration and Archives.
PSDSTSRV generates a message after a process gets posted in process monitor in
order to display reports in Report Manager - List and Explorer page. Hence
Integration Broker setup needs to be done and PUB/SUB App Server Processes
required to be up and running. Here are the configuration steps:
- Navigate to PeopleTools -> Integration Broker -> Integration Setup -> Service
Operations
- IB needs to be configured for four services

• PSRF_FOLDER_CREATE
• PSRF_REPORT_CREATE
• PSRF_REPORT_DATE_CHANGE
• PSRF_REPORT_DELETE

- Open Service Operation PSRF_FOLDER_CREATE and make it active in General tab.

- In Handlers tab add a handler and make it Active. Handler name might differ from
the screenshots's name but the Application Class definitons must match. Package
name is same as the service operation name.
- In Routings tab, add a routing definition and make it active. Not sure, but I think
only one routing definition must be active at a time... Sender and Receiver node are
the local nodes - in my case it is PSFT_HR... to confirm your local node, go to
PeopleTools -> Integration Broker -> Integration Setup -> Nodes and search for
node...

- Repeat the above activity for rest of the services PSRF_REPORT_CREATE,


PSRF_REPORT_DATE_CHANGE, and PSRF_REPORT_DELETE also. Configuration is
almost similar e.g., make the service active in general tab, Add a new handler and
make it active (class id would differ for all) in handler tab, Add a new Routing
Name and make it active in Routings tab.
You might want to navigate PeopleTools -> Integration Broker -> Integration Setup
-> Routings / Services to check your routings or Services definition and status.
Here completes IB configuration from PIA. A prior understanding of IB setup would
help troubleshooting or any kind of configuraiton understanding in case something
looks missing here.
Next step is to start the PUB/SUB App Server Processes... Once these server
processes are up and running, reports would get displayed in Report manager -
List/Explorer page.
Of course, basic IB setup is pre-requisite for the above activity to work. This includes
Gateway configuration (PeopleTools -> Integration Broker -> Configuration ->
Gateway), Gateway Setup Properties (PeopleTools -> Integration Broker ->
Configuration -> Gateway -> Gateway Setup Properties), Quick Configuration
(PeopleTools -> Integration Broker -> Configuration -> Quick Configuration) where
you need to Gateway URLs and IB domains are active.
*** queries are always welcome.