This is a continuation of my virtual PeopleSoft installation. In this step, we will install the operating system in to the virtual machine. To see the complete list of steps, click here.
News: PeopleSoft VM Templates
Is it possible that Oracle might offer PeopleSoft applications as virtual templates? If you haven’t seen my “idea” on Oracle Mix, please check it out and vote for it. Currently, it has 14 votes.
Today Justin Kestelyn commented “Stay tuned.” Does this mean something is in the works? I am tuned!
Step By Step Virtual PS Install: Creating the Image
Click here for the complete list of articles
This is the first part in creating a virtual image with PeopleSoft HR installed. We will use VMWare Server for the virtual machine and the host machine is a linux machine. The PeopleSoft server will be Linux too so that everything is installed from downloads. Of course, this will not be a production ready machine, but it should work great for learning and testing purposes. You can always deviate from the instructions enough to use Windows or other supported tools if you wish.
VMWare server can be installed easily enough using these instructions:
Install VMware Server 1.0.6 on Ubuntu 8.04 “Hardy”
Installation on other host operating systems is not difficult. You should be able to use any host operating system you like assuming that it is supported by VMWare. You can download VMWare Server directly from here:
Once installed, log in and click the create a new virtual machine — click the “Create a new virtual machine” button.
This will open the wizard to create the new machine.
Next, choose a typical image.
Next, choose Linux and Red Hat Enterprise Linux for the version.
Next, choose a name for the new virtual machine.
Next, choose a networking option. If you wish to transfer files using Windows File Sharing, you may want to choose bridged. This gives you the ability to access files from other computers/servers on the network. If you are on a computer with multiple ethernet cards like a laptop with a wired and wireless card, you might want to choose NAT so that you don’t have to worry about which one should be mapped to the machine.
Next, choose a hard drive size. It works best/easiest if you choose a huge size like 100G and don’t allocate now. This makes the hard drive flexible, and you don’t have to worry about trying to make it larger later. The image will take as much as it needs without crashing. If you need to delete files and conserve space later you can and then shrink the hard drive to free up the space on the host.
Finally, click Finish, and you should have a new empty virtual computer.
Change Assistant Error
Here is an error that I ran across and how I fixed it.
Error in EMHub error log:
<Jul 17, 2008 2:53:48 PM EDT> <Notice> <Stdout> <000000> <WARN [ACTIVE] ExecuteT
hread: ‘0’ for queue: ‘weblogic.kernel.Default (self-tuning)’ EMF_CATEGORY – Una
ble to register peer com.peoplesoft.emf.peer:id=2 with the EMHub>
Error that PSAgent gives:
ERROR main EMF_CATEGORY – Error while connecting to ‘http://pserv01:8000/PSEMHUB /hub’.
ERROR main EMF_CATEGORY – Error: Internal Exception: – Error registering peer
ERROR main EMF_CATEGORY – Error while connecting to server – retrying attempt 1
The fix was to reset the GUI
Viewing:
select GUID from PSOPTIONS
Updating:
UPDATE PSOPTIONS SET GUID = ‘ ‘
Then, you need to restart the application server and the web server.
Resource
Determine Last Update Date of a File
We have had trouble with our interface picking up the wrong file. The client thinks they have put the file in the right place, but the server is looking at a different file for some reason. Placing the date/time in the standard output helps identify these situations. Here is how you can do that:
Local JavaObject &javaFile;
Local JavaObject &javaFormat;
&javaFile = CreateJavaObject(“java.io.File”, “c:\temp\myFile.txt”);
&javaFormat = CreateJavaObject(“java.text.SimpleDateFormat”, “yyyy/MM/dd hh:mm:ss aa”);
MessageBox(0, ” “, 0, 0, File Timestamp: %1”, &javaFormat.format(&javaFile.lastModified()));
Startup Scripts
Sohan asked about my start up scripts for booting all of the PeopleSoft services. I have been wanting to document this anyway in case I need it again.
Here is the setup — I had trouble with the Oracle database not starting, and so, I found it easier to start the whole system this way. The system is a single user VMWare instance, and so, I simply put the main batch file in the Startup folder of the Start menu.
So, here is my main script. This script just simply calls the other scripts.
@echo off echo ------------------------------------------------------------------------- echo Starting Database echo ------------------------------------------------------------------------- cmd /c startDatabase echo ------------------------------------------------------------------------- echo Starting App Server echo ------------------------------------------------------------------------- cmd /c startAppServer echo ------------------------------------------------------------------------- echo Starting Batch Server echo ------------------------------------------------------------------------- cmd /c startBatchServer echo ------------------------------------------------------------------------- echo Starting Web Server echo ------------------------------------------------------------------------- cmd /c startWebServer
Here is the startDatabase script:
@echo off sqlplus "/ as sysdba" @startup.sql
You will also need this SQL file to make it work.
startup exit
Here is the startAppServer script:
@echo off c: cd \pshome\appserv psadmin -c boot -d HCM90
Here is the startBatchServer script:
@echo off c: cd \pshome\appserv psadmin -p start -d HCM90
Here is the startWebServer script — this assumes that you have installed the PIA as a service but set it to Manual start:
@echo off net start Oracle-HCM90ProcessManager
Oracle Tip: Dropping a Database
Here is how to drop a database in Oracle.
Make sure that have ORACLE_SID set first.
Log into sqlplus with sysdba privileges:
sqlplus /nolog connect / as sysdba
Run the following commands in sqlplus:
shutdown immediate startup restrict mount exclusive
Before you complete the drop, verify that you are in the correct database — the one that you want to drop (thanks to Dan Norris’ comment):
select * from v$database;
Now you can drop the database.
drop database;
Oracle “Templates”
InfoWorld just published an article about “VM Templates”. I think VMWare uses the word Virtual Appliance.
I think it would be great to have the PeopleSoft applications offered as a “template”. It might be comparable to the Single SignOn versions of the past maybe. It would be really great for testing and all.
I created an idea on Mix. If you agree, please vote for it.
Tuxedo Install Error
I have been attempting to install Tuxedo on Oracle Enterprise Linux 5. The installation presented several problems, and so, I thought it might be helpful to blog the fixes.
Both errors appear to be part of the InstallAnywhere installation system. So, the fixes that I found were not specifically for Tuxedo or even PeopleSoft/Bea.
The first error output looked like this:
awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /tmp/install.dir.5362/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory Tuxedo 9.1 base installation complete
I found the fix here. Basically, you comment out the part of the script that sets the LD_ASSUME_KERNEL variable. You can’t just use any text editor or even vi because the file actually contains the binary installation files zipped up in it. Instead, this sed command seems to work:
cd linux/sles9/base/ cp tuxedo91_32_SLES_9_x86.bin ../Install.bak chmod +w tuxedo91_32_SLES_9_x86.bin cat ../Install.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > tuxedo91_32_SLES_9_x86.bin
That fixed part of the problem. But, I still received this error:
awk: cmd. line:6: warning: escape sequence `\.' treated as plain `.' ======================================================= Installer User Interface Mode Not Supported Unable to load and to prepare the installer in console or silent mode. =======================================================
The awk… message looks like it is a problem, but that can be ignored. A couple of searches showed that other people’s successful installs had this error message. As best I can tell, the problem lies in the packaged version of Java.
To fix the problem, I first had to install Java. GCJ comes installed by default. I installed Sun’s Java 1.5 by downloading and installing jdk-1_5_0_16-linux-i586-rpm.bin.
Then, I found an article that explains how to override the JVM used by the installer. To make this work, you need to edit (with either the vi command or the gedit command) the install.sh. Change the line from (line #259):
sh $INSTALL_BINARY -f $SILENT_INSTALL_FILE > $INSTALLER_OUTPUT;
to:
sh $INSTALL_BINARY LAX_VM /usr/java/jdk1.5.0_16/bin/java -f $SILENT_INSTALL_FILE > $INSTALLER_OUTPUT;
After that fix, tuxedo finally installed for me!
Resources
Writing to Access Databases
We are thinking about connecting to an Access database for one of our interfaces. Here is some PeopleCode that I threw together to make sure that it was possible.
I tested the code in a VMWare instance with HCM8.9/Tools 8.46, Windows Server 2003. The instance did not have Microsoft Access installed, and I changed the path (c:\temp\AccessTest.mdb below) to a network (UNC) path where the computer had Access installed.
Local JavaObject &class; Local JavaObject &connection; Local JavaObject &driverManager; Local JavaObject &statement; &class = GetJavaClass("java.lang.Class"); &class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); &driverManager = GetJavaClass("java.sql.DriverManager"); &connection = &driverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\temp\AccessTest.mdb;DriverID=22;READONLY=false"); &statement = &connection.createStatement(); &statement.executeUpdate("insert into tblTest(TestMessage) values ('testing')");
Hope it helps.