New Posts New Posts RSS Feed: ExecuteSave called twice on timeout
  FAQ FAQ  Forum Search   Calendar   Register Register  Login Login

ExecuteSave called twice on timeout

 Post Reply Post Reply
Author
kimj View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 09-May-2007
Posts: 1391
Post Options Post Options   Quote kimj Quote  Post ReplyReply Direct Link To This Post Topic: ExecuteSave called twice on timeout
    Posted: 15-Jun-2011 at 6:51am
No, this is not currently configurable, but you can set various timeout values to avoid the problem.  As you mentioned you can modify the client's SendTimeout, and also the Transaction timeout and the ASP.NET execution timeout.  Here's more info on what's configurable - http://drc.ideablade.com/xwiki/bin/view/Documentation/understand-timeouts
Back to Top
LarsDraco View Drop Down
Newbie
Newbie


Joined: 09-Jun-2011
Posts: 2
Post Options Post Options   Quote LarsDraco Quote  Post ReplyReply Direct Link To This Post Posted: 15-Jun-2011 at 1:27am
Thanks for your answer! Is there a way to get rid of this behaviour?
Back to Top
kimj View Drop Down
IdeaBlade
IdeaBlade
Avatar

Joined: 09-May-2007
Posts: 1391
Post Options Post Options   Quote kimj Quote  Post ReplyReply Direct Link To This Post Posted: 14-Jun-2011 at 6:09pm
This is by design.  Any timeout exception will trigger an automatic retry, which is what you're seeing.
Back to Top
LarsDraco View Drop Down
Newbie
Newbie


Joined: 09-Jun-2011
Posts: 2
Post Options Post Options   Quote LarsDraco Quote  Post ReplyReply Direct Link To This Post Posted: 09-Jun-2011 at 3:02am
I have a problem with the EntityServerSaveInterceptor. When I do some stuff in the ExecuteSave method and it comes to a send timeout, because the stuff I do in the ExecuteSave method takes to long -> the ExecuteSave method will be called again... Is this by design???

The problem can easily be reproduced with the following EntityServerSaveInterceptor (assuming the send timeout is set to the default 1 minute):

public class MyEntityServerSaveInterceptor : IdeaBlade.EntityModel.Server.EntityServerSaveInterceptor
{
protected override bool ExecuteSave()
{
System.Threading.Thread.Sleep(61000); // Sleep produces timeout -> ExecuteSave will be called again
return base.ExecuteSave();
}
}
Back to Top
 Post Reply Post Reply

Forum Jump Forum Permissions View Drop Down