Vous êtes sur la page 1sur 5

E-ExcelToCI: How To Try and Avoid Timeouts When Uploading To

From ExcelToCI (Doc ID 1509108.1) Bottom

In this Document

Goal
Solution
References

APPLIES TO:

PeopleSoft Enterprise PT PeopleTools - Version 8.50 to 8.53 [Release 8.4]


Information in this document applies to any platform.
***Checked for relevance on 08-SEP-2017***

The error messages vary. Below are two common ones

“Error occurred in routine sendSOAPRequest_SubmitToDB"

“The response text is not valid XML. Login Data cleared” followed by "No Response from server"

One of the reasons for the errors (and timeout) is that the application server is handling multiple long
running transactions, resulting in timeouts by the web server.

GOAL

To help avoid timeouts.

SOLUTION

ExcelToCI is not designed for volume uploads, although it may work for small CIs (Component
Interfaces). It is also not designed for uploads involving large complex CIs. Uploads of these types
usually result in timeouts of the Excel client. Using a small Chunking Factor, and small/streamlined
CIs will usually have the greatest impact. Also, remember that while the recommendations should
help, they are not guaranteed to help in all cases.

Below are recommendations for some common scenarios to help the Excel client avoid being timed
out.
Scenario 1:
If there is a SVCTIMEOUT in the application server log, do the following:

a) Use a light weight CI


b) Set the Chunking Factor to 1
c) Increase the application server's service timeout.
d) Break up the total amount of data into several chunks. For example, instead of uploading 1000
records in one upload, test uploading in sets of 250 or less, to try and avoid timing out. Even if using
this option, avoid trying to use a large Chunking Factor such as 40.

Scenario 2:
If there is no SVCTIMEOUT in the application server log, do the following:

a) Set the Chunking Factor to 1.

b) Check if LDAP credentials/authentication is being used, and if yes, switch to using PeopleSoft User
credentials.

If the timeout persists after implementing a) and b) above, you can test the following:

c) Add timeout for SERVERXMLHTTP object in the VBA macro code (see "Excel Client Timeout"
section below)

OR

d) If the SERVERXMLHTTP object is being used, test changing the object type to XMLHTTP in VBA
macro code.
XMLHTTP is client side, and lighter weight than SERVERXMLHTTP, and may help slightly with
performance.

e) Break up the total amount of data into several chunks. For example, instead of uploading 1000
records in one upload, test uploading in sets of 250 or less, to try and avoid timing out. Even if using
this option, avoid trying to use a large Chunking Factor such as 40.

Below is information about the specific areas affecting timeouts

Small/streamlined CIs -
Avoid using large complex CIs. Build and use streamlined (CIs that are not large, complex, and do
not have a lot of Peoplecode in the underlying layers. For more information on the topic see the
following two documents.
Doc ID 1509602.1 E-CI: Developing and Testing Component Interfaces (CIs)

Doc ID 641274.1 - ExcelToCI Troubleshooting Guide

Chunking Factor -
Use a smaller Chunking Factor than default of 40. You can drop the value to 1, and then increase it
until you find a reasonable value that works. Also remember that the error probably won’t occur all
the time, and will depend on different factors such as the available hardware resources (web server
and application server), amount of load on the system at processing time, the distance between the
Excel client and the web server (client is miles away from the server), etc. Avoid using an aggressive
(large) value. Using a smaller value means more data uploads from the client. But, it also means that
uploads should be more evenly distributed among the application server instances, improve
application server throughput, and make timeouts less likely.

LDAP -
If LDAP is used for authentication, test with and without LDAP. If there's an appreciable difference,
there may be an issue with the LDAP side, and bypassing LDAP for the ExcelToCI uploads will help
performance, and avoid timeouts.

SVCTIMEOUT -
A service timeout occurs on the application server if the application server cannot complete
processing the transaction consisting of the number of records equal to the Chunking Factor value.
For more information on increasing the service timeout, see the following document.

Doc ID 661796.1 E-CI: PSAPPSRV Timeout Causes Sporadic Failures of ExcelToCI or External
Applications Using a Component Interface

Excel Client Timeout -


If using Microsoft XML parser library version 6.0 (msxml6.dll), you can extend the timeout values in
Excel. Note that later PT 8.5x releases already have the timeout extension code changes.
If your macro code does not have the changes, follow the steps below to add them.

1. Locate the VB macro function to be modified as follows:

a) Open the ExcelToCI spreadsheet being used.

b) Navigate to Tools > Macros > Visual Basic Editor (or you can press Alt+F11 to open the Visual
Basic Editor).

c) In the VB editor double click on the StagingAndSubmission module (project view on the left side)
to open the module.

d) Locate the following function.


Function sendSOAPRequest_SubmitToDB() As Long

2. In the above function add the lines of code as instructed below.

The original beginning of the Function is shown below (code was taken from a PT 8.52 spreadsheet's
VB macro code)

Function sendSOAPRequest_SubmitToDB() As Long

On Error GoTo doError


Dim xDoc As DOMDocument
'ICE 1642835000 - Use library class ServerXMLHTTP to support SSL Client Certs
'Dim xHTTP As XMLHTTP
Dim xHTTP As ServerXMLHTTP60

Set xDoc = New DOMDocument


If xDoc.loadXML(sSOAPRequest) Then
'Set xHTTP = New XMLHTTP
Set xHTTP = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
xHTTP.Open "POST", Login.sRequest, False

a) Add the following lines of code below the existing Dim statements.

Dim lResolve, lConnect, lSend, lReceive As Long


lResolve = 60 * CLng(1000) ' 60 seconds
lConnect = 90 * CLng(1000) ' 90 seconds
lSend = 120 * CLng(1000) ' 120 seconds
lReceive = 1800 * CLng(1000) ' 30 minutes

b) Add the following line of code below the Set xHTTP =


CreateObject("MSXML2.SERVERXMLHTTP.6.0") line of code.

xHTTP.setTimeouts lResolve, lConnect, lSend, lReceive

After making the above changes ( a) and b) ) the beginning of the function should look like this
(added lines are in bold).

Function sendSOAPRequest_SubmitToDB() As Long

On Error GoTo doError


Dim xDoc As DOMDocument
'ICE 1642835000 - Use library class ServerXMLHTTP to support SSL Client Certs
'Dim xHTTP As XMLHTTP
Dim xHTTP As ServerXMLHTTP60
Dim lResolve, lConnect, lSend, lReceive As Long
lResolve = 60 * CLng(1000) ' 60 seconds
lConnect = 90 * CLng(1000) ' 90 seconds
lSend = 120 * CLng(1000) ' 120 seconds
lReceive = 1800 * CLng(1000) ' 30 minutes

Set xDoc = New DOMDocument


If xDoc.loadXML(sSOAPRequest) Then
'Set xHTTP = New XMLHTTP
Set xHTTP = CreateObject("MSXML2.SERVERXMLHTTP.6.0")
xHTTP.setTimeouts lResolve, lConnect, lSend, lReceive
xHTTP.Open "POST", Login.sRequest, False

3. Save the change.

REFERENCES

NOTE:641274.1 - E-ExcelToCI/CI: ExcelToCI Troubleshooting Guide


NOTE:1509602.1 - E-CI: Developing and Testing Component Interfaces (CIs)

Vous aimerez peut-être aussi