Jethro List: Disable Restart

For my first item on the Jethro List, I want to suggest changing the default on the “Disable Restart” option for an Application Engine program.  I think it should be checked by default.

Just to introduce the Jethro List: these posts are a list of good influences on the PeopleSoft world that I would like to make.  Hopefully, they are good suggestions that I would love to get noticed and implemented.  We’ll see if it goes anywhere.

So, what about the Disable Restart option?

The default right now as of PeopleTools 8.52 is that the Disable Restart is unchecked.

The problem is that the first time your new program abends or crashes, you have extra work to do.  You have to either restart the same process instance or delete the AERUNCONTROL row.  You can see the PeopleTools Tip — App Engine Restart If you get … post for more info on fixing the problem.

Why should it default to checked?  Because you have to design a program to be restartable before the user should be able to restart it.  Here are some of the changes that you need to make:

  • Control the Commits: The program will restart at the last commit.  So, you need to pay attention to where you have the program commit.  I believe that when left alone, it will only commit at the end.
  • Set the Do Select types: The default Select/Fetch will fail if the program crashes in the middle of the selection.  You need to choose either Restartable or Reselect.
  • Track the Progress: The program needs to save which row it is processing so that it can restart at the same place.  You either need to add a processed flag to each row, or save the last row processed where you can process only rows greater.

So, that’s why I wish I could change this default option.

Packt Celebrates Their 1000th Title

You may want to sign up on Packt’s website!

From what I understand, Packt is publishing their 1000th book on September 30th.  To celebrate, they will be giving out two free surprises.  I don’t know what the surprises are, but they have been good to me so far.

Here’s the official text:

To celebrate this event with our readers, we’d be gifting them with not one but two assured surprises which would be revealed to them by the 30th of September, 2012. Anyone who is already registered or signs up for a free Packt account before 30th September 2012 is guaranteed a surprise gift.

So, head on over to their website:  http://www.packtpub.com/

Troubleshooting Oracle Database Install

I have been trying to install the Oracle Database on Windows 8, and I keep getting this error message:

If you can’t see the image, here’s what it says:

File not found  c:\oracle\dbhome_1\owb\external\oc4j_applications\WFMLRSVCApp.ear

Then, the installer hangs at setting a value in the registry.

The specific message is “updating registery key ‘HKEY_LOCAL_MAHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1′”.  It stops between 72% and 73%.

I read some where that this is probably caused by bad installation media.  So, the first thing to check is whether the zip files that I downloaded were valid.  I found that Oracle has a Patch Metadata link that points to an XML file containing an md5sum for the files:

I used md5sum to verify that the files that I downloaded where complete:

Here’s a script that you can use if you downloaded the exact same files that I did:


echo "976634087BDC54C72E8DD187049D35C6 p10404530_112030_WINNT_1of6.zip" | md5sum -c
echo "F20265A371F737C43713E1E7F3440C2C p10404530_112030_WINNT_2of6.zip" | md5sum -c
pecho "8CC4F1132D1DD4FA36B4A13CFC24B9E6 p10404530_112030_WINNT_3of6.zip" | md5sum -c
echo "B84E2E894DAC29B96B7FF57C77A6E1C3 p10404530_112030_WINNT_4of6.zip" | md5sum -c
echo "710B7EC98AD69E51F02B5E73A9825771 p10404530_112030_WINNT_5of6.zip" | md5sum -c
echo "86D0422263F9F9464EE2E0222D10B3B4 p10404530_112030_WINNT_6of6.zip" | md5sum -c

Everything checkout okay, so I proceeded to the next step.  I read in one of the comments on the download, that someone had to unzip each file individually into it’s own directory, and then combine them all.

So, I extract each zip file into it’s own directory…

Once, they were extracted individual, I copied the contents of each directory up one level:

This leaves a complete installation directory:

And, I can launch the installer from the database directory within that:

I still ran into this error.  Perhaps it is because I didn’t delete the directory where I had tried and failed before.

I hit continue several times, and finally, it finished!

Before completing my PeopleSoft installation on this image, I ended up migrating to a new laptop, and I decided to start over with the new laptop.  On my second attempt, I extracted each zip file to it’s own folder.  On that install, I receive no errors.

Resources

Thoughts: PeopleSoft on ARM?

This isn’t really informational as much as just a thought.  I ran across this article the other day:

Engadget: ARM server running on pedal power demoed at Red Hat Summit

The thing that caught my eye about this article is that they were suggesting using ARM processors on server-based hardware.  So, will PeopleSoft ever run on ARM processors?  As far as I know, PeopleSoft is only certified to run on 64-bit Intel processors currently.

