Forums Register Login

Passed SCJD!!!

+Pie Number of slices to send: Send
I passed my SCJD!! The grading breakdown is as follows:

Grade: P
Score: 335
Comment: This report shows the total number of points awarded for each section. The maximum number of points is 400, to pass you need a score of 320.

Section Summary:
Section Max Actual Points Points
General Con: 100 88
Documentation: 70 70
OOD: 30 30
GUI: 40 40
Locking: 80 80
Data Store: 40 20
Network Server: 40 7
Total: 400 335

Don't know why I got only 7/40 for Network Server, and only half credit for Data Store. Also am surprised I got full credit for locking, as most people seem to get docked points there.

I had the B&S assignment with lock cookies. I used only 1 RMI Remote Implementation reference in networked mode (and only 1 Data class reference) because of the requirement for lock cookies, instead of a Remote Implementation for each client.

I had a simple search functionality that did both "begins-with" and "exact-match" searches for the search criteria.

I did allow for switching between modes from the GUI.

I used a timeout option for my locking mechanism. It times out after 30 seconds for a locked record, so the locking manager forces an unlock for any locked records that timeout.

My design choices doc was also about 13 pages long. I did not want to leave anything out, so I was a bit thorough.
+Pie Number of slices to send: Send
Congratulations!

How long did it take them to grade it?
+Pie Number of slices to send: Send
Congrats dude!

To Jack, It took them a little bit longer than 6 weeks to release my score.
+Pie Number of slices to send: Send
Network Server: 40 7

That's a huge deduction, it would be nice to find out what is it that they didn't like so much. Can you tell us more about your server design?

Anyway, congratiulations, and welcome to the club!
+Pie Number of slices to send: Send
Good job, You got full points in locking which I only got 44 points, Would like to invite u to this thread to share your implementation, maybe I can get answer of why I lost 36 points in such aspect from u. appreciate if u can come.

Why I lost points in locking, pls comment on my code
+Pie Number of slices to send: Send
It took only 2 weeks for them to reply with my score. I was surprised. I was expecting it to take 4 - 6 weeks as it seems to be for many people.

My network server was extremely simple, maybe too simple. It was only a few lines of code with no methods in it except for the constructor. The constructor took in the database file location and then instantiated the RMI Remote Implementation reference, created the registry, and then bound the remote implementation to the registry. I put System.out.printlns throughout the process for updates to the user. I also bound the remote reference last in case of an error/exception (so the remote reference would not get bound if an error occurred). Other than the startup dialog, there was no GUI for my server.

Compared to the rest of my project, perhaps the server was not robust enough. I don't know why else I lost so many points for that section of the project.

My advise would be to document all major decisions you made thoroughly in your choices document. Just pick out the things you feel were important and explain in detail why you did what you did (or why you did not do something). My document was 13 pages when I was finished, but they gave me full points for doc. I think that as long as you can explain yourself as to why you implemented your solution the way you did, you'll do fine. The essay exam is also just a reiteration of this. I would imagine you do not need 13 pages or so to have a thorough choices doc, that is just what I ended up with.

Also many thanks to all who answered so many of my stupid questions on this forum!!! Thanks to Frans, Darya, Andrew, Wei Ju, Zee, Paul, and anyone else I am forgetting. Good luck to those still working on it!!

Zee, I will reply regarding you locking question on your thread.

Thanks again and God bless!!!
+Pie Number of slices to send: Send
Congratulations David
+Pie Number of slices to send: Send
David: My network server was extremely simple, maybe too simple. It was only a few lines of code with no methods in it except for the constructor. The constructor took in the database file location and then instantiated the RMI Remote Implementation reference, created the registry, and then bound the remote implementation to the registry.

The way I understand your server design is that the database file name must be specified at the time when the server is started. In other words, if the client wanted to connect to a database with a different name, the server would need to be restarted. If that's correct, I am speculating that it was the reason for a big deduction on the server design.
+Pie Number of slices to send: Send
Hi David,

Congratutlations .

I planned for the essay exam for next friday as I thought but when looked again to my schedule I saw it's even Thursday so I'll reschedule for next Monday to be on the safe side I must still do the
design decisions document and testing.

Good Luck for you.

Regards,
Darya
+Pie Number of slices to send: Send
Congratulations David!

