#89 – Gotchas

This week Kyle and Dan discuss UI improvements from Sasank and Dan’s new Fluid Stylesheets, using Git and GitLab to manage DPK files, managing Favorites with Unified Navigation and some “Gotchas” Kyle found during his 8.55 upgrade project.

Show Notes

Fast PeopleBooks Searching

I want to share a tip Daniel Palmer gave on the psadmin.io Community about faster PeopleBooks searching.

“For the Chrome users: If you want a quick PeopleBooks search you can add a custom search engine by right clicking on the address bar and selecting “Edit Search Engines”. I have added one with the name “PeopleBooks 8.55”, the keyword pb855 and the search url is http://www.oracle.com/pls/psft/search?word=%s&lib=pt855pbr1

#76 – Hybrid Cloud w/ Jim Marion

This week on the podcast Jim Marion joins us to talk about Fluid Development, embedding PeopleSoft into cloud applications, Event Mapping, where the cloud makes sense and Jim’s new role at GreyHeller.

Show Notes

  • Jim’s Background @ 2:15
  • New Role with Grey Heller @ 3:45
  • Thoughts on the future of PeopleTools @ 6:00
  • Fluid Development @ 9:00
  • Improving App Designer @ 11:30
  • Event Mapping and Branding Objects @ 14:00
  • Using the Cloud at Grey Heller @ 25:45
  • Embedding PeopleSoft with Cloud Applications @ 32:00
  • Disadvantages of Hybrid Cloud Systems @ 43:30
  • Where the Cloud makes sense @ 47:30

Change Assistant Debug Mode

This is a short post, but hopefully helpful. I recently discovered that you can turn on Change Assistant with a debug mode using an environment variable. There is no documentation on this, but it seems to work well and might help you resolve any issues you have with Change Assistant.

To enable the debug mode, set the PSCADBG environment variable. I used “true” for the value, but any value should work.


Then launch Change Assistant from the command line:

c:\Program Files\PeopleSoft\Change Assistant\changeassistant.bat

In the command line you should see the debug output, like this:

Signed on to 'PSFTDB'. Using c:\PT8.55.13_Client_ORA\
Attempt to signon using PS/PS@PSFTDB
Controller sending c:\PT8.55.13_Client_ORA client -com.peoplesoft.pt.changeassistant.pshome.request.db.SignOnDatabase
Controller received from c:\PT8.55.13_Client_ORA client -com.peoplesoft.pt.changeassistant.pshome.request.db.SignOnDatabase
Signed on to 'PSFTDB'. Using c:\PT8.55.13_Client_ORA\

#73 – Oracle Configuration Manager

This week on the podcast, Kyle and Dan talk about Query Manager bugs, changing how they apply CPU Patches, and testing partial database refreshes. Then Dan gives an overview of Oracle Configuration Manager and laments it’s unsupported status.

Show Notes

  • Collaborate Sessions
  • PeopleTools Ideas Page @ 3:30
  • IDDA Logging Follow-up @ 4:15
  • Query Manager / JSON bug @ 6:00
  • Changing how you apply CPU Patches @ 10:15
  • ProcessRestartMemoryLimit Parameter @ 18:15
  • Testing localapp @ 24:45
  • PTF being slow @ 29:15
  • SRID in Access Log @ 32:30
  • Populating Correlation Fields @ 35:30
  • Partial database refresh to grab old code @ 37:30
  • [Keeping Older PI Images] (https://support.oracle.com/epmos/faces/DocumentDisplay?id=1579720.1) @ 40:30
  • How do you do it: Booting domains: Serial or Parallel? @ 45:45
  • Oracle Configuration Manager @ 48:15

#70 – Attachments

This week on the podcast, Kyle and Dan talk about Log Correlation fields, resetting SES security filters, and getting started with the ACM. Then they dig into storing attachments and searching attachments with SES and Elasticsearch.

Show Notes

#68 – pscipher

This week, Dan and Kyle talk about IDDA logging, managing queries and different SAML options for PeopleSoft.. Then they talk about different strategies for using Demo databases and the pscipher utility.

Show Notes

#62 – PeopleTools Patch Testing

This week on the podcast, Dan and Kyle talk about load balancing all environments or some environments, Diagnostic Plugins and syntax coloring code. Then, they dive into the getting current and how to test PeopleTools Patches.

Show Notes

Monitoring WebLogic and Java

Lately, I have had interest in monitoring WebLogic’s performance. Since Weblogic is built on Java, there are some standard tools we can use to look into the Java Virutal Machine (JVM). We’ll cover two of those tools in this post: JConsole and VisualVM. Both JConsole and VisualVM are included in the Java Development Kit so they are already on your server. These tools will give you information about the JVM used to run WebLogic and can help you tune you web servers.


To get monitoring data out of WebLogic’s JVM, we need to enable JMX. Java Management Extensions (JMX) is a monitoring technology built into Java. Applications that run on Java can build instrumentation into the application to provide performance data about the application. Even without additional data, the JVM will provide CPU, Memory, Thread and other stats about the heap.

To enable JMX for WebLogic, we’ll update the setEnv.cmd or setEnv.sh file. At the end of the JAVA_OPTIONS line, add these flags:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

There are 4 flags we pass to Java when the JVM is started:

  1. Enabling JMX Remote connections
  2. JMX Remote Port
  3. Requiring SSL Connections
  4. Authentication for JMX

For testing, I’ve turned off SSL and Authentication, but if you are enabling JMX across all your servers I recommend you turn both options on. For the JMX Port, pick a port value that is unique for each instance of the JVM. Each WebLogic and App Server instance will have its own JVM. For more information on configuring JMX, this is a link to the official documentation.

If your are on Windows and updated the setEnv.cmd file, you will want to re-install the Service that starts the PIA domain. The JAVA_OPTIONS parameters are stored in the registry when you create the service. If you update setEnv.cmd, you need to recreate the service (or manually update the registry).

Now that JMX is enabled on our domains, let’s look at a few tools to help us monitor our JVMs.


JConsole is a utility included with the JDK download. Under JAVA_HOME\bin you’ll find jconsole.exe To start, we’ll run JConsole from our web server where we enabled JXM (instead of our desktop). Open JConsole and it will ask you to connect to a JMX Process. You have two options: Local Process and Remote Process. We’ll use the remote process option and use these values to connect to our web server: localhost:8888. We don’t need a username or password since we passed the flag jmxremote.authentication=false.


After connecting, you’ll get a message asking about your insecure connection. Click “Insecure” to continue. On the main page, we see 4 graphs related to the JVM.


These graphs give you a good overview of the JVM status. The CPU graph will show you how much of the CPU that JVM is using, and the Threads graph gives a good indication of workload on the JVM. The best part of JMX is the Memory graph. Getting your JVM Heap sized correctly can make a big different in performance. The graph should follow a pattern when Garbage Collection runs.


You don’t want Garbage Collection to run too often, or the usage too high after Garbage Collection. This graph helps with getting the right size for your web server. (You can find more tuning information here.)


VisualVM is another untility included with the JDK download and is also under JAVA_HOME\bin. We’ll start VisualVM on the server as well by running jvisualvm.exe --console new.


When VisualVM opens, we create a new connection by right-clicking on “Local” and selecting “Add JMX Connection”. Fill in the port number and select “Do not require SSL connection”.


VisualVM show us similar data as JConsole, but I think it looks a nicer. Under the Monitor tab, you can also force the JVM to run a Garbage Collection. For the most part, these two applications are similar.


Remote JMX Connections

We have run both applications on the server to connect to JMX, but these applications are more useful if we can connect to the servers remotely. By default, JMX will only accept local connections. To enable remote connections to JMX, we have to pass this flag:


After you add that parameter to your setEnv.cmd JAVA_OPTIONS line, restart the web server. On a different computer or server, launch VisualVM or JConsole. Create a remote connection to JMX on the server. In the Connection box, enter the server name and port for the JMX instance.


JMX Authentication

Once you get the basic configuration in place, you want to enable authentication to connect to the JMX instance. The default JMX authentication is stored in the JDK folder. That will affect all domains using the JDK folder. Instead, we will use a JMX password file for each web server domain.

  1. Open the file JAVA_HOME\jre\lib\management\jmxremote.access.
  2. Add the line psMonitor readonly to the bottom of the file and save. This line adds a new user named psMonitor and a read-only account to any JMX instances using this JAVA_HOME.
  3. Copy the file JAVA_HOME\jre\lib\management\jmxremote.password.template to PS_CFG_HOME\webserv\jmxremote.password.
  4. Open the new jmxremote.password file.
  5. Add the line psMonitor test123 to the bottom of the file and save. This line sets the password for the psMonitor user. To give each web server domain a different password, set a unique password in this file under each PS_CFG_HOME.
  6. Open the setEnv.cmd file and add these parameters:

    -Dcom.sun.management.jmxremote.password.file=PS_CFG_HOME\webserv\jmxremote.password -Dcom.sun.management.jmxremote.authenticate=true
  7. Restart the web server for the new paramters to take affect.

Now that we have a web server configured to run JMX with authentication, we will create another connection in VusualVM to use the username and password.

  1. Right-click on the remote server and select “Add JMX Connection”
  2. Enter the server name and port.
  3. Enter psMonitor for the Username and test123 for the Password.
  4. Select “Do no require SSL connection”
  5. Click OK.