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.

Tuesday, October 23, 2012

PT8.52 on OL6.3 : “strings: '/lib/libc.so.6': No such file” (bis)

One and an half year ago, I wrote a blog entry giving a workaround about such error when installing Peopletools 8.51 on Oracle Linux 6.0, it was not certified combination at that time though, so no support.

Right now, there’s Peopletools 8.52 for quite a while and Oracle Linux 6.3. According to the certification matrix on My Oracle Support, it is certified.
However, when running a simple install, we are still facing this issue (that’s why I’ve wrote “bis” in the title).
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.7738
Executing setup.linux   -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file

Launching installer...

Preparing CONSOLE Mode Installation...
<...stopping Peopletools install...>

So, let’s have a try to apply the same workaround that I described in that other entry and see if it is still doing the trick.
[root@orion6 lib]# ln -s /usr/lib64/libc.so libc.so.6
[root@orion6 lib]# su - psoft

[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.14170
Executing setup.linux   -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

Preparing CONSOLE Mode Installation...

<...install Peopletools 8.52 successfully...>

We get the Peopletools installed painlessly. But later on, we need to invoke psconfig.sh to set the Peopletools environment :
[psoft@orion6 ~]$ cd $PS_HOME
[psoft@orion6 ptools852]$ . ./psconfig.sh
[psoft@orion6 ptools852]$ ls
ls: error while loading shared libraries: /lib/libc.so.6: invalid ELF header
[psoft@orion6 ptools852]$
[psoft@orion6 ptools852]$ vi psconfig.sh
vim: error while loading shared libraries: /lib/libc.so.6: invalid ELF header

Hmmm, not nice, is it ? So, let’s have a look what happens if we remove that file :
[root@orion6 lib]# ls -lrt
total 36
drwxr-xr-x.  2 root root 4096 Apr 16  2012 security
drwxr-xr-x.  6 root root 4096 Oct 23 09:27 terminfo
lrwxrwxrwx.  1 root root   14 Oct 23 09:28 cpp -> ../usr/bin/cpp
drwxr-xr-x.  3 root root 4096 Oct 23 09:29 alsa
drwxr-xr-x.  3 root root 4096 Oct 23 09:29 crda
drwxr-xr-x.  6 root root 4096 Oct 23 09:31 kbd
drwxr-xr-x.  2 root root 4096 Oct 23 09:31 lsb
dr-xr-xr-x.  6 root root 4096 Oct 23 10:05 modules
drwxr-xr-x. 45 root root 4096 Oct 23 10:05 firmware
drwxr-xr-x.  5 root root 4096 Oct 23 11:44 udev
lrwxrwxrwx.  1 root root   18 Oct 23 12:14 libc.so.6 -> /usr/lib64/libc.so
[root@orion6 lib]# rm -f libc.so.6
[root@orion6 lib]# su - psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ ls
bea  psft
[psoft@orion6 ~]$

It works much better. But then any further installation will fail again as explained earlier…
For the record, here’s the OS details (OL6.3) :
[psoft@orion6 ptools852]$ more /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
[psoft@orion6 ptools852]$
[root@orion6 ~]# uname -a
Linux orion6.phoenix.nga 2.6.39-200.34.1.el6uek.x86_64 #1 SMP Thu Oct 18 17:00:17 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@orion6 ~]#

Finally, there’s something looking much better. A link to an other library, a 64bit :
[root@orion6 lib]# ln -s /lib64/libc.so.6 /lib/libc.so.6
[root@orion6 lib]# su - psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ ls
bea  psft
[psoft@orion6 ~]$

You have a working environment, and the Peopletools installation is also working fine with this last symbolic link :
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.23315
Executing setup.linux   -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

Preparing CONSOLE Mode Installation...

===============================================================================
PeopleTools                                      (created with InstallAnywhere)
-------------------------------------------------------------------------------
<… continuing…>

So in first instance I was probably wrong last year, whereas it should be a symbolic link from /lib/libc.so.6 pointing to /lib64/libc.so.6.
----
But overall, we can also ask why this link is needed for the installation even though Peopletools claims to be a real 64bit…
It should be somewhere in the setup itself.
Just going a little bit further, having a look into ./Disk1/InstData/setup.linux, if you're searching for "libc", there's only one occurrence, and you'll see the libc.so.6 is hardcoded to be tested under /lib. Sic.
Here’s an extract:

nptl="`strings /lib/libc.so.6 | grep -i nptl`"
if [ "$nptl" ]; then
        debugOut "NPTL detected! checking for vulnerable JVM....";


Obviously, when running the strings command (the very first line from above), it aborts within the same error message that we get during the very first installation :
[psoft@orion6 InstData]$ strings /lib/libc.so.6 | grep -i nptl
strings: '/lib/libc.so.6': No such file
[psoft@orion6 InstData]$

So, apart from creating a link as earlier in this article, you may prefer to modify the setup.linux. At least it affects only the installer, not the system itself, so most likely better.
Remove the link created above and replace the given line in setup.linux.
However, since it's an binary file, you cannot just edit the file, modify and save.
       nptl="`strings /lib/libc.so.6 | grep -i nptl`"
must be replaced by 
       nptl="`strings /lib64/libc.so.6|grep -i nptl`" 
Note that luckily enough, whether we need two more characters for “64”, and we can remove two extra spaces to keep the same amount of bytes in the binaries file. 
Using sed command, it’s doable (do not forget to save the source file first!):
[psoft@orion6 InstData]$ cat setup.linux.bak|sed "s/\/lib\/libc.so.6 | grep -i nptl/\/lib64\/libc.so.6|grep -i nptl/">setup.linux.new

Now the script looks like :
# LD_ASSUME_KERNEL for Native POSIX Threading Library on some Linux distros
if [ `uname` = "Linux" -a -n "`which strings 2>/dev/null`" ]; then
        debugOut "checking for NPTL + JVM vulernability..."
        #check libc to see if it was compiled with NPTL
        nptl="`strings /lib64/libc.so.6|grep -i nptl`"
        if [ "$nptl" ]; then
                debugOut "NPTL detected! checking for vulnerable JVM....";


To be convinced this is working, here a run without the link :
[psoft@orion6 InstData]$ cp setup.linux.bak setup.linux
[psoft@orion6 InstData]$ cd ../
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.30517
Executing setup.linux   -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
strings: '/lib/libc.so.6': No such file

Launching installer...

Preparing CONSOLE Mode Installation...

===============================================================================
PeopleTools                                      (created with InstallAnywhere)
-------------------------------------------------------------------------------

===============================================================================
Welcome
-------

InstallAnywhere will guide you through the installation of PeopleTools 8.52.

PRESS <ENTER> TO CONTINUE: ^C
[psoft@orion6 Disk1]$

Now going for the new file:
[psoft@orion6 Disk1]$ cp InstData/setup.linux.new InstData/setup.linux
[psoft@orion6 Disk1]$ ./setup.sh
Setting temporary directory /tmp/IA.30741
Executing setup.linux   -DCOMP_NAME=orion6.phoenix.nga -DPS_UMASK=0002
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

Preparing CONSOLE Mode Installation...

===============================================================================
PeopleTools                                      (created with InstallAnywhere)
-------------------------------------------------------------------------------

===============================================================================
Welcome
-------

InstallAnywhere will guide you through the installation of PeopleTools 8.52.

PRESS <ENTER> TO CONTINUE:
<…skipped…>
===============================================================================
Installation Complete
---------------------

Congratulations. PeopleTools has been successfully installed to:

   /apps/psoft/ptools852

PRESS <ENTER> TO EXIT THE INSTALLER:
[psoft@orion6 Disk1]$ exit
logout
[root@orion6 lib]# su – psoft
[psoft@orion6 ~]$ . $PS_HOME/psconfig.sh
[psoft@orion6 ~]$ cd $PS_HOME/appserv
[psoft@orion6 appserv]$ ./psadmin -v
Version 8.52
[psoft@orion6 appserv]$

Of course (sic), the same applies to all the Peopletools patches as well… for instance:
[psoft@orion6 InstData]$ pwd
/nfs/software/PeopleSoftCD/PeopleTools/PT8.52/PeopleTools8.52.02/cd85202/Disk1/InstData
[psoft@orion6 InstData]$ grep libc setup.linux
        #check libc to see if it was compiled with NPTL
        nptl="`strings /lib/libc.so.6 | grep -i nptl`"
[psoft@orion6 InstData]$


In the end, whether this error can probably be ignored, it should be better to have this cleaned definitely from within the installer (or why it is missing from the OS level ?).

Nicolas.

Wednesday, October 10, 2012

Peoplesoft and virtualization templates

In a previous article of mine about Peopletools 8.53 RVP, I was asking about PSOVM continuity.
I think I overlooked an important document, I named the Prerelease notes (last update 6-OCT-2012).

Oracle's PeopleSoft PeopleTools 8.53 Prerelease Notes [ID 1494929.1]

1) Out there, we can read an entire chapter dedicated to PSOVM. However, a surprising statement is also there.
page 15 : "PeopleSoft will release production class templates for use on Exalogic-based machines and non-Exalogic-x86 machines"
Production use ? Really ?
Whether I'm really a fan of PSOVM for learning, study, demo and maybe for small development and test environment like for upgrade, I'd be rather skeptical about implementing it for production use.
What about all the given parameters settings ? Is it well tuned ? We also can spend a lot of time by adjusting all of these.
What about the environment settings ? It could be rather annoying to be stucked on something we did not set on our side, especially for production use where shops may have their own constraints, secure environments, audit security and so forth.
What about the size of the database ? Not sure how big organization will fit in such environment.
What about reporting, application and process scheduler size ?
...
Well, there's also the sentence "Dynamic scaling is incorporated into the template design, where middletier components can be added or removed quickly in an environment to provide elasticity to the system", also not sure how far will the elasticity look like.

