FSCM External Punchout – Extremely slow

Smart Panda - Oracle DevelopmentIn one of my clients Oracle Managed Cloud Services environments which is extremely locked down, they were experiencing terrible performance issues trying to go to WB Mason’s external punchout site.  It was taking upwards of 5 minutes to return the catalog pages.

Something was CLEARLY wrong. In this case it was DTD – and what is DTD?  Well, document type definition of course – which is a set of markup declarations that define a document type for an SGML-family markup language (SGML, XML, HTML). A Document Type Definition (DTD) defines the legal building blocks of an XML document. It defines the document structure with a list of legal elements and attributes. A DTD can be declared inline inside an XML document, or as an external reference. XML uses a subset of SGML DTD. As of 2009, newer XML namespace-aware schema languages (such as W3C XML Schema and ISO RELAX NG) have largely superseded DTDs. A namespace-aware version of DTDs is being developed as Part 9 of ISO DSDL.[2] DTDs persist in applications that need special publishing characters, such as the XML and HTML Character Entity References, which derive from larger sets defined as part of the ISO SGML standard effort. (Yes, I cut and pasted that from wikipedia DTD page )

So basically the cXML of the external punchout is trying to validate against an external reference which the application server is not allowed to go to because of firewall restrictions. In this case because the only items we had validating were these valid external punchout sites, it seemed logical to turn off DTD validation! Which you can do since 8.49 PeopleTools. The version my client is on is 8.54, so it turns out that it is really easy in 8.54 to turn off DTD validation.

In the Web Integration Broker Gateway configuration (integrationgateway.properties) file, there is a setting for DTD Validation, simply change this to “false” from “true” and reboot the web server and what was once extremely slow is now returning in fractions of a second.

There are other ways to work around this issue, but this is a relatively quick item you can test to validate if DTD is causing your performance issues.

PeopleSoft: Application Server Load Balancing & Failover

Smart Panda - PeopleSoft in the Cloud

Application Server Load Balancing & Failover

PeopleTools has come a long way in regards to load balancing and failover.  I honestly don’t know when they brought in these features, however, in 8.54 and above these failover and load balancing work and based on the testing I have done they work correctly.  There are different options you can specify in the configuration.properties file to load balance requests and also for failover in case a domain is down.

Configuring Weighted Load Balancing

With weighted load balancing, you can set the “weight” of the load, or amount of requests, being directed to a particular server. Weight values are integers 1–10, with 1 being low and 10 being a heavy load. Servers that can handle extra work can take heavy loads, while servers that are either less powerful or are being used in other capacities can take lower loads. You specify weighted load balancing by modifying the server values in the psserver property in the PeopleSoft Internet Architecture configuration.properties file, using the following format.

psserver=HostServer1:Port1#Weight,HostServer2:Port2#Weight

Example: psserver=appserver1:9000#3,appserver2:9010#1 – In this case, appserver1 would receive 3x more requests than appserver2.

You an also specify strict failover assignments with weighted load balancing, with the following options:

Configuring Failover

You can configure with strict failover with weighted backup or strict failover with sequential backup. This is done by adding the failover servers in curly brackets at the end of the server entry:

psserver=<host>:<port>#wt{failover servers}

Example: With the failover string, you can set weighted backup by separating failover server with a comma (,).

psserver=Host1:Port1#Wt{Host3:Port3#Wt,Host4:Port4#Wt},Host2:Port2#Wt – In this case, Host 3 and Host 4 are failover servers when Host 1 is down.

Example: To set sequential backup, you separate multiple backup servers using a semicolon (;).

psserver=Host1:Port1#Wt{Host3:Port3;Host4:Port4},Host2:Port2#Wt – In this case, the system assigns Host 4 the requests when both Hosts 1 and 3 are down.

 

PeopleSoft: Record Types

Smart Panda - IdeaSometimes it is nice to just have a quick reference to the Record Types from the Record Definitions, as here is a quick reference SQL code:

SELECT R.RECNAME AS RECORD_NAME,
( CASE
WHEN R.RECTYPE = 0 THEN ‘Table’
WHEN R.RECTYPE = 1 THEN ‘View’
WHEN R.RECTYPE = 2 THEN ‘Derived’
WHEN R.RECTYPE = 3 THEN ‘Sub Record’
WHEN R.RECTYPE = 5 THEN ‘Dynamic View’
WHEN R.RECTYPE = 6 THEN ‘Query View’
WHEN R.RECTYPE = 7 THEN ‘Temporary Table’
ELSE ‘Unknown’
END )   AS RECORD_TYPE
FROM   PSRECDEFN R

 

Windows: Add An Network Drive from Command Line

Smart Panda - Network DriveWindows Network Drive Mapping:

Every once and awhile you will be working away and with all the new protections in windows, you will have to run something as administrator. This is fine however, occassional that program you are running will require that you access a network drive. However, sometimes, you may not be able to access that network drive because of the privileges.  If the network drive is mapped as you the user, the administrator will not see the mapped drive that you have.

A nice and quick way to solve this problem is to map a network drive as the administrator.  To do this run the command line program (cmd) as administrator, which will give you the nice old fashion “DOS” window.  From here simply execute the command:

net use

This will list all the network drives that are mapped for the administrative user.  If you don’t see the drive you want add it:

net use {drive-letter} {unc-path}

so if you wanted the drive \\myserver\myshare to be mapped to the z: drive enter:

net use z: \\myserver\myshare


Smart Panda - IdeaIf you want to get fancy, you can add credentials and persistence with the following command:

net use {drive-letter} {unc-path} /user {user-name} {password} /P:Yes

 

Oracle: Password Policy – Turn Off

Oracle: Password Policy

Smart Panda - DatabaseWell working with a new PeopleSoft Oracle Database, I went to create a new connect id user on the database with a relatively straight forward password and the database angry told me – NO. It said that the password policy required specific elements to be included with the password.  As most people know the system administrator password and connect id password associated with the Oracle Database need to be 8 characters long and should only contact alpha and numeric characters.  Seriously do not try to make it long or shorter and never put special characters in the password.  Over the years I have been mesmerized by the number of times this password has caused me grief.

So if there is a complex password policy set on the default profile you can turn it off by issuing the following command within sqlplus:

ALTER PROFILE "DEFAULT" LIMIT PASSWORD_VERIFY_FUNCTION NULL;

To determine what the profile is, you can issue the following statement:

select profile from DBA_USERS where username = '<username>';

 


Smart Panda - IdeaGood To Know:

There are many elements in the profile that can cause issues one of them is the password expiry option.  Often not a good plan to have you main database account to stop functioning because of a password expiration, because Murphy’s Law says it will expire the day your DBA is on vacation and they will NOT pick the phone up that day.

Click here to go article:  Oracle Database User – Password Expiry