I�d like to post this information on this site since I never find a clear answer to the next question: will an automatic failure result if the server will not start the RMI registries? This question really bothered me, since from a design perspective this is the right thing to do. At the same time there is no obvious place in the assignment that clear forbids manually starting the RMI registers (at least not for me). The assignment says that:
When you submit your assignment, each part (client and server) must be executable using a command of this form: �
Reading this it didn�t ring any bell to me that I should have RMI up and running or not. Even more, there is a special Restriction on RMI section in the assignment that specifies very clear what to avoid when using RMI. Whether to start or not RMI registers manually is not mentioned. Well my point is that Sun could make this point little bit clearer, since different people speak a different level of English and this assignment is for developers all over the world. As it is now it is more a language barrier then anything else. In my opinion Sun should not fail anyone because of his or her level of English. To conclude: I did pass SCJD and I did not start the RMI registers from within my server (I required the registers to be up and running in order for the server to start). Contrary to most of the posting on this site I did not registered an automatic failure. I didn�t even explain my decision in the choices.txt since I didn�t even consider another approach (having the server starting the RMI didn�t make much sense to me :confused . However in the userguide.txt I�ve explained how to start the server, mentioning two things:
The RMI registers must be up and running.
The CLASSPATH of the java process that runs the RMI registers must include the path to runme.jar.
Finally Sun did not failed me but I lost 10 points for the Network Server, getting 30 out of the 40, which I believe is a fair deduction. I hope this will help. Regards.
I am glad you passed. I agree that Sun could be clearer in thier documentaion, not just in regards to this issue, but many others as well.
I would still recommend starting the RMI programatically for this assignement, even if it doesn't result in an automatic failure. In my opinion, it is a better design decision given the type of user the application is being built to support.
“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” - Rich Cook
And I subscribe once more to what you�ve just said. Besides the philosophical debate, which is a better design than other, candidates must be (at least in this regard) very pragmatic. There is no point implementing a solution that leads to dropping valuable points, no matter what.