Solved

Concurrency of objects across a network

Posted on 2008-10-23
7
229 Views
Last Modified: 2012-05-07
I'm interested in finding out if anyone has worked on systems or has possible suitable options to keep objects in applications running on different pc's in sync. Bascially if two people have the same object loaded in their applications and one updates information on it, I would like ideas or methods so that after saving the objects they would broadcast their changes over a local network so that others will get updated information.
Obviously people don't know my complete network setup, but I'm hoping their are some good general methods for doing this out there.
0
Comment
Question by:mikelittlewood
  • 4
  • 2
7 Comments
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22784140
i guess you would have a centralised place where you get/save your data

If you use an oracle database to read/save the objects
there is the DBMS_ALERT package
this allows the application to subscribe to events on the database like objects being changed

it does need a bit of work ...


0
 
LVL 15

Author Comment

by:mikelittlewood
ID: 22784187
As i mentioned i didn't give my whole current setup but maybe I should give a bit more information.

I do already have a centralised dataserver that all applications connect to for new database keys and this is also the place I was going to do the broadcasting of changes from. I'm just interested in whether or not people have a good method for the transfer of data, format, etc etc

Also I use MS SQL 2000 at the moment though hopefully in the future we will be moving to MS SQL 2008
Obviously I won't have the use of that Oracle package but maybe there is something similar in MS SQL? Though who am I kidding, this is microsoft :o) This though isn't necessarily needed as the dataserver will be the one publishing all changes across the network, I'd rather leave the database quite dumb.
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22784217
hehe,
I looked for this in that thing MSSQL2000  they call a database.

For short I gave up.
What we do is create a thread, this calls a stored procedure on the db in the DBMS_ALERT package
The stored proc can return on specified times (we set it to 1 day)
and the return value is time_out or the event that triggered the stored proc.
in case of time_out nothing happened, otherwise ... data changed

for stopping the db we let the DBA send a message (by script off course) to pause the events for 2 minutes
as to let the DBA restart the database and not let our apps go crazy

i think you should include MSSQL 2005 / 2008 to let other experts see this question
and to find out if this is possible on MSSQL
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 15

Author Comment

by:mikelittlewood
ID: 22784439
I'll hold on for a bit here to see if anyone knows any standard techiniques, but thanks for the comments.
0
 
LVL 14

Accepted Solution

by:
SteveBay earned 250 total points
ID: 22797026
I don't know about "standard techniques" so to speak but I am very interested in this topic as I would like to ultimately implement similar solution. Preferably one that is not DB Server dependant

Currently I have a semaphore tables that keeps track of all object DB writes. The clients run a thread off of a timer event that checks the semaphore and updates itself if it finds a self referencing record in the semaphore table. The trick is: knowing when all other instances of the object have checked in so that it may delete the "used-up" semaphore. I do this buy keeping an instance count in objects db record.

Does this sound convoluted? It is! Though it works pretty well as long as there aren't too many client crashes which tend to leave orphaned semaphores that need to be manually cleaned up from time to time. Also this does not address clients creating new instances of the object. For now this is not a problem I need to solve but eventually it's going to come up.

Im sure there is a better way. I have been tempted to write a Service App that would keep track of the semaphore items and send broadcast messages to the clients however I do not have a good design in mind nor the time to chase it right now.

Perhaps my comments will inspire some discussions of better techniques if not "standard techniques."

I am eager to hear from some of the smarter experts out there.
0
 
LVL 15

Author Comment

by:mikelittlewood
ID: 22811995
I'll let you know how I go SteveBay
0
 
LVL 15

Author Closing Comment

by:mikelittlewood
ID: 31631836
Needed some more examples or suggestions from other experts, but this got me started.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
IExtractImage Delphi 14 201
problem when i try to pack my dll file with upx 9 71
Send message from delphi to whatsapp, is it possible? 3 1,149
Delphi 2 47
A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now