Frans.
+Pie Number of slices to send: Send
"Please post your Exam Results in the Sun Certification Results forum."
+Pie Number of slices to send: Send
 

Originally posted by John Smith:
David: My network server was extremely simple, maybe too simple. It was only a few lines of code with no methods in it except for the constructor. The constructor took in the database file location and then instantiated the RMI Remote Implementation reference, created the registry, and then bound the remote implementation to the registry.

The way I understand your server design is that the database file name must be specified at the time when the server is started. In other words, if the client wanted to connect to a database with a different name, the server would need to be restarted. If that's correct, I am speculating that it was the reason for a big deduction on the server design.



I would have to respectfully disagree. The B&S requirements do not state that the database location must be configurable from the client and I do not believe this is common to mots people's designs.
+Pie Number of slices to send: Send
The B&S requirements do not state that the database location must be configurable from the client and I do not believe this is common to mots people's designs

Do you have somthing like this in your requirements:


the program must allow the user to specify the location of the database, and it must also accept an indication that a local database is to be used

 
+Pie Number of slices to send: Send
 

Originally posted by John Smith:
The B&S requirements do not state that the database location must be configurable from the client and I do not believe this is common to mots people's designs

Do you have somthing like this in your requirements:




Yes. When the server is started, you specify the database location. When you start the client, you specify the network location of the server. when started in local mode you just need to specify the database location.

The client never specifies the database location, just the IP address of the server.
+Pie Number of slices to send: Send
 

The way I understand your server design is that the database file name must be specified at the time when the server is started. In other words, if the client wanted to connect to a database with a different name, the server would need to be restarted. If that's correct, I am speculating that it was the reason for a big deduction on the server design.



No, this is not the case. I allowed for the user to switch servers while in networked mode. They could do this from the client GUI. In such a case, all I did was take the newly specified server name (and port) and send that data to my database factory class that did a RMI naming-lookup for the name and port. It then returned a RMI Remote Implementation under the guise of my db interface. Of course, the server I was switching to had to already be up and running to do this. The server switched to might be connected to a different database file. The server itself was not restarted. I just did a naming-lookup call to get the desired Remote Implementation reference from the server. So I'm still not sure why I got such a low score for the Network Server section.
+Pie Number of slices to send: Send
I allowed for the user to switch servers while in networked mode. They could do this from the client GUI. In such a case, all I did was take the newly specified server name (and port) and send that data to my database factory class that did a RMI naming-lookup for the name and port.

Again, from your description, it seems to me that once the server is started, the client can only connect to a database with a predefined name. There is no way for the client to connect to the same server by specifying a different database name, without the restart of that server. My server design was a bit more flexible -- the client could specify any database file name on the remote server, and the server would connect, if such database file exists on the server. Both designs can be questioned, of course, -- I am just trying to understand the reason for such a big deduction in your server score.
+Pie Number of slices to send: Send
John,

I could be misunderstanding your implementation...but could you clear something up for me?


My server design was a bit more flexible -- the client could specify any database file name on the remote server, and the server would connect, if such database file exists on the server.



Does this machine that your server could connect to different databases simultaneously?

If not, how do you deal with the situation where client A is performing a transaction on database A, but client B instructs the server to switch databases - wouldn't this cause a problem?

Or do you have some locking scheme to take care of this?
+Pie Number of slices to send: Send
btw - Congratulations David!
+Pie Number of slices to send: Send
Does this machine that your server could connect to different databases simultaneously?
If not, how do you deal with the situation where client A is performing a transaction on database A, but client B instructs the server to switch databases - wouldn't this cause a problem?


Yes, client A could be connected to database contractors.db, while client B could be connected to database reservations.db. Client C may be connected to both. The way I think about those database files is as database tables. I know, the requirements only mention one table, but they also say about how great and prosperous your client will be, which tells me that they will probably want to add some more tables to their database. When and if that happens, my server was designed so that not a single line of code would need to be changed in the server code.

I would also say that I threw away all the possible enhancements that were not explicitely in the requirements. But this particular one seemed to be almost natural to implement. I can't say, of course, that it's what the exam assessors expect -- my only evidence is that my assessor gave me full credit for my server design.

I still do feel, however, that David got a deduction because he implemented the "user must be able to specify the database" requirement too loosely. That is, in his implementation, the user is able to specify the database, but it will require the server restart. I don't have his full instructions, though, so it could have been something else. Whatever it is, it's got to be big to explain the magnitude of the deduction.
[ June 21, 2005: Message edited by: John Smith ]
+Pie Number of slices to send: Send
I understand what you are saying now John. Your server must have had a GUI of some kind that allowed the user to change the database file the server was connected to. Interesting. My solution did not allow for this. If the user wanted to connect to a different remote database, they would have to connect to a different server that is already up and running, which would then be connected to the desired database file.

I did not even think of allowing the user to change database files within the server. I only gave them the ability to switch servers if in remote mode or switch database files if in local mode. I also allowed them to switch modes as well.

But your point is an interesting one which might account for the big deduction in my Network Server score.
+Pie Number of slices to send: Send
Congratulations, David !
+Pie Number of slices to send: Send
Your server must have had a GUI of some kind that allowed the user to change the database file the server was connected to.

No, I didn't have server GUI. The part that allowed the user to specify the database file name was in the client. Here is how it looked like (Andrew, if it's giving away too much, feel free to delete):

+Pie Number of slices to send: Send
 


Yes. When the server is started, you specify the database location. When you start the client, you specify the network location of the server. when started in local mode you just need to specify the database location.

The client never specifies the database location, just the IP address of the server.



I think I'm going to agree with Jack Gold here...


the program must allow the user to specify the location of the database, and it must also accept an indication that a local database is to be used



I interpret "location" here as the server the database resides on - I'm not sure the client should actually be able to change the database the server is running.

It's just a matter of interpretation of course, but I think if you document your decision with reasonable supporting arguments, they can't punish you with a deduction as large as the one David got.


This document deliberately leaves some issues unspecified, and some problems unraised. Your ability to think through these issues, in the face of realistically imperfect specifications, and come to a tenable solution is something upon which you are being graded.



I don't think that this interpretation of location is more or less "tenable" then John's - it's quite impossible to know exactly which solution is more correct from the instructions, so it's all down to how you justify your interpretation.

Or maybe I'm just trying to avoid all the extra work of implementing this John's way...

Thoughts anyone?
+Pie Number of slices to send: Send
 

It's just a matter of interpretation of course, but I think if you document your decision with reasonable supporting arguments, they can't punish you with a deduction as large as the one David got.



I do not believe the user should be able to change the database file location that the server is using from the remote client GUI. How would you account for other remote clients concurrently interacting with the server? This would adversely affect them.

I think it would be good to implement this functionality, but do it from the server. Some kind of GUI may have to be provided so that the user can change the database file location the server is using. But this would be done on the server, not from a remote client.

The question then becomes how to notify all of the remote clients that the database file location has changed on the server. The clients could remain bound to the RMI server (for an RMI solution), but they would need to know that their requests are now being communicated to a different database file.

I also documented my decisions with 13 pages of my choices.txt. Perhaps I did not write enough about my server implementation, but I think that my low score in that area might be due to the fact that I did not implement this functionality, but allowed for everything else (switching modes, switching servers in remote mode, and switching database locations in local mode).
+Pie Number of slices to send: Send
 

Originally posted by David Sham:


...but I think that my low score in that area might be due to the fact that I did not implement this functionality, but allowed for everything else (switching modes, switching servers in remote mode, and switching database locations in local mode).



is this switching stuff really necessary ? i fail to see requirements leading to this decision from all i have read so far.
+Pie Number of slices to send: Send
 

Originally posted by Uwe Sch�fer:


is this switching stuff really necessary ? i fail to see requirements leading to this decision from all i have read so far.



There are alot of experienced ranchers who return to the forum to show us their solutions and offer advice, but often it seems they have developed beyond the scope of the current requirements.

While the forum is useful, the downside is that everyone has differnt requirements and the people who are most vocal about their solution are typically puffed up about their code which goes beyond the basic requirements.

In this case, I think there was a bit of "requirements creep".
+Pie Number of slices to send: Send
 

is this switching stuff really necessary ? i fail to see requirements leading to this decision from all i have read so far.



Switching modes, database file locations, etc. was not required by my assignment, and I would guess probably not required by other's assignments either. Everyone's assignments may have slightly different requirements. But I put in this funtionality as a nicety. You should be able to pass without such functionality though.

