Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!

S Perreault

Ranch Hand
+ Follow
since Oct 29, 2003
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by S Perreault


If this makes you feel any better, the specs aren't very clear to someone whose FIRST language is English =)

Good luck on the resubmittal.

p.s. If this makes you feel any better, checking for your error in my code has led me to find a minor one in mine. Thank you very much for posting!
[ July 07, 2004: Message edited by: S Perreault ]
I set it up so the inconsistencies are a non-issue (I actually posted this ? about a month ago).

I have drop down boxes for the Contractor Name/location and I implement the starts with searching on the server side. Obviously, by sending in the exact Name/Location, I fulfill the client side requirements while fulfilling the server side (Data) by searching for inexact matches.

[ July 02, 2004: Message edited by: S Perreault ]

Thank you. I think I will use .html format to ease my mind about line wrapping =) EDIT My instructions do not allow html format for the choices.txt :-/

Also, I probably should have written all of the decisions in one file, I am not that organized and now have about 15 pieces of paper with scribblings on them 8)

[ June 18, 2004: Message edited by: S Perreault ]
My question has to do if we use returns in the textfile or just let each paragraph continue to the right as one long line?
An idea would be to always read the properties from the file for your Data class to find the database.

UI updates the properties file and then the data class is constructed from the properties file.

I don't know if this will help you but it's an idea =)

I interpreted it much more differently.

Search types

1) All records - return ALL records in the database
2) Name - return all records where name equals 'String'
3) Location - return all records where location equals 'String'
4) Name and Location - return all records where name equals 'String1' AND location equals 'String2'

I NEVER search using any other criteria than Name or Location...that being said, I haven't sent in my assignment either =)


I am only checking it the first time the client or server connects to the database. Since that file should not change (besides updates/deletes), the magic value shouldn't either.

I am using it basically as a test to ensure that the database file that is being opened is a 'Contractor' database file (for my project).


My Datalayer is where I store all of the business logic (including locking and unlocking of records). I also only use Contractor Objects (Javabeans) on the Client side and String[] on the server side. This layer translates between the two.

I've been testing threading and if the above graph is correct, then I am good to go for deadlock, critical sections, etc.

My goal is to have blocking at the minimum possible. However, it seems to me that it would be better to have non-optimal blocking and no risk of deadlock. I am not too strong on threading.

Thank you both for your replies.

Just to drill it into my thick head.

You may assume that at any moment, at most one program is accessing the database file; therefore your locking system only needs to be concerned with multiple concurrent clients of your server.

Heh, yeah I've read this about a dozen times. I honestly believe that each section is written by a different person. I have seen terrible specifications before but nothing like the scrap that comes with this cert.

I gather that this means:

ClientUI -> DataLayer -> Database

ClientUI -> \
ClientUI -> - -> RMI/Socket Server -> DataLayer -> Database
ClientUI -> /

Am I correct or very offbase.

Thanks for your time!
Is it okay to assume that in local mode, only one client will be accessing the database at one time?


Thank you for your quick response. I will go through my methods and ensure that the critical sections are protected.

16 years ago
Congrats Hugh, excellent score!

I was wondering if you synchronized any of your methods or only some interior parts of the methods. I am having a difficult time figuring out where I should be synchronizing.

16 years ago

Actually many CSRs would NOT have the ability to perform those actions. Usually a level one CSR would only be able to book contractors. If someone needed to unbook an appointment, the client would be sent to a higher level CSR who may be using a different application (or the same one with more functionality 'unlocked') to perform an unbooking.

Furthermore, to add new Contractors or delete old ones would probably come under the domain of a Manager or Admin. In a real world scenario, a company wouldn't want to let the level one CSRs perform such tasks on their database.

I have actually worked on a project that created an application that performed these tasks and many more.

I hope this helps.


I truly appreciate the time you took to read a very lengthy post.

I will take your ideas and work with them. I will have to agree that my ambitions of having an easily extensible backend are not fulfilled. I may just keep it at a minimum and only worry about the Contractor Database.

I will probably keep the Contractor object. I really dislike using String[] to handle what (I believe) should be a fully encapsulated object. =)

Thank you very much. It is greatly appreciated.

Have a wonderful day,
Gah! Now I know why many people are designing it to take place outside of the Data class. :-/

Now I have to redo all of my locking mechanism! Of course, better now than fail the cert =)

Also I have realized that my Facade layer implements all of the Data methods which, as you have mentioned, is unnecessary.

Thanks again Phil,