Monday, June 23, 2008

PeopleTools 8.48 – NEW FEATURES

BEA JOLT Session Pooling - JPOOL:


- BEA Jolt Session Pooling (JPOOL) is enabled by default
- BEA Jolt Session Pooling enables Web Server connections to be shared between user sessions, which reduces the usage of system resources (such as Threads and File Descriptors)
- web.xml is the file to control the JPOOL.
- joltPooling parameter value is “true” to enable JPOOL and “false” to disable JPOOL. Jolt Session Pooling is set per SERVLET
- When JPOOL is enabled, the user name in App Server client status is replaced by JPOOL_XXXX

{/init-param}
{init-param}
{param-name}joltPooling{/param-name}
{param-value}true{/param-value}
{/init-param}
{/servlet}
{servlet}
{servlet-name}psp{/servlet-name}


Jolt Failover and Load Balancing:

- Weighted Load Balancing

psserver=Host1:Port1#Wt,Host2:Port2#Wt,…

- Strict Failover with Weighted Backup

psserver=Host1:Port1#Wt[Host3:Port3#Wt,Host4:Port4#Wt],Host2:Port2#Wt,…


- Strict Failover with Sequential Backup

psserver=Host1:Port1#Wt[Host3:Port3;Host4:Port4],Host2:Port2#Wt,…


Application Server and Web Server Performance:

PSWATCHSRV
- PSWATCHSRV now detects and terminates processes that remain in the idle state during exiting or recycling
- PSWATCHSRV uses a new directory beneath the domain directory in which each server process writes a file before exiting (named by PIC) that PSWATCHSRV uses to determine if the process is idle

TIMEOUT for Processes Unable to Start
- Server processes hung during App Server startup will reach a TIMEOUT period and be SHUTDOWN
- TIMEOUT value is set in the psappsrv.ubx file and works in conjunction with the TM_BOOTTIMEOUT property

App Server Crash Log for UNIX
- In the event of a crash, a more detailed set of information is available in log files
- When the crash occurs, a directory named {servername}.{pid} is created under the server domain LOGS directory
- Information in the logs include: Request URL, Component, page and market names, Key lists for the CIs, and user action that triggers the request
- Using this information, one can find what the user was doing just before the crash

Preload Cache on Boot
- Select Pre-Load Cache Components
PeopleTools -} Utilities -} Administration -} Select Pre-Load Components

- Create Pre-Load Cache Project
PeopleTools -} Utilities -} Administration -} Create Pre-Load Project

- Configure App Server domain (psappsrv.cfg) to Pre-Load Cache

; Preload Cache projects for file and in memory cache
;PreloadFileCache=
;PreloadMemoryCache=


The file cache project is intended to be used for a new domain, where the file cache is not yet built. Prior to providing the domain for production use, use the Preload File Cache PSADMIN option to build the file cache containing the components specified in the project. The domain starts the PSAPPSRV process, builds the file cache, and shuts down.

The memory cache project is intended to be used during a server process recycle. When a new process starts to replace an old one, the new process loads memory cache based on the project specified by PreloadMemoryCache so that the new process will not have delays in the first few service requests. Because it is desirable to have new processes start as quickly as possible, there is a timeout (or limit) of 60 seconds for PreloadMemoryCache. That is, PreloadMemoryCache preloads as many definitions as possible before the timeout of 60 seconds.


Parallel Boot of Application Server
- Using a parallel boot enables you to have each server process within a domain start at the same time.

Percentage of Memory Growth
- This option makes the recycling of a server process dynamic as opposed to using a static Recycle Count. This parameter works in conjunction with the Recycle Count parameter in that the latter needs to be set to 0 for dynamic recycling to occur

;-------------------------------------------------------------------------
; Number of services after which PSAPPSRV will automatically restart.
; If the recycle count is set to zero, PSAPPSRV will never be recycled.
; The default value is 5000.
; Dynamic change allowed for Recycle Count
Recycle Count=0

