Hi Every One
i am getting time out when i am trying to update one simple entity to update the data with help of Update crud operation.
its a simple table but this table has more than 7 index.index will take time to insert/update that thing i am sure but how to resolve this.
gettinjg below error
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
i am not able to find out what is the reason behind that.
Hi,
I would suggest, debug the logic and confirm that all values are getting pass correctly in this update action.
regards
Hi @Arkyadeep Bharadwaj,
are you sure that no records have been updated?
I'm asking this because you are in a loop, so, maybe the first "x" records are completed, but the execution fails when it reaches the timeout...
If that's the case and this action is inside a timer, please, take a look at the following doc to improve your timer and protect it against timeout:
https://www.outsystems.com/forums/discussion/60880/best-practices-timer-example-of-shown-code/
In case the timeout is happening in one specific record (the first or the only one on the list), I'd suggest checking on the application if this record is not locked for another process - for example there is some use of GetEntityForUpdate ().
Hope this helps,
Tiago Resende
Hi Arkyadeep,
It looks like you are in a timer. My best bet would be that you are processing a large amount of data and are running out of the available time for a timer (10 mins by default I believe).
The master class about timers goes into this topic and is a good course to watch: https://learn.outsystems.com/training/journeys/async-processing-timers-586/best-practices-on-timers/o11/803
It will result in the following example where a variable is created that has the time set when the timer should stop (and wake itself to continue processing). It should look like this;
Vincent
Hello,
Since you are already committing the transactions, I would suggest you to check if any records are getting updated in database or is it failing to update even one record. If even single record is not getting updated, are you able to perform any other database operation on any other entity? If not, then your database might have gone into deadlock situation because of your or some other operation.
Hope it helps!
Junaid
Hi Arkyadeep Bharadwaj,
I notice that you are using a entity case from case management I'm right?
Which assignment are you doing before the update, if it is to change the status use the case action for that purpose.
As Junaid Syed said there is other transaction occurring which is locking the record during the update.
Hope that it helps you
Hi
i am not using Case Management entity.in the first aggregate i have added filter and it is returning only one records and that records i am trying to update.but when i am trying to update that if i use GetforUpdate action or if i use aggregate to fetch the data still i am getting time out error.
this is our custom table.not from case management.
if i am using this this action from Screen level then also we are facing this issue and in my aggregate i have only one single records.there is not bulk data.
Do you see any SQL related logging in the Service Center Error or General log? There could be valuable information stored there.
On the timer why do you need the getaforupdate, GetForUpdate action locks the record during the current transaction, it should be used for screen purposes to manage concurrent transactions.
My suggestion is to use an aggregate filtering by Id on timer and use that record to update.
On screen use a different action where you can use the getaforupdate if you want to manage concurrent updates.
https://success.outsystems.com/documentation/how_to_guides/data/how_to_handle_concurrent_updates_on_application_data_records/
Let me check