Friday, August 19, 2011

PeopleTools 8.50/8.51 AJAX issues

After immediately upgrading to PeopleTools 8.50, we have encountered several issues that were related to new AJAX features introduced in 8.50. Here is the list of such issues

 

1.  Getting frequent error 501 not implemented on the browser with IE7 and IE8.

2.  Component page reset. Users are getting kicked out to first page or the search dialog box in the middle of a multi page transaction and losing the data they have entered.

3.  Suddenly the page will become unresponsive and entire browser will freeze and will require restart of the browser.

All the 3 symptoms were annoying for the users and we eventually traced it to AJAX feature, that results in loss of POST data.

Turning off the AJAX setting resolved all 3 issues. Here is a way to turn off the AJAX

Go to PeopleTools –> Web Profile > Open the Web profile you use for e.g. DEV or PROD.

Go to Custom Properties and Add a Property AJAX of type Boolean and set its value to false. This will turn off the AJAX. To enable it again make it true or remove the row. Bounce all the Web servers using this web profile to make this setting take effect.

image

Though the above changes resolves the issue, this is not desirable and also may not be supported in future peopletools release. I have found this issue to be related to a bug in IE7 and IE8 when used with Windows XP OS. Fortunately microsoft includes the hotfix to resolve the issue, however registry change needs to be made to enable the hotfix. For more details, see this following KB : http://support.microsoft.com/kb/895954 - When you use Microsoft Internet Explorer or another ! program to perform a re-POST operation, only the header data is posted. See How to enable this hotfix section for registry changes.

Basically, the issue happens as IE sends the AJAX request in 2 tcp ip packets one for the header and one for the body. When network error happens, and ie tries to send the ajax request again, it fails to send the body. This causes PIA to loose the session state and we see the issues described above. The other browsers Firefox, Safari and Chrome do not send ajax request in multiple packets and this issue does not appear there.

Also see this article on further clarification on which registry key needs to be modified : http://www.geoffchappell.com/viewer.htm?doc=notes/windows/ie/featurecontrol.htm

According to this , you can specify the value in any one of the following location, in order of decreasing precedence.

  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl
  • HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl
  • HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl

Please leave comments, if applying the above registry changes resolves the issue.

PeopleSoft has also published this resolution on My Oracle Support (MOS) - E-PIA: PeopleTools 8.50 and 8.51 - Intermittent "Error 501--Not implemented" Messages when Navigating to a Page Using IE7 or IE8 Browser. Doc ID : 1337266.1

8 comments:

Mike Putnam said...

I cannot confirm this behavior in IE8 on Peopletools 8.51. I was able to enter a new hire (many page jumps and AJAX lookups) without issue. I'll comment here again if I am able to reproduce this issue.

Mike Putnam
http://theputnams.net/mike

Ketan Kothari said...

The above behavior does not happen always, but requires some kind of network error that will require ie to repost which will generate in the errors noted. The issue is not easily reproducible as it depends on network layer to fail that requires retransmission of ajax post request. It is also not easily reproducible in dev or qa environment because load is very small and therefore less chances of having network error.

Denise said...

Ketan,
Thank you so much for your blog. You saved my upgrade tonight! We had the Ajax error message only once the link was put into a frame on our internet site. All of our testing prior to changing the internet site worked fine, and when we testing in our SIT environment through the test internet site worked fine. We were about ready to declare a no-go when we found your blog and tried turning the AJAX off on our candidate gateway site and everything then worked like a charm. I cannot thank you enough!

Darren Moseley said...

We applied the registry fix site-wide to our XP machines, and the error went away. Now we are seeing the 501 error in the machines that have recently upgraded to Windows 7. The Microsoft support site says this this bug applies to Windows XP. Have you seen this issue in Windows 7?

Ketan Kothari said...

We still do not use windows 7 but this issue could be tied to ie 7and 8 and not just xp or windows 7. I believe ie9 and windows 7 combination should work fine. Which browser you are using for windows 7.

Darren Moseley said...

We're using IE8 on Windows 7. We are standardized on the lowest common denominator -- some software here doesn't support IE9 yet.

Ketan Kothari said...

This fix as specified by Microsoft KB : http://support.microsoft.com/kb/895954 - in the Applies to section also applies to IE7 and IE8 (No mention of any Operating system). Also if you disable AJAX, Mouse Over popup functionality for 9.1 application does not work and gives JavaScript error : Line: 2694
Error: Unable to get value of the property 'offsetLeft': object is null or undefined for the following navigation Main Menu -> Workforce Administration -> Personal Information -> Biographical -> Modify a Person and you take your mouse to the Name field at the top.

Ketan Kothari said...

This fix as specified by Microsoft KB : http://support.microsoft.com/kb/895954 - in the Applies to section also applies to IE7 and IE8 (No mention of any Operating system). Also if you disable AJAX, Mouse Over popup functionality for 9.1 application does not work and gives JavaScript error : Line: 2694
Error: Unable to get value of the property 'offsetLeft': object is null or undefined for the following navigation Main Menu -> Workforce Administration -> Personal Information -> Biographical -> Modify a Person and you take your mouse to the Name field at the top.