;-------------------------------------------------------------------------
; Percentage of Memory Growth after which PSAPPSRV will automatically restart.
; Default is 20, meaning additional 20% of memory growth after the process has
; built up its memory cache.
; Uncomment the setting to use memory growth instead of Recycle Count at
; determining the restart point.
Percentage of Memory Growth=20

Sysaudit Report:

- New SYSAUDIT queries were added for Integration Broker and XML Publisher for PeopleSoft Enterprise.
- Additionally, there is new Record Audit Query as below:

RECORD-14 (Record Field Field Number has invalid value)

If the reported record was delivered by PeopleSoft or generated as part of an upgrade, contact the GSC.

Run the following SQL to determine which fields need to be updated:

SELECT FIELDCOUNT FROM PSRECDEFN WHERE RECNAME='X';

SELECT FIELDNUM FROM PSRECFIELD WHERE RECNAME='X' ORDER BY FIELDNUM;

The PSRECFIELD.FIELDNUM values should be numbered sequentially 1 through PSRECDEFN.FIELDCOUNT. If any value is skipped then renumber the FIELDNUM values accordingly.


Security Administration - Changes to PeopleTools Security:

User Level Security for Web Services:

- In previous releases, web service requests were authenticated at the node level. With PeopleTools 8.48, you can now secure web services at the user-level, providing greater flexibility and granularity.

LDAP Libraries Support:

- With PeopleTools 8.48, PeopleSoft no longer supports Sun Microsystems LDAP libraries on the following operating systems: Linux (SUSE and Red Hat), AIX, HP-UX PA-RISC.

- For these operating systems only, use the Oracle LDAP libraries. For all other operating systems, no changes are required as the Sun Microsystems LDAP libraries continue to be supported on all other operating systems.

Triple DES Encryption: Configuration Manager:

- Improved triple DES encryption has been implemented throughout PeopleTools in various locations, such as Configuration Manager and PSADMIN

- The improved encryption provides increased protection for sensitive text strings, such as passwords and connect passwords

- Except for the Configuration Manager, the changes are transparent and do not require any additional configuration steps

- If you use the PeopleTools 8.48 version of Configuration Manager to set the connect password on a workstation, then you will not be able to use previous versions of Application Designer or other development environment applications running on the same workstation

- Previous versions of PeopleTools do not recognize the connect password encrypted using the triple DES algorithm

- If you intend to support development workstations connecting to both PeopleTools 8.48 and previous versions of PeopleTools, you need to set the connect password using the Configuration Manager from a previous release of PeopleTools, not PeopleTools 8.48. PeopleTools 8.48 supports the encryption used in previous PeopleTools releases.

- If you experience signon issues using Windows workstation applications, such as Application Designer or Data Mover, from a previous release, and the workstation is also configured to connect to PeopleTools 8.48, then open the Configuration Manager from the previous release, change the connect password (and confirm), and click Apply

New Location for PSCipher Encryption Key on Web Server:

- The location of the psvault encryption key (key file) has changed. In previous releases, psvault was stored in {PS_HOME}\secvault\ on the web server. With PeopleTools 8.48, the new location for psvault on your web server would be as :

- OAS: {OAS_HOME}\j2ee\{COMPONENT}\applications\{APPLICATION}\psvault

- IBM WebSphere: {PS_HOME}\webserv\{Node_Server}\{APPLICATION}

- WebLogic: {PS_HOME}\webserv\{DOMAIN}\psvault

- On the application server, psvault is still stored in the {PS_HOME}\secvault\ directory

Password Expired Modification:

- The password expiration interface has been modified

- In previous releases, the Login Information section on the General tab of a user profile definition contained the Expire password at next login check box. With PeopleTools 8.48, the check box is now labeled Password Expired?

- The check box is disabled unless you select the Password Expires in X Days option on the Password Controls page

- If the password is expired, the Password Expired? check box becomes selected


Reference: PeopleTools 8.48 Release Notes

Thursday, May 8, 2008

Debugging Performance related issues.

