Solved

Concurrency of objects across a network

Posted on 2008-10-23
7
228 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 36

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 36

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
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
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

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

760 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

20 Experts available now in Live!

Get 1:1 Help Now