posted 7 years ago
Phew finally. After 3 - 4 months patiently waiting (and cursing
), Prometric finally opened its door (in here where I am currently at now) for test takers. The essay exam is tougher than what I had in mind. Maybe it's because it has been 3 months since I finished the assignment. During the essay exam, I have difficulty recalling some of the small details I did in the assignment, although I did go through the assignment again few days before I took the essay exam.
It's going to be a long anxious and nervous wait now. See you guys again in 4 - 6 weeks time.


It's going to be a long anxious and nervous wait now. See you guys again in 4 - 6 weeks time.

SCJP6, SCJD, OCJWCD5
posted 7 years ago
At last! I received an e-mail from Sun/Oracle today and I've passed the exam!!
I would like to thank Roel De Nijs and Roberto Perillo for your guidance. You guys have really been a great help on this forum. I have the book 'SCJD Exam with J2SE5 2nd edition' with me when I was doing this assignment. It has helped too. Thanks to Andrew Monkhouse and Terry Camerlengo too!
Let's party. First round on me.
cheers!
P/S: Quote from the email
That means no score? I would really like to see which part I did not do well. Any ideas?
I would like to thank Roel De Nijs and Roberto Perillo for your guidance. You guys have really been a great help on this forum. I have the book 'SCJD Exam with J2SE5 2nd edition' with me when I was doing this assignment. It has helped too. Thanks to Andrew Monkhouse and Terry Camerlengo too!

Let's party. First round on me.

P/S: Quote from the email
You have received a passing score. Passing grades do not receive a score, just the pass.
That means no score? I would really like to see which part I did not do well. Any ideas?
SCJP6, SCJD, OCJWCD5
posted 7 years ago
Hi Allan,
Congratulations!
If you took the essay exam May 4, and you already got a grade... That's really fast!
They don't tell you your score anymore. A few months back you got a total score (and no per section break down), but now you'll just get "Pass" (if you fail, you would get your score, so you know which part you have to improve)
Kind regards,
Roel
Congratulations!

They don't tell you your score anymore. A few months back you got a total score (and no per section break down), but now you'll just get "Pass" (if you fail, you would get your score, so you know which part you have to improve)
Kind regards,
Roel
posted 7 years ago
These are some of my choices:
* Database schema is hard-coded; since we have only one database file, I've decided to keep it simple.
* Data class is a Singleton when constructed using DBFactory. Data class has a default access modifier constructor, which programmers outside the package would not be able to instantiate this class. So, the DBFactory must be used to construct this Singleton. Programmers that are working on suncertify.db package should know if DBFactory is used, Singleton Data class is retrieved instead of instantiating multiple Data class.
* Re-use of deleted records. DataFileAccess has a utility method next() which when called returns the next available record number.
* Did not implement add, modify and delete records function because they are not requirements of the assignment. Initially, I planned to display the records which date available has passed but that means an add room function has to be added because no rooms can be booked as the date of the records all are older than present date. As a result, to keep I decided not to implement any other functions other than the one mentioned in the requirement, which is book and search rooms.
* No record caching; query and updates directly to file database
* Uses wait() and notifyAll() on LockManager class which is a Singleton object; I decided not to use the concurrent API because I would like to understand the basic of locking using the low level methods before going to higher level methods.
* Decided to use notifyAll() instead of notify(); using notify() method adds complexity to the code as I would need to code it in a way that unique object has to be created and mapped to the record number that is being locked. This method will undoubtly be more efficient and consume less CPU cycles than using notifyAll() method. However, I decided to use wait() and notifyAll() on the Singleton LockManager object to simplify the code.
* Searching is filtered two times - one at data layer and one at business layer. Data layer looks for startsWith. Business layer looks for equals.
* Data implements DB interface. No SubDB interface created. Initially planned to use a SubDB interface but then as Roel advised, I should code agasinst the interface as much as possible.
* Uses a VO/POJO instead of String[].
* Uses RMI. My design here is I have one class - RoomServiceImpl. The diagram is something like this - RoomServiceImpl implements RemoteRoomService and RoomService. RemoteRoomService implements RoomService and Remote. RemoteFactoryImpl implements RemoteFactory. RemoteFactory implements Remote. Two concrete class - RemoteServiceImpl and RemoteFactoryImpl.
That's about it. Hope it helps.
@Roel: That's not fast. Apparently they didn't receive my submission too and I resend. But anyway, I'm a happy man now.
* Database schema is hard-coded; since we have only one database file, I've decided to keep it simple.
* Data class is a Singleton when constructed using DBFactory. Data class has a default access modifier constructor, which programmers outside the package would not be able to instantiate this class. So, the DBFactory must be used to construct this Singleton. Programmers that are working on suncertify.db package should know if DBFactory is used, Singleton Data class is retrieved instead of instantiating multiple Data class.
* Re-use of deleted records. DataFileAccess has a utility method next() which when called returns the next available record number.
* Did not implement add, modify and delete records function because they are not requirements of the assignment. Initially, I planned to display the records which date available has passed but that means an add room function has to be added because no rooms can be booked as the date of the records all are older than present date. As a result, to keep I decided not to implement any other functions other than the one mentioned in the requirement, which is book and search rooms.
* No record caching; query and updates directly to file database
* Uses wait() and notifyAll() on LockManager class which is a Singleton object; I decided not to use the concurrent API because I would like to understand the basic of locking using the low level methods before going to higher level methods.
* Decided to use notifyAll() instead of notify(); using notify() method adds complexity to the code as I would need to code it in a way that unique object has to be created and mapped to the record number that is being locked. This method will undoubtly be more efficient and consume less CPU cycles than using notifyAll() method. However, I decided to use wait() and notifyAll() on the Singleton LockManager object to simplify the code.
* Searching is filtered two times - one at data layer and one at business layer. Data layer looks for startsWith. Business layer looks for equals.
* Data implements DB interface. No SubDB interface created. Initially planned to use a SubDB interface but then as Roel advised, I should code agasinst the interface as much as possible.
* Uses a VO/POJO instead of String[].
* Uses RMI. My design here is I have one class - RoomServiceImpl. The diagram is something like this - RoomServiceImpl implements RemoteRoomService and RoomService. RemoteRoomService implements RoomService and Remote. RemoteFactoryImpl implements RemoteFactory. RemoteFactory implements Remote. Two concrete class - RemoteServiceImpl and RemoteFactoryImpl.
That's about it. Hope it helps.
@Roel: That's not fast. Apparently they didn't receive my submission too and I resend. But anyway, I'm a happy man now.

SCJP6, SCJD, OCJWCD5
posted 7 years ago
My mistake: I thought you took the essay exam July 4, but it is May 4 and indeed that's quiet a long wait you had to sit through. Apparently getting up early each day seems not so good for my attention
Allan Cheong wrote:@Roel: That's not fast. Apparently they didn't receive my submission too and I resend. But anyway, I'm a happy man now.
My mistake: I thought you took the essay exam July 4, but it is May 4 and indeed that's quiet a long wait you had to sit through. Apparently getting up early each day seems not so good for my attention

posted 7 years ago
So Roel, just to confirm, upcoming assignment submitter will no more get scores if they pass this certification, right? So we won't be able to know where we did right and wrong
(which area further to improve in future) as well as to put the score in the resume
(if it's really good score)
Thanks,
Seetha...
Roel De Nijs wrote:Hi Allan,
They don't tell you your score anymore. A few months back you got a total score (and no per section break down), but now you'll just get "Pass"
So Roel, just to confirm, upcoming assignment submitter will no more get scores if they pass this certification, right? So we won't be able to know where we did right and wrong


Thanks,
Seetha...