This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Recently I got a Project. A hospital has a software with number of modules like Transaction, Billing. etc etc. All kind of modules which is needed for an Hospital management. The most awkward thing with the application is that the application runs in VB 6. And the back end is oracle 9i(this is a good thing).
The Hospital has more than 150 terminals. The systems remain very busy all the time. As they are using VB6 which uses ADO.
ADO .NET addresses the above mentioned problems by maintaining a disconnected database access model which means, when an application interacts with the database, the connection is opened to serve the request of the application and is closed as soon as the request is completed.
Once the Application in the Hospital got hanged,because each time a request is needed to be sent to the Oracle Database, opens up a new connection. A oracle database expert was called for that reason and he increased the default number of session (150) to 2000. Application has started running but due to the connection traffic the application is too slow. I do programming in VB.NET and sometimes in Java too. What I have suggested is that a .dll file must be created which will have a reference inside the vb 6 code. The select Sql Commands from the vb6 will be send to the .dll file, that will create an XML file from the dataset in vb.net. A .XSL file will be used to organize the xml format to make this file readable to recordset in vb6.
I made a demo of an application using vb6 and VB.NET with a small data from MS access. The process runs successfully. What I am more anxious about is that the XML file which will be created in Real scenario will be very very heavy in size. That will definitely cross more than 5 MBs. And the reading from that file will be slow. But not as slow as it is in present condition.
VB.NET uses DOM to read and write the data which is a tree structured and It takes more time to read and write a XML file than the SAX Processes which is in Java.
Can I refer a Java Classes to do the thing in for the issue? If Possible how can I do that? and what could be the issues. Now its not feasible to change the whole application to any other platforms. we need to change the transaction part.
So, I would like to get some opinion regarding the issue.
The application can't be changed now. As its a huge application it will need a huge time. Thanks for your opinion. I will go with that. Just cutting the codes of opening connection through VB replacing that with opening xml file and .net dll reference codes. I am worried for the kind of file that will be created, huge data together, inside a single XML file, is the biggest challenge. Reading those may become a nightmare.
Seems like a client-server architecture problem. The obvious (although expensive maybe) is to scale up the Oracle server. If size is a problem, XML doesn't seem the best idea: there's lot of information you don't need, and parsing it will never be fast. Why do you need the XML file? Can you use some kind of binary file? What about Excel or Access format? They're easily accessible though ODBC. (probably even CSV files would be better). If the application uses VB data controls directly binding the UI with the Database, I don't see an easy way out other than converting the whole app. to VB.NET to enable a "disconnected" mode (hey! is Microsoft, that should be easy).