There is no hard and fast rule for any trouble shooting. However, you may follow below guidelines to troubleshoot the perfornace related issues in your environment.
It requires debugging the following and in the specified order:
1. Database server
2. Application Server
3. WebServer
4. Network Bandwidth
5. PeopleSoft Application code itself
6. Memory of the boxes where the Appserver/Webserver booted.
7. Browser related
Step 1. Take multiple Database instances say PROD and TEST and try to execute SQL commits through front-end GUI, PIA. Observe the time complexities between the statements. The time taken should be relatively the same if there is any significant difference you know where the problem lies!
Step 2. Application Server tuning requires to set a lot of parameters in the PSAPPSERV.cfg file .
Check the follwing Parameters :
What is the size of the domain? small, medium, large ?
How many services booted for PSAPPSRV, PSQRYSRV, PSQUICKSRV ?Is there any core dump? Where does it fail? Get the error message from Appserv.log and the TUXLOG ?
Are the users power users or end users? If power users what kind of queries, reports and code do they kick off? Get an idea by actually reviewing those panels/pages and accordingly boot the required services in the Appserver. Use correct spawn values and TIMEOUTS. Check for any garbage collection. After trying all these try to boot the Appserver again with reset values and check the performance.
Verify the communication between the Appserver and the Database server.
Step 3. First thing I would recommend is to quickly boot an alternate webserver on a different box, installing PIA on top of it and point to the same Appserver to see if it still an issue. If the page gets a decent performance then you know the issue lies with that particular Weblogic install, get rid of it as it waste of time debugging it. Have the users point the URL to the correct install
Step 4. Load a third party application and compare it's performance wrt to PSFT.
Step 5. If 4 does not resolve anything then it could be bad Apps code which is causing this. Use Peoplecode debugger and debug the code.
Step 6. Make sure that there is decent swap size memory UNIX/NT/2000. On windows you turn on the task manager to see if there is a memory leak and/OR sudden spike in CPU usage. On UNIX you can increase the kernel parameters and increase the swap size to see if it makes any difference .
Step 7. There is not much you can do here other than how the performance is wrt IE vs Netscape etc. Most of these end up as PeopleTools product issue reports.
For RAS in users make sure the compression is always set to true in the configuration.properties

Wednesday, April 30, 2008

Monitoring Scripts

Here are Shell Scripts to monitor/start/stop PeopleSoft Application Server & Process Scheduler status:

Application Server:
appsrv-status.sh
parameter file

Process Scheduler:
prcs-status.sh
parameter file

Process Scheduler Start-Stop:
prcs-start-stop.sh
parameter file

Useful Unix Commands for PS Admin activity

**************************************************************************

du -skh * // summarize disk usage...

du -skh . // summarize disk usage...

// displays number of free disk blocks and free files of of PWD's file system

df -kh .

// displays number of free disk blocks and free files of all file systems

$df -kh

$ uname -a // print name of current system

SunOS frc25k8d13z1 5.10 Generic_118833-02 sun4u sparc SUNW,Sun-Fire-15000

// looks for the filenames starting with appsrv* in PWD (.)

$find . -name appsrv* -print

// looks for the filenames starting with appsrv* in directory DirName

$find DirName -name appsrv* -mtime +15 –print

//command to know the nature of the OS (SunOS/Solaris only)

$isainfo -b

example:

$echo "Welcome to "`isainfo -b`"-bit Solaris"





# Output can be directed to another program or to a file.

# send output to a file

command > /tmp/output.log



# redirect error output

command > /tmp/output.log 2> /tmp/errors.log



# send output to grep program

command PIPE grep "something"

(PIPE Command should pe replaced by vertical line... not able to publish PIPE command through blogspot)



# Date formatting... Grab the date from the system and format it, to a YYYYMMDD format

filename=`date +'%Y%m%d'`



# Scan a file in shell script

for VALUE in `cat value.dat`

do

echo "Value in file: " $VALUE

done




# Backspace key's settings... depends on emulator

$stty erase ^?

**************************************************************************

Wednesday, April 9, 2008

App Server Monitoring Script

Here I've created a shell script which can show you the status of large number of Application Server domains. Thought of, might be useful for some guys who are looking for the same kind of stuff...

we have two files here
1) param_list.txt -> list of app server domains
2) health.sh -> shell script that checks for the status of the app server domain


