Hello (e-mail address removed),
s> 1. "business logic is contained in individual exe" means that the
s> webapp does not contain the actual calculations. These are kicked
s> off from the web app on a button click by the user - we call each run
s> a process.
So it's just the EXE process? hmmmm.... what's the reason of this and not
the some kind of appservices, like enterpriseServices or WebServices?
s> 2. The business logic itself reads the data from files... validates
s> them pumps them into the DB (SQL Server) - this happens pretty
s> quickly.
s> Then reads the data from the DB (selects) into in-memory tables.
s> Applies some rules on them, and makes inserts into another in-memory
s> tables and finally inserts and updates the SQL Server DB tables.
Which DB is used? I'm asking this because in case of SQLServer 2005 you can
save your resources performing reading data and applying rules completly
on the DB size with using SQL .NET components
BTW, have u considered any possible cased to load data from files directly
to db and process all work there?
s> The
s> part that takes long when multiple users kick off their own processes
s> is the actual calculation where there maybe in-memory tables from
s> multiple processes.
Yep, so consider sharing for the data, if they are the same for the all users
(MS Cache Application Blocks as the case)
BTW, I'd look at the object pooling too (for example in EnterpriseServices
it's can be turned on/off too easy)
s> 4. No we have not yet tries cacheing. We were concentrating on
s> optimizing the sql queries till now. Will look into that now.
Right, the more calculation next to DB the better performance
s> 5. Yes, I am looking into that as well. Are there some that you can
s> suggest? I have ANTS so far that I think will do the job and is
s> reasonably priced.
CLRProfiler, Compuware DevPartnet, JetBrains .Trace
s> Michael Nemtsev wrote:
s>
Hello (e-mail address removed),
I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that
get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)
What does "business logic is contained in individual exe" mean? Who
starts them, where are they hosted?
I am having an issue with performance with this architecture.
How do u get this?
the exes themselved are multi-threaded and can have multiple
instances (this means that there are these mutliple datasets on the
app server).
Have u tried to use caching?
Are there any guidelines that can help me establish how I can
improve performance - increasing memory, adding an app server
(clustering), adding cpus, etc. Any advice from you will be
helpful!
Firstly use some kind of performance tool to understand the
bottleneck.
---
WBR,
Michael Nemtsev [C# MVP] :: blog:
http://spaces.live.com/laflour
"At times one remains faithful to a cause only because its opponents
do not cease to be insipid." (c) Friedrich Nietzsche
---
WBR,
Michael Nemtsev [C# MVP] :: blog:
http://spaces.live.com/laflour
"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche