on 2011 Mar 24 4:45 PM
Hi,
We have a complex functionality within a transaction that runs for around 20 - 25 minutes, as it processes more than 1000 records. We can't do any changes to this as it meets business needs.
Now, we call for this transaction from the User Interface using Applets. However, when we make the call as -
document.<appletName>.refresh();
The page waits for the response from Server for around 10 minutes and then the function ends at the Client prematurely and displays the following error on the Grid -
Error : Error Reading Header
We have a similar problem with executeCommand as well for another Transaction, which runs for around 15 minutes. The executeCommand() call from the page returns back with error around after 10 minutes and it runs to the error logic of the javascripting.
Is there any server settings that can help the page to wait or is there any way to improve the wait time for Refresh() / executeCommand() functions ??
Appreciate a quick response/suggestions to this ..
Thanks,
Amit
Request clarification before answering.
Can you provide more details into what the complex transaction does? 25 minutes is a long time for a transaction to run. There is likely a way to optimize that transaction while still meeting your business needs.
If it is using data from a relational database, perhaps a review of what parts are performed by MII versus what parts could be better performed by custom views or stored procedures in a relational database? Do you have interspersed repeaters and sql queries?
If you are using a data historian, would performance be much improved by the creation of calculated tags so processing is done at the data source instead of in MII?
Do you have issues with your network (are transmission times adversely affecting the transaction processing time)?
Regards,
Mike
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Mike,
1. In the first case, the transaction gets an XML file with 1300 records as input and performs a transformation to another XML structure that needs to be displayed on to the screen in Grid format. It splits some of the rows from input XML and assign it to desired rows in output format.
The strange here is the timeout of Refresh() function. Is there an parameter to set somewhere for this ??
2. In executeCommand(), the transaction gets an XML as input with more than 1200 records. It loops on each of the records and trigger an HTTP call to SAP PI and sends the data one by one. So there are around 1200 HTTP calls via the transaction for which it takes a time of more than 15 minutes.
A similar timeout is seen as in case 1. The executeCommand() function responds back with an custom error message.
How can we manage the timeout settings for Refresh() and executeCommand() functions ??
Thanks,
Amit
In the past i have used the Dynamic Transaction Call in asynchronous mode to handle long running transactions.
You can generate guid and pop results into a queue as a cache with the guid as key and pass this back to your caller.
then your other objects poll the queue for the data.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.