Tekk News

Friday, May 26, 2006

Pessimism Is The Key...

Well, after battling it out in my own head, as well as a meeting I called for with my fellow programmers at work, and finally my posts to online message boards, I ended up with a solution to my Menu Permission dilemma. My intension was to have the Server.exe take care of the initial menu security settings and then allow the client to make "manual updates" to it. My problem was that in order for the Server.exe to make the initial menu permissions when creating the database, it needed to know what the "current" menu structure was on the Client.exe. Which meant that either the Server.exe had to somehow "dynamically" retrieve the most current menu structure from some outside source, or it had to be hard coded into the Server.exe itself. Needless to say I was not fond of the latter of those two choices. So I started brainstorming (with help) on to what I could design to accomplish our needs. The final idea was to add another field to a "App-System" table found in the database, which would house the version number of the last Client.exe menu structure to be created/updated in the database. Doing this would allow the Client.exe to check the database during load-up and realize that the menu structure stored on the database "may" be outdated. Knowing that the Client.exe currently loading up is newer then the last menu structure stored, the Client.exe would then go through the process of "updating" the menu structure on the database. When it is done, it stamps its own version number into the table, and goes along its merry way.

Of course any good programmer should foresee that this design could cause problems. Specifically if two (or more) Client.exe's happen (by chance) to load at the same exact time. This would mean that those Client's involved, would all be trying to update the same Table at the same time. So, how can we avoid this potential problem? My first though was to create yet another field in the table, a bit field called IsMenuUpdating. Then when one client begins it's update, all other clients will wait until it is completed. Problem is, if I performed a simple "check if IsMenuUpdating = True, if not, make IsMenuUpdating = True else wait" routine, there is still the chance that two or more clients checked the table at the same instant when the fields value was equal to false. So I am still in the same predicament as before...

Now to see if there is a way to implement Pessimistic Table locking on an SQL Server...

posted at 9:25 AM by Tekk Guy | Permalink |

0 Comments:

About Me

Name: Tekk Guy
Country: United States




About Me: I'm that tech guy…you know the one. When things are broken, I fix them. When they don't make sense, I explain them. When nothing is getting done, I do it. When a void occurs, I fill it. When there is silence on the call, I state the necessary. I'm that guy in IT that is relied upon by the competent as the nth tier of support, overlooked by management, and despised by the slackers. An InfoTech professional, aficionado of all things technological. I've been getting my geek on full-time since 1993, and have worked with information technology in some capacity since 1997 including VB 4-6, ASP, .Net, SQL, Java, HTML, ColdFusion, VBS, JS, Crystal Reports, COGNOS and more. I've worked on global scale environments for Fortune 500 companies and as a software engineer for local government agencies. My expertise is in Visual Basic currently in the .Net flavor, and focuses on user applications. I am also currently active in the ASP.Net programming arena, specializing in DotNetNuke Module development, site creation, and administration. Stated simply, if you need to get information from a-to-z, I'm the guy you want to see.


See my complete profile

Archives

March 2006
April 2006
May 2006
September 2006
October 2006
January 2007
July 2009
August 2009
November 2009
February 2010
November 2010
April 2013

Recent Entries




Progamming Links

.Net Rocks!
GotDotNet




Get awesome blog templates like this one from BlogSkins.com