# Filename: param_list.txt
# Parameter List file
# Contains the list of environments
DOMAIN1
DOMAIN2
DOMAIN3
DOMAIN4
DOMAIN5
DOMAIN6
DOMAIN7
DOMAIN8


# Filename: health.sh
# Usage: ./health
# !/bin/sh
ENV_COUNTER=0
DATE=`date '+%Y%M%d_%H_%M_%S'`
OUTPUT_FILE='MONITOR_'$DATE

echo "*** Application Server Status as of `date`***" >> $OUTPUT_FILE
echo >> $OUTPUT_FILE
echo >> $OUTPUT_FILE

#while [ $ENV_COUNTER -le 9 ]
#do
for ENV in `cat param_list.txt`
do
TUXCONFIG=$PS_HOME/appserv/$ENV/PSTUXCFG; export TUXCONFIG
TUX_OUT_FILE=$ENV'_TUXOUT'
rm $TUX_OUT_FILE
echo pq | tmadmin -r > $TUX_OUT_FILE 2>&1
echo "*********************************************************" >> $OUTPUT_FILE
echo "*** Status Report for Application Server: $ENV ***" >> $OUTPUT_FILE
echo "**********************************************************" >> $OUTPUT_FILE
echo >> $OUTPUT_FILE
echo pq | tmadmin -r >> $OUTPUT_FILE 2>&1
#echo pclt | tmadmin -r >> $OUTPUT_FILE 2>&1
egrep "No bulletin board exists|ERROR" ${TUX_OUT_FILE} >/dev/null 2>&1
if test $? = 0
then
echo "App Server $ENV Status: DOWN"
echo >> $OUTPUT_FILE
echo "Application Server Status: DOWN" >> $OUTPUT_FILE
else
echo "App Server $ENV Status: UP"
echo >> $OUTPUT_FILE
echo "Application Server Status: UP" >> $OUTPUT_FILE
fi
echo "************************************************************" >> $OUTPUT_FILE
echo >> $OUTPUT_FILE
echo >> $OUTPUT_FILE
done
echo "*** End of Report ***" >> $OUTPUT_FILE

I am still working on it to add some more options like alerts, load, business etc... I will update it once done...

Comments are most welcome...

Cheers!!!


Monday, March 31, 2008

How to include graphics in the sqr report?

Using Graphics command we can include BOX, Vertical Lines or Horizontal Lines:
GRAPHIC ( { line_int_lit | _var }, { column_int_lit | _var }, { width_int_lit | _var } )
BOX { depth_int_lit | _var } [ rule_width_int_lit | _var [ shading_int_lit | _var ] ]
GRAPHIC ( { line_int_lit | _var }, { column_int_lit | _var }, { length_int_lit | _var } )
HORZ-LINE [ rule_width_int_lit | _var ]
GRAPHIC ( { line_int_lit | _var }, { column_int_lit | _var }, { length_int_lit | _var } )
VERT-LINE [ rule_width_int_lit | _var ]

Example: GRAPHICS (3, 5, 9) BOX (5, 0, 5)
Here in this exp Graphics (3, 5, 9), 3 and 5 are the coordinates of starting point and 9 is the width of the box.
BOX (5, 0, 5), 5 is the depth of the box, 0 is the width of the border and 5 is the number of shading in the box. (1 is the light shade and 100 are black.)

GRAPHICS (3, 5, 9) HORZ-LINE (20)
GRAPHICS (3, 5, 9) VERT-LINE (20)

In both of the above examples HORZ-LINE (20), 20 is the thickness of the line.

One can insert images with PRINT-IMAGE command.

Following is the code for this:
Print-image (1, 1)
Type=bmp-file
Image-Size= (20, 5)
Source= imagename.bmp

Source should be the complete file path of the image if the image resides in the same folder in which the sqr is then there is no need of full path only image name will work. The format of the image must match that of the printer you are using. These formats are:

1) Windows—bmp file images
2) PostScript printer or viewer—eps file
3) HP LaserJet—hpgl file images
4) HTML output—GIF or JPEG formats (gif file or jpeg file)

Thursday, February 21, 2008

Application Designer Quick Launcher

Create a file pscfgSetup.bat.bat. This will be your app designer quick launcher...

@echo off
rem ***************************************************************
rem pscfgSetup.bat
rem This script installs Peoplesoft client workstation on NT server
rem ***************************************************************
IF NOT EXIST "D:\PSOFT\DB_NAME_QUICKLAUNCH" mkdir "D:\PSOFT\DB_NAME_QUICKLAUNCH"
IF NOT EXIST "D:\PSOFT\DB_NAME_QUICKLAUNCH\LOGS" mkdir "D:\PSOFT\DB_NAME_QUICKLAUNCH\LOGS"
IF NOT EXIST "D:\PSOFT\DB_NAME_QUICKLAUNCH\CACHE" mkdir "D:\PSOFT\DB_NAME_QUICKLAUNCH\CACHE"
IF NOT EXIST "D:\PSOFT\DB_NAME_QUICKLAUNCH\nVision\INSTANCE" mkdir "D:\PSOFT\DB_NAME_QUICKLAUNCH\nVision\INSTANCE"
IF NOT EXIST "D:\PSOFT\DB_NAME_QUICKLAUNCH\temp" mkdir "D:\PSOFT\DB_NAME_QUICKLAUNCH\temp"

ECHO ******** Launching Application Designer *********

Start D:\PT848\bin\client\winx86\pscfg.exe -import:D:\QuickLaunchSettings\DB_NAME.cfg -setup
Start D:\PT848\bin\client\winx86\pside.exe

rem D:\PT848\bin\client\winx86\pscfg.exe -import:D:\QuickLaunchSettings\DB_NAME.cfg -setup

***********************************
D:\QuickLaunchSettings\DB_NAME.cfg would look like below
Alternatively you can export the configuration manager settings in a file D:\QuickLaunchSettings\DB_NAME.cfg using Configuration Manager -> Import/Export -> Export to a File

[PSTOOLS]
Start=REG_SZ=APPLICATION_DESIGNER
Language=REG_SZ=ENG
WindowWidth=REG_DWORD=640
WindowHeight=REG_DWORD=448
PanelSize=REG_SZ=CLIP
StartNavigator=REG_SZ=NO
PanelInNavigator=REG_SZ=NO
HighlightPopupMenuFlds=REG_SZ=NO
ShowDBName=REG_DWORD=1
MaxWorkInstances=REG_DWORD=250
TenKeyMode=REG_SZ=NO
DbFlags=REG_DWORD=0
Business Interlink Driver Directory=REG_SZ=
JDeveloper Directory=REG_SZ=
FontFace=REG_SZ=MS Sans Serif
FontPoints=REG_DWORD=8
[Startup]
DBType=REG_SZ=DB2ODBC
ServerName=REG_SZ=
DBName=REG_SZ=DB_NAME
DBChange=REG_SZ=TYPE
UserId=REG_SZ=OPERATOR_ID
ConnectId=REG_SZ=CONNECT_ID
ConnectPswd=REG_SZ=CONNECT_PASSWORD
AppName=REG_SZ=
AuthSrvName=REG_SZ=
[Cache Settings]
CacheBaseDir=REG_SZ=D:\QuickLaunchSettings\PS\CACHE
[Trace]
TraceSql=REG_DWORD=0
TracePC=REG_DWORD=0
TraceAE=REG_DWORD=0
TraceFile=REG_SZ=D:\QuickLaunchSettings\DB_NAME.TXT
[PSIDE\PCDebugger]
PSDBGSRV Listener Port=REG_DWORD=9500

[Crystal]
Trace=REG_SZ=NO
CrystalDir=REG_SZ=
TraceFile=REG_SZ=
CustomReports=REG_SZ=

[RemoteCall]
RCCBL Timeout=REG_DWORD=50
RCCBL Redirect=REG_DWORD=0
RCCBL Animate=REG_DWORD=0
Show Window=REG_DWORD=7