My apologies if I've come across as "puffed up". This is not my intention. Just want to share my experience. Thanks.
+Pie Number of slices to send: Send
Hi Jack,

Originally posted by Jack Gold:
There are alot of experienced ranchers who return to the forum to show us their solutions and offer advice, but often it seems they have developed beyond the scope of the current requirements.

While the forum is useful, the downside is that everyone has differnt requirements and the people who are most vocal about their solution are typically puffed up about their code which goes beyond the basic requirements.

Well, I am not sure about the idea that those posting here are "typically puffed up about their code", but I would agree that most (if not all) the posters (and lurkers) in this forum go beyond requirements in one or more areas.

The difference is that those who post code and ideas here are those people who are willing to have their code and ideas scrutinized. And this is when it is possible for people to identify that something has gone beyond scope (or has missed something critical).

But this also happens in other areas as well. For instance, we used to get a lot questions in this forum from candidates who had finshed Sun's "Java Programming Language Workshop" course asking about updating all connected clients whenever a booking was made - something that is not required for the certification, but was apparently highlighted in the course.

Personally, I don't see anything wrong with exploring ideas and concepts that are (far) beyond scope in this forum. Many candidates are using the Sun assignment as a learning process - a project that they can take as much time as they like, and play with concepts that they could not do with a work / university assignment. Personally, I think this is a good thing.

I also suspect that too many candidates went too far beyond scope in the "Fly By Night Services" assignment, as the newer assignments had an extra instruction added: "You will not receive extra credit points for work beyond the requirements of the specification." It is worth noting that the assignment that John and I had did not have this instruction - had I had this, I might have rethought many of my design decisions (and I might have finished the assignment a lot earlier than I did :roll: )

Regards, Andrew
[ June 22, 2005: Message edited by: Andrew Monkhouse ]
+Pie Number of slices to send: Send
I did not mean anyone any disrespect. I was making the observation that people are likely to discuss the areas that they went above and beyond the requirements, and are typically proud of the extra work they did, often not mentioning (or even realizing) that they went beyond the requirements. This can distort the scope of the assignment, especially for someone just getting their mind around it.

While the forum is VERY useful, I see this as the main drawback and its important to draw the distinction between what you MUST do, and what someone else has done that may appear necessary, but really isnt.
+Pie Number of slices to send: Send
One other thing I just realized. My unusually low score for the Network Server section may also have been due in part to how I answered the essay exam question that dealt with the server implementation of the project. I answered the question consistently with what I put in my choices doc, but then I put some nonsense about the flip-side of using RMI (trying not to give away too much about the essay question here). I was not quite sure what to put to answer that part of the question, so I put some rubbish that resulted in a very weak argument for that particular part of my answer. So perhaps how you answer the essay questions on the essay exam may affect your score as well.
+Pie Number of slices to send: Send
Hi Jack,

No problems - I may have been a bit over sensitive yesterday

Regards, Andrew
+Pie Number of slices to send: Send
Hi David,

I personally don't think this has anything to do with it.

My understanding is that the assessors only use the exam to confirm that you wrote the assignment. The only time it might make a difference to your score is if you gave a wrong answer in the exam and the same wrong answer in your design choices document (for example, if you said in both of them that you used RMI because it provided better network efficiency) - in which case, you might loose some general points (maybe).

Under the Fly By Night Services assignment, the Server points were broken up as:
  • locking (30)
  • error handling (8)
  • search algorithm: clarity and efficiency (15)
  • For a total of 53 points.

    Regards, Andrew
    [ June 23, 2005: Message edited by: Andrew Monkhouse ]
    And then we all jump out and yell "surprise! we got you this tiny ad!"
    a bit of art, as a gift, that will fit in a stocking
    https://gardener-gift.com


    reply
    reply
    This thread has been viewed 1259 times.
    Similar Threads
    Passed SCJD with 373/400
    Passed SCJD with 368points.
    Passed SCJD 366/400
    SCJD 367/400
    Hi, I have passed my assignment.
    Passed java developer certification
    Passes SCJD
    SCJP 91%, SCJD 370/400, SCWCD 93%, SCBCD 84%
    More...

    All times above are in ranch (not your local) time.
    The current ranch time is
    Mar 29, 2024 02:28:16.