Tuesday, October 30, 2012

Peopletools patch 8.52.11 : a temp directory for process scheduler

Just installed the Peopletools patch 8.52.11 (released on October, the 16th 2012) on Oracle Linux 6.3.
When configuring the process scheduler, it raises a warning about a temporary directory…
----------------------------------------------
Quick-configure menu -- domain: hcmdemo1
----------------------------------------------
      Features                      Settings
     ==========                    ==========
  1) App Engine        : Yes    6) DBNAME     :[hcmdemo1]
  2) Master Scheduler  : Yes    7) DBTYPE     :[ORACLE]
                                8) PrcsServer :[PSUNX]
                                9) UserId     :[PS]
                               10) UserPswd   :[PS]
                               11) ConnectID  :[people]
                               12) ConnectPswd:[peop1e]
                               13) ServerName :[]
                               14) Log/Output Dir:[%PS_SERVDIR%/log_output]
                               15) SQRBIN     :[%PS_HOME%/bin/sqr/%PS_DB%/bin]
                               16) AddToPATH  :[]

      Actions
     =========
  3) Load config as shown
  4) Custom configuration
  5) Edit environment settings
  h) Help for this menu
  q) Return to previous menu

HINT: Enter 5 to edit DBNAME, then 3 to load

Enter selection (1-16, h, or q): 4

Warning:  no changes detected, some configuration files will not be updated.
Loading configuration...

==============WARNING!================
The domain does not appear to have a TMP directory set in the configuration.
Your environment will inherit the value of TMP from the parent environment
==============WARNING!================
Domain configuration complete.


This has never been there till this patch. According to the readme of the patch this is probably something related to a bug fix (thanks to Michel for pointing this out in the thread I created) :
14301709 : IDENTIFY A DIRECTORY TO WRITE INTERMEDIATE FILES INSTEAD WRITING INSECURE TMPDIR
Post Windows 2008 Server, Windows appends the session ID with the User Temp Path which is deleted once user logs off. This causes certain sub-process which relies on Windows Temp Path like Pagelet Wizard to crash. This resolution would add the possibility of other non-volatile Temporary Path Location like {LOGDIR}.


However it is also there on one of my Windows 2008 R2 SP1 server even though I tried to change my user temp variable outside my user default location:
----------------------------------------------
Quick-configure menu -- domain: hcmdemo1
----------------------------------------------
      Features                      Settings
     ==========                    ==========
  1) App Engine        : Yes    6) DBNAME     :[hcmdemo1]
  2) Master Scheduler  : Yes    7) DBTYPE     :[ORACLE]
                                8) PrcsServer :[PSNT]
                                9) UserId     :[PS]
                               10) UserPswd   :[PS]
                               11) ConnectID  :[people]
                               12) ConnectPswd:[peop1e]
                               13) ServerName :[]
                               14) Log/Output Dir:[E:\apps\ptools852\appserv\prcs\hcmdemo1\log_output]
                               15) SQRBIN     :[E:\apps\ptools852\bin\sqr\ORA\binw]
                               16) AddToPATH  :[C:\Windows;C:\Windows\SYSTEM32]
                               17) DBBIN      :[E:\apps\oracle\product\11.2.0\client_32bit\BIN]
                               18) Crystal Path:[.]

      Actions
     =========
  3) Load config as shown
  4) Custom configuration
  5) Edit environment settings
  h) Help for this menu
  q) Return to previous menu

HINT: Enter 5 to edit DBNAME, then 3 to load

Enter selection (1-18, h, or q): 3

Warning:  no changes detected, some configuration files will not be updated.
Loading configuration...

==============WARNING!================
The domain does not appear to have a TEMP directory set in the configuration.
Your environment will inherit the value of TEMP from the parent environment
==============WARNING!================
Domain configuration complete.

I’m still looking for a way to workaround the warning. I don’t like warning that I don’t know exactly where they come from and what they mean exactly.

All the ideas are welcome.

Nicolas.

Finally the answer is here :
E-AS: Windows 2008 TEMP Directory and the Use of XSL Transformation PeopleCode API [ID 1486978.1]
Special thanks to Yvonne Hogan who sent me an email about that.
To make it short, for the existing domains, add the following two lines containing temp reference in the .ubx file of your domain ($PS_CFG_HOME/appserv/prcs/<your_domain>/psprcsrv.ubx) :
*PS_ENVFILE
TEMP={LOGDIR}{FS}tmp
TMP={LOGDIR}{FS}tmp

And magically, warning just gone. It will create subdirectory like $PS_CFG_HOME/appserv/prcs/<your_domain>/{LOGDIR}/tmp, most of the time {LOGDIR} is named LOGS.
It works for Windows as well as for Linux.
If you want to make it working for the new domain, do it also in the file $PS_HOME/appserv/prcs/psprcsrv.ubx.

It seems it will be solve in Peopletools 8.53 and back ported in PT8.52.

Thanks again to Yvonne !

Nicolas.

1 comment:

Michael Wang said...

It really saved my day. Thanks!