[Setup]
GroupName=REG_SZ=PeopleTools 8.48
Icons=REG_DWORD=2054
MfCobolDir=REG_SZ=

[PSIDE]
Version=REG_DWORD=8
ReloadLastProject=REG_DWORD=0
PromptOnSave=REG_DWORD=0
InsertIntoProject=REG_DWORD=2
ShowInUpgrade=REG_DWORD=0
InsertRelated=REG_DWORD=0
LockOnOpen=REG_DWORD=0
PromptForComments=REG_DWORD=0
ReuseLastComment=REG_DWORD=1
UnlockOnClose=REG_DWORD=0
UnlockUnchangedObject=REG_DWORD=0
CheckSyntax=REG_DWORD=1
WordWrap=REG_DWORD=1
FontFace=REG_SZ=Courier New
FontPoints=REG_DWORD=9
FontIsItalic=REG_DWORD=0
FontWeight=REG_DWORD=400
FontCharSet=REG_DWORD=0
NameResolution=REG_DWORD=0
Undo/Redo Buffer Size=REG_DWORD=10
Max. MRU Object=REG_DWORD=5
ReportOutputDir=REG_SZ=D:\temp
ValidateProject=REG_DWORD=0
ValidatePIA=REG_DWORD=1
ValidateShowRepeatedErrors=REG_DWORD=0
ValidateSpellCheck=REG_DWORD=0
ValidateWSRPCheck=REG_DWORD=0
ValidateCI=REG_DWORD=0
BrowserUseLocalNode=REG_DWORD=1
ProjExportDir=REG_SZ=D:\Project_Backups_DB_NAME
FindMRU0=REG_SZ=UpdatePersonalData
BrowserURI=REG_SZ=http://hostname:http_port/psp/site_name
PCUpgShowProg=REG_DWORD=1
PCUpgDiffLines=REG_DWORD=5
UpgFontFace=REG_SZ=Lucida Sans Unicode
UpgFontPoints=REG_DWORD=6
UpgDiffColor=REG_DWORD=0
UpgAddColor=REG_DWORD=25600
UpgDelColor=REG_DWORD=255
UpgHtmlOutput=REG_DWORD=0
UpgXmlOutput=REG_DWORD=0
UpgCompOldReptDir=REG_SZ=c:\psreports
LastDatabase=REG_SZ=DB_NAME

[Application Servers\APP_SERVER_DOMAIN_NAME]
ConnectionString=REG_SZ=APP_SERVER_MACHINE_IP:WSL_PORT
ProfileName=REG_SZ=Default

[Profiles\Default\Database Options]
SybasePacketSize=REG_DWORD=512

[Profiles\Default\Process Scheduler]
PS_HOME=REG_SZ=D:\PT848
CBLBIN=REG_SZ=
TEMP=REG_SZ=
OutputDirectory=REG_SZ=
Log Directory=REG_SZ=
CRWRPTPATH=REG_SZ=
DBBIN=REG_SZ=
SQRBIN=REG_SZ=
WINWORD=REG_SZ=
PSSQRFLAGS=REG_SZ=
PSSQR1=REG_SZ=
PSSQR2=REG_SZ=
PSSQR3=REG_SZ=
PSSQR4=REG_SZ=
Redirect Output=REG_DWORD=0

[Profiles\Default\nVision]
SpacerWidth=REG_SZ=
MacroDir=REG_SZ=
StyleDir=REG_SZ=
TemplateDir=REG_SZ=
LayoutDir=REG_SZ=
DrillDownDir=REG_SZ=
InstanceDir=REG_SZ=
TraceLevel=REG_DWORD=0

[Profiles\Default\IMAGE]

[Profiles\Default\Data Mover]
InputDir=REG_SZ=
OutputDir=REG_SZ=
LogDir=REG_SZ=

[Profiles\Default\Application Engine]
Disable Restart=REG_DWORD=0
Debug=REG_DWORD=0

Above configuation should be modifies as per the requirement.

OCI - Attach Block Volume to Windows VM

Tip: Although creating and attaching Block Storage to a Windows VM is pretty straightforward (OCI documentation is pretty good for that), th...