Friday 10 June 2011

Understanding peoplesoft architecture

I have written article specially for new peoplesoft dbas who most of time try to figure out how to find the details regarding a peoplesoft application. Peoplesoft application consists of database server, application server and webserver. Batch server is also present for reporting purposes.
Lets follow the top down approach and assume that you have been given a URL and are asked to find all the peoplesoft application details from it. (We are assuming you have access to all the servers and your application has a simple configuration with one webserver,one application server and one database server.)

Webserver details
Step1
URL: http://delta1:8101/psp/prod/?cmd=login

Information to gather:
  • Server name hosting our webserver    : delta1
  • Port no. on which PIA is running        : 8101
  • Peoplesoft Website name                   : prod

Step2
Log into webserver(delta1 in our case) and enter the following command.
# ps -ef|grep 8101

psoft  385244       1   0   May 18      - 17:08 java -Xms256m -Xmx256m -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 -Dweblogic.Chunksize=65536 -Djava.util.logging.config.file=/psoft/weblogic/web849/psoft8101/webserv/GHRMS/applications/peoplesoft/logging.properties -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Dweblogic.Name=WebLogicAdmin -Dps_vault=/psoft/weblogic/web849/psoft8101/webserv/GHRMS/psvault -Djavax.net.ssl.trustStore=/psoft/weblogic/web849/psoft8101/webserv/GHRMS/keystore/pskey -Dweblogic.ProductionModeEnabled=true -Djava.security.policy=/psoft/weblogic/web849/psoft8101/weblogic/weblogic92/server/lib/weblogic.policy -Dssl.debug=false -Dps_home=/psoft/weblogic/web849/psoft8101 weblogic.Server

Information to gather from it:
  • Owner/User of the process: psoft
User shown above has rights to start and shutdown the application. If you plan to stop/start the application you need to be logged in as this user, unless you plan to use root user to administer it.
  • Location from where it is running: /psoft/weblogic/web849/psoft8101/webserv/GHRMS/applications/peoplesoft/
Above path tells you the place where your website is installed which is our webserver home.

Get our exclusive subscription-only PeopleSoft tips once per month!

Application Server details
Step3
cd to webserver path noted in step2
cd /psoft/weblogic/web849/psoft8101/webserv/GHRMS/applications/peoplesoft/
and enter the following command.

# find ./ -name configuration.properties
./PORTAL/WEB-INF/psftdocs/prod/configuration.properties

Now get the peoplesoft website name which we noted down in the first step. In our case it's 'prod'. Now we need to open the configuration file related to it.

Step4
Enter the following command.
more [PATH OF THE CONFIGURATION FILE RELATED TO YOUR WEBSITE]

# more ./PORTAL/WEB-INF/psftdocs/prod/configuration.properties

Now that we have opened the configuration  file we'll get the appserver details from it. Parameter psserver will provide you with the application server details. It would be similar to
psserver=appserver1:9010
(To keep things simple we are considering the case of one appserver connected to one webserver)

Information to gather:
  • Application Server name     : appserver1
  • JSL Port                             : 9010

Step5
Log into appserver and enter the following command.
# ps -ef|grep 9101
   psoft  679954       1   0   May 31      -  0:29 JSL -C dom=PROD_56831 -g 95 -i 200 -u appserver1 -U /psoft/pt849/appserv/PROD/LOGS/TUXLOG -m 0 -A -- -d /dev/null -n //appserver1:9101 -m 9 -M 12 -I 5 -j ANY -x 40 -S 10 -c 1000000 -w JSH

Information to gather:
  • Owner name                    : psoft
User who has started the application server
  • Location of PS_HOME   : /psoft/pt849/appserv/PROD
Path mentioned above is the appserver directory of PS_HOME
  • Domain name                  : PROD
Application Server domain name

Database server details
Step6
Navigate to PS_HOME/appserv directory using cd command
cd PS_HOME/appserv/DOMAIN_NAME/
# cd /psoft/pt849/appserv/PROD

Open application server configuration file "psappsrv.cfg"
more psappsrv.cfg
[Startup]
;=========================================================================
; Database Signon settings
;=========================================================================
DBName= psftdb
DBType= ORACLE

Information to gather:
  • Database/Service name: psftdb

Enter the below command at the prompt
tnsping database/service name
tnsping psftdb

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = psftdb)))
OK (10 msec)

Information to gather:
  • Database server host name       : dbserver
  • Port no                                    : 1521

We have backtracked our path from webserver to database server and gathered major details about webserver, application server and database server which are the main components of peoplesoft architecture.

Get our exclusive subscription-only PeopleSoft tips once per month!

Tuesday 7 June 2011

What is a Peoplesoft Connect ID ?

We will discuss what is a Peoplesoft connect id, where it is used , how to create connect id and permission required by connect id.

What is a PeopleSoft connect id?
PeopleSoft connect id is a very important peoplesoft database id which is required for initial connection to database in PeopleSoft. It replaces the old concept of having database userid for every peoplesoft user id. A connect Id is a valid user ID that, when used during sign in takes the place of Peoplesoft User Id.
Where is connect ID used?
As mentioned above, peoplesoft connect Id is used for initial authentication with peoplesoft database. We require connect Id whenever we need to configure application server, process scheduler and configure 2 tier client like peoplesoft application designer and data mover. If connect id is not mentioned correctly you will face error while starting application server,process scheduler server & will be unable to login in app designer or data mover.

