Thursday, October 23, 2014

PeopleSoft's PS_HOME evolution

One of the new features of PeopleTools 8.54 is the portability of the PS_HOME directory. Before going into the analysis of its benefits, let's have a look back to how  PS_HOME has evolved.

One Directory for Everything

PS_HOME is the name of the environment variable holding the PeopleSoft installation directory. Before PeopleTools 8.50, the full PeopleSoft installation was done on a single directory, including PeopleTools binaries, application external files, customized files, logs, etc. Also, in those installations using WebLogic and WebSphere, the J2EE deployment was normally located at PS_HOME/webserv (this was not the case for Oracle Application Server, which its their own directories for that purpose).

The main issue with this approach is that the Ops team would normally go nuts when they saw how the directories were structured in PeopleSoft. Very often, keeping read-only binary files and always changing log files on the same directory structure would not comply with the internal policies in many organizations. With some degree of manual configuration and symbolic linking, this issue could be tackled, but the solution increased the maintenance costs, particularly when a PeopleTools or application upgrade came into the scene.

Splitting Logic and Data

PeopleTools 8.50 provided the ability to split the PS_HOME directory contents into three different places:
  • PIA_HOME: contained the J2EE deployment, equivalent to the former PS_HOME/webserv directory.
  • PS_CFG_HOME: contained logs, traces and search indexes. Basically, any file created, modified or deleted at run time.
  • PS_HOME: contained the binaries and external programs such as Crystal Reports. Cobols and SQRs.
This was a major improvement. Now the binaries could be kept as read-only except when an external program was migrated. Moreover, the monitoring of disk space could now be restricted to PIA_HOME and PS_CFG_HOME.

PeopleTools and Applications in Different Rooms

PeopleTools 8.52, together with the PeopleSoft 9.1 applications, introduced a new directory: PS_APP_HOME. This directory contained exclusively the application binaries and external program files, leaving PS_HOME just for the specific PeopleTools files.

This approach allowed a simpler maintenance of the product. For instance, you could use the same PS_HOME for both PeopleSoft HCM and FSCM, keeping the specific application files in their own PS_APP_HOME directories. This way, when you applied a PeopleTools patch on PS_HOME, it would be available for all applications.

Clearly Identify your Customizations

The natural evolution of PS_APP_HOME was PS_CUST_HOME, which was introduced by PeopleTools 8.53. This new directory was meant to hold all the customized external files. This helped not only in maintaining PS_HOME and PS_APP_HOME almost readonly (they would be updated only by PeopleTools or application upgrades), but also to clearly identify the customizations, which is a tremendous gain when performing an application upgrade.

And now... Portable PS_HOME

PeopleTools 8.54 has gone a step further in simplifying the maintenance of the PeopleSoft installation. One of the issues we still faced with PS_HOME is that we could not move it to a different directory without facing issues, as there were some symbolic links and files containing absolute directory references within it.

This could be solved by adjusting the symbolic links and directory references, but it was a time consuming process. The alternative was to reinstall PS_HOME from the delivered install images, but in the best scenario, this could take a couple of hours.

In the latest PeopleTools release, all symbolic links were removed, and all the directory references are relative, not absolute. This allows the system administrator to easily move the directory to another location, or even to another server. Actually, you may not even need to move it. Just mounting the PS_HOME directory installed in one server into all the different PeopleSoft servers would make the trick, so you only need to apply changes in a single place.

I'm sure System Administrators and Installers will love this new feature. At BNB we are also analyzing other potential uses for it, but let me keep the secret for the moment ;).

Tip: One of the symbolic links removed in UNIX/Linux platforms was the PS_HOME/appserv/psadmin link. If you have any maintenance script to boot or shutdown services using this path, you will need to adjust it to the source location: PS_HOME/bin/psadmin, or just call psadmin after executing


Frans Wilbrink said...

Again, a great blog Javier :)

Javier Delgado said...

Thanks Frans!

Qa Tools said...

Nice article i was really impressed by seeing this article,
it was very intresting and it is very useful for People Soft Learners.. We are providing one of the best QA Online training in worldwide.

ravs said...

Good Explanation! We are staring on Tools Only upgrade and it's taking time to get around all the folder structure..

Drogo said...

Javier, Nice article. I've a question about PS_APP_HOME. How do you handle applying a tax update or a application patch involving SQR / Cobol changes e.t.c. If you install PS_APP_HOME once, doesn't it affect all environments sharing that PS_APP_HOME?

Do you think merging both PS_CFG_HOME & PS_APP_HOME into one would solve this problem?

Javier Delgado said...

Hi Drogo

Well, you can still have different PS_APP_HOMEs for each environment. Without the binaries that are now placed in PS_HOME, the data volume is relatively limited. You can also use the same directory for PS_CFG_HOME and PS_APP_HOME, but you would lose one of the advantages of the separation, which is having dynamically sized files such as logs and traces placed in a different directory (and potentially a different file system).


Drogo said...

Thank you J for quick response. Now I understand it better. For e.g, if there are two environments HRDMO, HRDEV, then this is what the directory structure look like:

/opt/psoft/8.54 --PS_HOME
/opt/psoft/apptools/HRDMO - PS_APP_HOME for DMO
/opt/psoft/apptools/HRDEV - PS_APP_HOME for DEV
/opt/psoft/cfg/HRDMO - PS_CFG_HOME for DMO
/opt/psoft/cfg/HRDEV - PS_CFG_HOME for DEV

HRDMO, HRDEV directories are repeating. Is there any other better approach?