The reason that it is significant to me is that I was considering using a tablet as my primary workstation.  I had my eye on an ASUS Transformer Prime.  It has a Quad-Core Nvidia Tegra 3 processor and 1 GB of RAM.  It is portable as a tablet, but it also has a keyboard where I could use like a regular laptop.  I wanted to research to see if I could find a USB external display or mini-projector of some sort to get more screen real estate while sitting at my desk.  It runs Android for the operating system, but I have seen instructions on running Ubuntu on top of Android.

One of my requirements for my laptop is to be able to run PeopleSoft for experimenting and such.  Currently, VMware is my tool of choice and I use a virtual machine.  While the 1GB is probably too light for running PeopleSoft on a virtual machine, the big hang-up is that the Nvidia Tegra is an ARM processor.  Even with VMware, I couldn’t get PeopleSoft to run on ARM.  I would have to find some sort of Intel-emulator program.

Still maybe there’s hope for one day running PeopleSoft on an ultraportable device.  What are your thoughts?

Resources

PIA needs JRockit!

The other day, I was trying to finish up an install for someone, and ran into a problem.  I couldn’t get psadmin to create a new PIA domain.  Finally, thanks to OTN, I found that I had to have JRockit JDK set as the Java environment for WebLogic.  Note that this was to create the domain not just start the domain.

Logs

If there was one thing I could change about this whole thing, it would the logs.  I spent so long on this issue just because I had no clues.  We have got to have more logs to look at for clues!  If am missing something, please comment below and point it out.  If not, Oracle, please add some logging — at least maybe print out what JVM it is using.

This is the first log file that I found: <PS_CFG_HOME>/webserv/piainstall_<domain name>.log

Install Action : CREATE_NEW_DOMAIN

Creating Domain...

Deploying Web Applications...

Deploying WebLogic Extension files...

Deploying PeopleSoft Site files...

Deploying PeopleSoft Site Doc files...

Completed.

PS_CFG_HOME: /psoft/pscfgs/fnprd

PIA_INSTALL_FAIL

This is the second log: /tmp/piaInatallLog_<timestamp>

Install Action : CREATE_NEW_DOMAIN

Creating Domain...

Deploying Web Applications...

Deploying WebLogic Extension files...

Deploying PeopleSoft Site files...

Deploying PeopleSoft Site Doc files...

Completed.

Also, in <PS_CFG_HOME>, I found the  wlspiainstall.properties which included all of the settings that it was using to create the domain.

Avoiding the Error

The best way to avoid this error is to make sure that you set the JAVA_HOME to your JRockit installation before installing WebLogic.  So, assuming that you have JRockit installed at /opt/jdk, you can run something like this:

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
which java
java -version

Your output should look something like this:


$export JAVA_HOME=/opt/jdk
$export PATH=$JAVA_HOME/bin:$PATH
$which java
/opt/jdk/bin/java
$java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Oracle JRockit(R) (build R28.1.0-123-138454-1.6.0_20-20101014-1350-linux-x86_64, compiled mode)

If it looks like this, you have something wrong.  This is open source OpenJDK JVM:


$which java
/usr/bin/java
$java -version
java version "1.7.0_03"
OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

Or, this is the Sun JDK, which caused me problems:


$java -version
java version "1.5.0_30"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_30-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_30-b03, mixed mode)

Now, once you have that correct, you should run the Weblogic install from that command-line session.

Fixing the Problem

Now, my problem was that Weblogic had already been installed.  Apparently, it was using the Sun JDK instead of the JRockit JDK.  Normally, I would look in the <PS_CFG_HOME>/webserv/<domain>/bin/setcmd…. file to change the setting.  But, I don’t even have the domain installed at this point.

I found that I could set the JAVA_HOME and JAVA_VENDOR variables in the <weblogic home>/wlserver_10.3/common/bin/commEnv.sh file.  Note that the JAVA_VENDOR was required.  If it is not set, some of the logic later on in the script overwrites the JAVA_HOME.

So, I added these two lines near the top between the comments:


#
#*****************************************************************************

JAVA_HOME=/opt/jdk
JAVA_VENDOR=Oracle

#*****************************************************************************
# sub functions
#*****************************************************************************

After that, my PIA built with no problem.

Resources

OTN: unable to create Web Server Domain

Sudo Plus X11 Forwarding

I had trouble the other day running the Oracle installer in GUI mode over SSH.  I had the -X option set, and I could run a GUI program as myself.  The problem was that I couldn’t run the GUI program after I used sudo to change to my oracle user.

I found the answer on the “Bag of Tricks” blog:

Bag of Tricks: x forwarding and sudo for oracle installs

To build upon that, I turned it into a script.  The script adds the x cookie, runs an interactive bash, and finally removes the cookie at the end.


