Long running BO command.

Long running BO command.

Old forum URL: forums.lhotka.net/forums/t/12832.aspx


Ondrej posted on Friday, February 13, 2015

I am using CSLA.NET and I have problem with executing long running commands on server from client.Underlying WCF connection is terminated after a minute a client doesn't get a result.

 My idea was to use second command for periodically observing progress of first command (running in new thread) as a benefit I get option get status information and result once is finnished. But unfortunately I can't get it working without getting it too much complex. Any ideas or anything in CSLA which will help me with this?

 

ajj3085 replied on Friday, February 13, 2015

Wcf has a multitude of different timeouts.  you'll need to update your config file on both ends to increase them.  This page should point you in the right direction.  http://www.lhotka.net/cslanet/faq/DataPortalFaq.ashx

Ondrej replied on Monday, February 16, 2015

Hi, I am aware of this option but this is just workaround and can have other consequences. I would do it as a last option. Any ideas from design point of view?

ajj3085 replied on Monday, February 16, 2015

Ondrej
Hi, I am aware of this option but this is just workaround and can have other consequences. I would do it as a last option. Any ideas from design point of view?

I don't consider this a workaround; you have an operation that takes longer than the default timeout, so increasing the timeout is the right way to go. 

Your only alternative is to have your command BO somehow initiative an asynchronous process.  For example a Windows service which will pickup on a request logged to your DB and then execute the actual work.  Your data portal request will of course return very quickly, but the work the user has asked to do won't be completed, so you'll need to figure out how to handle that as well.

Putting the work on a background thread running under Asp.net would be a bad idea.  Obviously this is quite a bit more work than just increasing the timeout via the config file.

Copyright (c) Marimer LLC