Click here to Skip to main content
15,884,176 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all,

I'm implementing a program (MYPRO) to transfer data between two systems; the communication method between them uses sockets. Source data is stored in an Oracle database (REQUEST table, contains three columns. They are: requestid Number, requestdata Varchar(1000), status Number). MYPRO must always check the REQUEST table, if it has new data, MYPRO gets this and sends it to the target system. It gets a response from target system and updates response data to source system (RESPONSE table (requestid Number, responsedata Varchar2(1000))).

Data in REQUEST table is very large (5 million records total and data to exchange between two system is about 5000 record/h). When testing I see that the exchange rate is 1 record/second (from getdata, update status, send data, receive data and update responsedata), so source must open more than one socket to target system.

Source system can open multiple connections to the target system based on the number of permitted users (information for the permitted users is in requestdata) and the number of messages sent to the target system depends on the number of users that have been permitted.

For example, if the source has three permitted users at a time, the source system is only permitted to send three messages with information about the three different users to the target system.

Could you, please show me how to implement this program. Sorry for my bad English.

Thanks and best regards,
Posted
Updated 31-Dec-10 23:53pm
v3
Comments
Slacker007 1-Jan-11 5:54am    
Edited for spelling, grammar, and readability. Added tags.
Sergey Alexandrovich Kryukov 1-Jan-11 6:57am    
What did you try? What are your own ideas?

I'm answering this on the assumption that you are exchanging data between .Net clients and a .Net server.

The aproach I'm going to outline have successfully been used deal with far more data than your question indicates.

1. Use the classes from System.Data.OracleClient directly.
2. Create "[Serializable]" classes for data exchange, and use FastSerializer22 from Optimizing Serialization in .NET[^] for serialization and deserialization

3. Use remoting og windows communication foundation(WCF) - this should cut down on the work required to implement both the server and the client. You know:

Simplicity -- the art of maximizing the amount of work not done -- is essential.

   from Principles behind the Agile Manifesto
[^]

In the hope that it will save you from a lot of work,
Espen Harlinn
 
Share this answer
 
Hi Espen Harlinn
First, thanks for your quick answer. Target system here is not .net server so I can't using serialization.
Problem of me here is how to dispatching data to target system via many channels and those channels do works parallel (I don't have knowledge about design pattens).
Could you advice. Thanks.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900