Application Server: Connect Id is entered when choosing "Configure this domain" option for any application server domain using psadmin utility.
Connect Id can also be entered directly in application server configuration file psappsrv.cfg for the domain being configured. After making changes to psappsrv.cfg file , appserver needs to be configured again using psadmin so that psadmin picks up new settings as mentioned in "psappsrv.cfg" file.
Process Scheduler Server: Similar to application server configuration, connect id is used in process scheduler configuration as well. Connect Id can be entered in process scheduler configuration file "psprcs.cfg" as well.
2 tier client eg. PeopleSoft Application Designer, Data mover: As these 2 tier clients also connects with database so connect id is also required to be configured for these. To configure this we need to go to the configuration manager which can be accessed via installed peopletools workstation. Enter values of connect id and password on the startup tab of peoplesoft configuration manager.

If you don't specify connect id , system will assume that you are trying to access peoplesoft using 3 tier access. Learn how to setup 3 tier connection in peoplesoft.

Get our exclusive subscription-only PeopleSoft tips once per month!

How to create a connect Id?
While creating a new database, connect id is created using connect.sql script which is present in PS_HOME\scripts\nt\ folder. By default 'people' is connect id, although a new connect id can be created any time later.

What are the permissions required for connect id?
For initial connection with peoplesoft database, connect id needs to have read only access to three major peoplesoft tables i.e PSSTATUS, PSOPRDEFN and PSACCESSPRFL. Usually this access is also granted as part of database installation using grant.sql which is also present in PS_HOME. You can also grant access by running the below commands.
GRANT SELECT ON PSACCESSPRFL to people;
GRANT SELECT ON PSSTATUS to people;
GRANT SELECT ON PSOPRDEFN to people;


If you still have any questions, please leave some comments here or for quick response like our facebook page and ask your question there.

Friday 20 May 2011

tpsvrinit() failed: Error starting minimum number of handlers

Unable to start application server and TUX Log shows below jolt error 1008

JSH.1663138.1.-2: JOLT_CAT:1030: "INFO: Jolt Handler joining application" !JSH.1663138.1.-2: INFO: JOLT Handler version-BEA Jolt 9.1 !JSH.1663138.1.-2: JOLT_CAT:1008: "ERROR: Could not establish listening address on network 0x000223f1a51a9750" JSL.557108.1.0: JOLT_CAT:1079: "ERROR: Error starting mininum number of handlers" JSL.557108.1.0: LIBTUX_CAT:250: ERROR: tpsvrinit() failed

It happened after I recreated a domain configuration of which was messed up. After creating new domain when I started the application server in parallel boot all processes came up except JSL.
In the Tux Log when I saw this error my eyes got struck at this line.
JSL.557108.1.0: JOLT_CAT:1079: "ERROR: Error starting mininum number of handlers"

I opened the configuration file and checked the Min /Max number of Handlers which were 9 and 12 respectively. I wondered that as these settings were default for the domain type then why it isn't able to start JSL with minimum handlers. I changed the settings for min and max numbers of handlers and tried to start the appserver but nothing worked out. Finally I decided to change the JSL port and once I changed the JSL port my appserver booted up perfectly.

Thursday 19 May 2011

LDAP Authentication Failed

We have been facing issue related to LDAP authentication quite frequently. PeopleSoft User ids like 'PS' ,'VP1' works fine but whenever a user tries to signon using his/her universal user id he/she gets error "Invalid Password". Few of the users also tried to logon after changing their password but no success.
After doing much of head scratching we found that it's a very small issue related to configuration files of application server. psappsrv.env file is the configuration file which contains the environment information like PS_HOME of the application server. It also contains LIBPATH for other required programs like tuxedo, cobol, database client as well as for LDAP. Due to Oracle bug after appserver is reconfigured LIBPATH variable gets changed and needs to be updated to reflect correct changes.


LIBPATH parameter before change







LIBPATH parameter after change







(Please note the semicolon ':' after /psoft/oracle/lib path)
After adding the semicolon, please save psappsrv.env file and restart the application server.
NOTE: PLEASE DO NOT RECONFIGURE THE APPLICATION SERVER AFTER MAKING THE CHANGES OR IT WILL BE LOST

Every time appserver is configured for changing other parameters, psappsrv.env needs to be updated again.






Tuesday 5 April 2011

HTTPClntLogin: Login rejected with code: 'Failed', reason: java.net.ProtocolException: HTTP tunneling is disabled

We faced an error where users reported that they are unable to login into peoplesoft application and getting "Invalid userid/password" error. Few users changed their passwords and were able to login on first attempt. If they try to login time , they again get the invalid login error.
When weblogic logs were checked for any errors, below errors were shown

Error in Weblogic Admin server logs
#### <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel. Default (self-tuning)'> <> <> <> <1302018606842> <000000> is disabled at weblogic.rjvm.http.HTTPServerJVMConnection.acceptJVMConnection(HTTPServerJVMConnection.java:88) at weblogic.rjvm.http.TunnelLoginServlet.service(TunnelLoginServlet.java:80)

Solution:
We upgraded our Weblogic server to Weblogic 9.2 MP3 Patch 12 few days ago. Oracle has delivered the fix for this isssue in one of these patches for MP3. If your weblogic is already updated with latest fixes then one has to enable tunneling via weblogic admin server console.
Login into the Weblogic admin server console and navigate to Enivronment > Servers
Choose the Weblogic Admin server option. Then go to Protocol tab > General Tab and check the box against "Enable Tunneling".

















Save and activate the changes. No restart of webserver is required for these changes.
Also remember to do these settings everytime domain is reconfigured.

Get our exclusive subscription-only PeopleSoft tips once per month!

How was the blog? Help us in getting better