|
Without understanding your the architecture very well, the thing that jumps out for me is this:
Bob Steel-Smith wrote: I have an ASP.Net application that scans input then collects other data from SQL 2005 DB. This data is then required to be sent to a server application that "Captures" the information into an ERP application. The "Capturing" app takes +- 30 seconds to run for each transaction.
The thing that is probably hammering you is the collection of supplementary data from the SQL server. Can any of this be cached (ie is it Lookup style data), if so you should. It might also be better to take the load of this from the client to the server (and just send up the input).
The system seems slow, given that only 20000 transactions are being processed. As a comparison we receieve an XML file containing ~.5GB data consisting of millions of records, which we run through in ~ 15 mins, and we aren't exactly running on a beofwulf cluster.Antoine de Saint-Exupery: Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
|
|
|
|
|
Hi, The Server app is the slow one where it is actually typing in the data into the ERP application through the ERP client. (I hope thats not too confusing) What I have done in the past is to scan the input directly into a table which is the end of the users input so this is extremly quick. From there I scheduled three similar applications (each selecting unique data) running on the server every three minutes. The amount of rows selected from the "Source" table was limited so the server apps would stop and start during the day. For the system to process all the data I would need 8 of these applications. What I am trying to do is have one server application that can run eight instances at the same time. I hope this serves to clarify my problem further, Thanks.
|
|
|
|
|
So as I understand it, the real problem is this:
Bob Steel-Smith wrote: The Server app is the slow one where it is actually typing in the data into the ERP application through the ERP client
We have a similar "Screen Scraper" running against telnet and our "big iron" server. Such tecnology is terrible, slow and flaky (at least in my experience). The best solution is, as you suggest, to by pass the client altogether and access the database directly. This will was orders of magnitude quicker for us.
Where this is not an option I can suggest the following (apologies if I'm stating the obivous, but hopefully, my suggestions will help/ give food for thought):
- The screen scraper probably has a typing rate: increase this! - Simple but doubling the rate ~halves the time...
- Multi-thread the server so it can deal with more than one client (assuming it isn't already).
- Is it possible to call the ERP server though the same mechanism as the ERP client (e.g. are there service calls available?)
- Is it possible to expose the methods on the ERP service as web services. I know some of the IBM Mainfames now allow you to install websphere, which can be utilised by a .net client and can expose functions on the server automagicallly
- If you are not on a mainframe and you have a propriatary ERP systems, do they provide an API you can use to communicate with the server?
Antoine de Saint-Exupery: Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
|
|
|
|
|
Hi, We try to avoid direct writes to the database due to upgrades of the software etc.
1. Even if the automation took 15 seconds this would be too long for the capture screren to wait.
2. Multi threading, I know nothing about so will have to research it.
3. Service Calls are available
4. Web Services may be used. I have created a web service but the scanning web page sends an xml string to the web services and then waits untill the web service is complete before refreshing the page ready for the next scan. If the Web page sent the xml string and then refresed the page straight away whilst the web serviced ran in the background tha would probably be the solution to my problem. Is it possible to do this?
5. The API's for the ERP System were developed by a third party that new how to develop but did not know the original software. They have a lot of bugs and are extremely difficult to correct.
Thanks, I have an idea of where I need to go with this.
|
|
|
|
|
Bob Steel-Smith wrote: 4. Web Services may be used. I have created a web service but the scanning web page sends an xml string to the web services and then waits untill the web service is complete before refreshing the page ready for the next scan. If the Web page sent the xml string and then refresed the page straight away whilst the web serviced ran in the background tha would probably be the solution to my problem. Is it possible to do this?
Yes, this can be done asynchronously.
Bob Steel-Smith wrote: 5. The API's for the ERP System were developed by a third party that new how to develop but did not know the original software. They have a lot of bugs and are extremely difficult to correct.
Pity, this would really have sorted it out, 30s per transaction is far too much.Antoine de Saint-Exupery: Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
|
|
|
|
|
Right. I appreciate your assistance. I am self taught and write most of the code from examples so will do the same here. Thanks very much for your direction.
|
|
|
|
|
I was in your position a while ago, so I feel your pain.
I assumed you were working as part of a dev team, and further assumed (as a consequence) that there was a reason why your aspx pages were communicating directly with the ERP system. As this isn't the case another thing you really should consider is a 3-tier architecture. This is where the website talks to a Web/WCF service, and the service talks to the ERP and Database systems.
The main advantages of a 3-tier architecture are
a) Each layer can be made to deal with its own stuff, and only its own cleanly, which will improve code quality and maintainability
b) If you need to write something else (e.g. a Winforms app, automatic service) to interact with the ERP system you can call the service directly.
c) You can replace any given layer in the stack more readily.
d) Scalability
e) [Most useful for your immediate problem] The user can interact with the ASP site, the site fires the update to the server (which returns and continues to process in the background). Which is the requirement you need right now.
Googling for the term 3-tier architecture or n-Tier architecture should provide more guidance.
Good luck, should be fun!Antoine de Saint-Exupery: Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
|
|
|
|
|
i am using sql server 2000. i have two database and have same schema now i want to develop a c# apps which will take two parameter source server and destination server and sync all the table data from source server to destination server. please help me with industry standard logic.
thankstbhattacharjee
|
|
|
|
|
There is no "industry standard logic" for this. Disable any appropriate constraints, copy data, re-enable constraints. Pretty simple on the surface. There are plenty of tools available that already do this. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
|
Hi All,
Got a .Net WinForms application with lots of forms, controls etc. But I have an issue when my monitors are set to display at 120dpi instead of 96dpi.
The problem is that some controls (tabControl, treeView, pictureBox) are not seeming to keep there anchor properties (i.e. they do not resize as they did on 96dpi).
After searching around I have seen a few suggestions one of which was to set the AutoSizeMode of the form. If I change this to .None then the resizing issue is solved. However this leaves and issue with fonts re-sizing and being clipped by other controls etc. Any other AutoSizeMode causes many control to not resize. Plus some control are added on the fly and are not compensated for when in AutoSizeMode = Font anyway.
Can any one offer a solution to this, which must be a common (unknown to most) issue?
Basically I just want to apply a settings of some sort which will stop any controls scaling based on the DPI setting. Is it possible?
Thanks in advanceLife goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
There is web service which takes a string as an input and I want a web control to be returned as a out put from that web service. However, when I do so there is an error that web controls that cannot be serialized.
Is there any other way by which I can achieve the same. Please help?
|
|
|
|
|
Of course you can't return a control from a web service, what would be the point anyway.
You should stop what you are doing and read up on what exactly a web service is and what it is used for. I know the language. I've read a book. - _Madmatt
|
|
|
|
|
A web control is a pretty complex object to be returned through a web service. Typically you'll only build web services that return data, the information you'll bind to the control, not the actual control.
If the web control you use is based upon the information you send through the web service, you may just want to return instructions on which web control to use, then build it on the web side.
|
|
|
|
|
Hi Developers
I decide to develop an application with C# which uses SQL server express edition.
My application shall works on the local network and some workstations use the SQL data simultaneously.
Beforehand I developed similar application with ODBC technology.
I pursue better idea, So I listen your good recommendation.Best Regards,
Reza Shojaee
|
|
|
|
|
|
You can use sqlconnection for local client and odbcconnection for remote client Best Regards,
Reza Shojaee
|
|
|
|
|
Depends how big your project is but it is worth Looking up LINQ to Entities and NHibernate. These are both ORM frameworks that allow you have a relational database, whilst living in the object world on the C# side. After this, LINQ to SQL is a possible, lighter weight choice. Finally you could use straight ADO, but in a good implementation this alone can be cumbersome.
NHibernate currently has better features, but long-term LINQ Entities might be the pony to back, as the framework is by Microsoft, and comes with .NET 3.5 as standard.Cpianism: I have a negative number in my Rep so please fix it.
Chris Maunder: That isn't a bug.
|
|
|
|
|
Hi My friend
My project isn't very big, But I like new experiences.
Beforehand I heard about LINQ but NHibernate is unfamiliar technology for me.
My project is a windows application, these technologies only use for web or no?
Do you know good example of these technologies ? Best Regards,
Reza Shojaee
|
|
|
|
|
Reza Shojaee wrote: My project is a windows application, these technologies only use for web or no
These technologies are intended to allow .net applications (of whatever type) to communicate with the database. As long as you can connect to the database across your network, they should be fine.
Reza Shojaee wrote: Do you know good example of these technologies
I suggest either doing a search on this site (I'm sure there are some excellent articles around), or googling for them. I started using these a while back, so I haven't looked at introductory articles in a while.Cpianism: I have a negative number in my Rep so please fix it.
Chris Maunder: That isn't a bug.
|
|
|
|
|
|
|
|
|
Nematjon Rahmanov wrote: Please stop chating in arabianFarsi
They've been reported, when the hamsters wake up, doubtlessly they'll be banned.Cpianism: I have a negative number in my Rep so please fix it.
Chris Maunder: That isn't a bug.
|
|
|
|