Many questions can be asked by this one small statement. Do Oracle people want to "impose" their normalization ?

2) Speaking about Peoplesoft templates, something else page 43 of the same document is about Update Manager : "Making it quick and easy to download a current PeopleSoft Update Image with the VirtualBox technology"
You know, that coming new tool to apply only some desired patches without the need to apply all the prerequisites.
It will work through Peoplesoft templates for VirtualBox. Not that VirtualBox is a bad tool, not at all – it works perfectly fine, but build a production solution on it ? Because, yes, it would be part of production solution. Indeed, it will be used for patching, and in the end, production patching. Not for a play game.
Having a production on OVM is a different story - bare-metal VM - rather strong solution, but on VirtualBox which has to be installed on top of an OS ?
So, first have to find a server to install VirtualBox on, robust enough to host most likely 2 Peoplesoft templates (1 database server, 1 app/pia/batch server) to have good response time and performance wise. This has not to be installed on a personal computer or a laptop, this should be a proper and strong solution. It means on a dedicated server as part of the production infrastructure.
And again, we, as customer, have to work within the given Oracle environment with their own standard, policies...

So, first PSOVMs on a dedicated server (because of being a bare-metal virtualization software), then templates for VirtualBox on dedicated server as well (do not being disturb by some other tool or utilities), it will really become a nightmare to manage version between all these delivered environments.
Well, we could imagine a solution to build a server hosting OVM for the PSOVMs, and have an additional virtual machine with its own OS hosting itself VirtualBox to deploy the templates for Update Manager.
Of course, it will require a big server (strong CPUs, lots of RAM and disk spaces), and also a 2 layers of virtualization. But since Oracle is already suggesting it in the other way around (please see here), then what's really wrong ? Even though we don't share that point of view...

Virtualization is good, but is too much virtualization necessarily good as well ?
I feel like Oracle wants to take more and more control of what happens and how customers should work. Why do not directly say : "give us your environment in our cloud, we'll do all for you".

Don't take me wrong, I'm not against the changes, but adding layers and layers of tools in Peoplesoft architecture won't make it clearer and easier to manage as well as to come in.

So far on a Peoplesoft project, we have a system administrator, a database administrator, a Peoplesoft administrator, a sometimes web administrator. Right now if it really goes that way, we certainly have the need of one more resource, a virtualization software administrator. Ok, most likely some tasks can be done by one administrator. But still, we have certainly some additional cost of infrastructure.

I’d be keen to know how many shops will implement these solutions.

Nicolas.

Tuesday, October 09, 2012

Pluggable database and Peoplesoft architecture

After the announcement during the OOW2012, we know a very little about 12c, enough to make assumption though.
It is not coming this year, rather late next year, but one of the most important change will certainly be on architecture level, called "pluggable database".

What does it mean ?
Well, not very detailed yet, basically one database (the container, containing the core of Oracle data dictionary) and multiple databases on top of it (the pluggable databases containing application's code). It saves a lot of spaces, and over all a lot of resources.
That's a huge difference compared to the existing Oracle database architecture, one-to-one.

For the Peoplesoft people, it can remind similarity with existing Peoplesoft architecture (based on tables PSDBOWNER, PSACCESSPRFL and on users accessid and symbolicid).
For decade, we are able to install multiple application (HCM and FSCM for instance) in one single database. It shares the database binaries, engine, tablespaces... In the end, you have two separate applications with its own metadata, all in one database.
Good enough, but all is managed by the application code.
However, since each application has its own constraints and usage (one will be more batches oriented, the other more transactional), it was rather painful to tune the database properly. Hey, all is based on one and only one database engine, using same init parameters (it seems it will be different)... So, whether it is still possible within the latest Peoplesoft version, it is strongly a not recommended way of work.

Seeing that Oracle takes the way of consolidation to have multiple databases in one will be a real improvement for the Peoplesoft shop hosting several applications. Having more than one applications in a database won't be managed by the application as it was by the past (as said above), but by the database. Much stronger design, most likely more efficient, more secure and certainly more "tunable".
Especially nice when databases are already “connected” within messaging mechanism, probably more understandable.

The parallelism we can do between the existing People architecture and the coming database architecture, one database (the container), multiple applications (the pluggable databases), make me say that Peoplesoft was in advance... just not on the same level.

It's promising, really looking forward into it.

Nicolas.

Tuesday, October 02, 2012

Did you say a VM in Oracle VM Server in VirtualBox ?

… or two layers of virtualization.

First of all, a quick reminder. VirtualBox must be installed on top of an OS whereas Oracle VM Server is a bare-metal and then it has to be installed instead of the OS, making the machine dedicated to the virtualization.
It’s well known that bare-metal virtualization software like Oracle VM or VMWare vSphere (or vSphere Hypervisor on free market) is much more robust and compliant for enterprise use.

As far as I understood from several Oracle people across forums or threads like as this one, it was not supported... not recommended... not stable... well, not advisable at all, do not say ridiculous way of thinking. Especially that way, having Oracle VM as a VM in VirtualBox…

However, on my side, I did it several years ago when Peoplesoft started to deliver templates.
Indeed, being in lack of free server, I integrated them in VMWare Server installation (software decommissioned since then, but the principle was the same as VirtualBox) : I made an Oracle VM Server in a VMWare virtual machine to be able to test the Peoplesoft templates. Have a look there, especially at the picture :
http://gasparotto.blogspot.nl/2009/11/oracle-vm-template-for-peoplesoft-in.html
Of course, there was absolutely no intend to use it for production or development, only for learning, training and demo purpose. I insist, I was and I’m not speaking on behalf of any company, just in my name, and that was only for learning purpose. Which is totally different than if I was speaking for Oracle.

Obviously, things are changing...

I'm probably very late on this, but I recently discovered that Oracle was providing an Oracle VM Server template for VirtualBox (http://www.oracle.com/technetwork/server-storage/vm/template-1482544.html).
Even though this is mentioned that’s only for demo with limited functionalities (no Windows guest), it really means you have now officially Oracle VM Server running in VirtualBox... What a surprise !
And the picture page 2 of the documentation is clear enough.

Well, you may argue the schema given by Oracle is nicer than mine, but they are very similar (or close to each other), aren't they ?

Ok, that's good for all, again training is important and many people were actually desperately trying to translate delivered Oracle VM templates in other virtual machine software than Oracle VM, a much lighter one and especially not on a dedicated machine such as laptop.
In the end, it was rather obvious, since VirtualBox is Oracle, why not do it themselves on their own products ?

What’s the real intend behind it ? Making Oracle VM Server known by more people ? Making it more popular ? I don’t know, but I'd say there's a dark side of this.
Since this is Oracle which gives that way of use, it will be more and more generalized. And having 2 layers of virtualization, a virtual machine (your template running on Oracle VM Server) in a virtual machine (your Oracle VM Server running on a VirtualBox) could make the entire system slow and overall (very) unstable.
Does it not sound like... Inception... a dream in a dream... ? Take care do not fall in Limbo...

Customers must stay on the proper usage of the way it should : learning purpose only.
Nothing is less sure though... as in the movie mentioned above, unplanned thing may always happen... and we never know if this is for the better... The spinning top is launched, let's see if it will stopped to spin.

Nicolas.

addendum : it was already discussed in this thread on OTN Peoplesoft OVM Forum more than 2 years ago, and as I said “I used those Peoplesoft OVM images in Oracle VM hosted by VMWare... Yes, I know, double virtualization level”… so, nothing really new… just coming from Oracle now.