#!/bin/sh

user=$1
if [ -z "$user" ]; then
 user=<default user>
fi

displayNum=`echo $DISPLAY | sed -e 's/^.*://' -e 's/\.[0123456789]*//'`
echo "Display # = $displayNum"
cookie=`xauth list | grep ":$displayNum"`
echo "Cookie = $cookie"
cookiename=`echo $cookie | sed 's/\s*MIT-MAGIC.*$//'`
echo "Cookie Name: $cookiename"
echo "user = $user"
sudo -u $user bash -c "xauth list; xauth add $cookie; bash; xauth remove $cookiename"

I put the script in my ~/bin directory and called it ms (my-sudo).  That way I could call it easily.

I hope someone finds that usedful.  Any comments are welcomed.

HP_RTBC:RTBCMain/HP_RTBC_INSTALL_DEPT_SEL Issues

After installing a series of updates (852825, 872267, 872523, 874418), I ran into a SQL error.  I am not sure which update it was, and actually, the find definition references pointed to 808749, which is HRMS 9.1 Bundle #1.

As I am not able to open a ticket on this issue currently, this is what I did to fix the problem …

I noticed this error in one of my CI logs.

SQLExec: 3 select list items in parameter list, but SQL has 1 select columns. (2,124) HP_RTBC.RTBCMain.OnExecute  Name:Job_RTBC  PCPC:4183  Statement:89
Called from:HP_RTBC.RTBCMain.OnExecute  Name:MainProcess  Statement:9
Called from:JOB.LASTUPDOPRID.SaveEdit  Statement:3(2,124)

As a result, I couldn’t hire anyone.  The problem appeared to be this line:

SQLExec(SQL.HP_RTBC_INSTALL_DEPT_SEL,
        &rsJobTmp(&i).JOB.SETID_DEPT.Value,
        &rsJobTmp(&i).JOB.DEPTID.Value,
        &rsJobTmp(&i).JOB.EFFDT.Value,
        &DeptUseEncumbrances,
        &ProcOption,
        &HP_AUTO_RTBC);

I decided to inspect the SQL, and I found this code:

SELECT USE_ENCUMBRANCES
FROM PS_DEPT_TBL A
WHERE A.SETID=:1
AND A.DEPTID =:2
AND A.EFFDT = (
SELECT MAX(B.EFFDT)
FROM PS_DEPT_TBL B
WHERE B.SETID=A.SETID
AND B.DEPTID = A.DEPTID
AND B.EFFDT<=%DateIn(:3))

That’s the problem.  The SQL only has 1 field in the select list (USE_ENCUMBRANCES), and the PeopleCode expects 3 for the 3 variables (&DeptUseEncumbrances, &ProcOption, &HP_AUTO_RTBC);

I did a little research, and as best I could tell, this PeopleCode is the only one that uses the SQL definition.

I couldn’t do a Find Definition References on the Application Package PeopleCode, but I could do a SQL query to determine which projects it was involved in:

SELECT * FROM PSPROJECTITEM
WHERE OBJECTVALUE1 = 'HP_RTBC'
AND OBJECTVALUE2 = 'RTBCMain';

These are some of the updates that I just installed, so I bet that was my problem.

So, I updated the HP_RTBC_INSTALL_DEPT_SEL SQL definition and added the two extra fields as best as I could figure.

SELECT USE_ENCUMBRANCES
 , HP_RTBC_OPTION
 , HP_AUTO_RTBC
 FROM PS_DEPT_TBL A
 WHERE A.SETID=:1
 AND A.DEPTID =:2
 AND A.EFFDT = (
 SELECT MAX(B.EFFDT)
 FROM PS_DEPT_TBL B
 WHERE B.SETID=A.SETID
 AND B.DEPTID = A.DEPTID
 AND B.EFFDT<=%DateIn(:3))

And, that fixed my problem!

How to Change the SysAdm Password

Nicolas Gasparato wrote a rather thorough article on the subject of user password, and mostly, I just want to capture a bookmark to it on my blog:

On The Peoplesoft Road: PeopleSoft Passwords

The best way that I have found to change the SYSADM password (the database user that PeopleSoft uses to connect) is to use Data Mover and the change_access_password command.

You can read the official documentation on the command here:

PeopleBooks: change_access_password

The syntax looks something like this:


change_access_password SYSADM1 <new password>;

The first parameter is the Symbolic ID.  While it is probably SYSADM1, you can read it from the PSACCESSPRFL table:


select * from PSACCESSPRFL

The second parameter is the new password that you want to use.

The command will both change the password in the database and change the place where PeopleTools stores the password to use when connecting.  You will still probably still want to clear the cache and restart the servers including app, batch, and web.