today I got a notice that I passed the certification. I don't know the score (I do not particularly care) yet, but I think that I could share my experience.
The story begins in May 2008 when I took the first part of the exam. I must admit that I didn't do much preparation, I just read the notes by John Wetherbie (Thanks John!) and went to the testing center. Surprisingly I passed. Well not so surprisingly, because I had a some experience (check out my linkedin profile) and at that time I had SCJP, SCJD, SCBCD, SCWCD certifications in my hands. But anyway, it was worth trying if I pass without preparation, although the score won't be any high (the actual score was 75). After this success I downloaded the assignment and I had put the certification to the idle state.
In 2009 on Christmas I returned back to the assignment, because I had plenty of free time to dig deep into it. In few weeks the assignment was done. Personally I usually do not read many computer books, I usually read parts that I need. For instance I haven't read the whole book about UML, I just searched for topics that were not completely clear to me.
HTML pages that serve as a main documentation have 17kb. Class diagram has 20 classes and that's probably all I can say (If you want to know something [e.g. advice] just let me know).
The worst part came when I wanted to submit my deliverables. After I found out how to submit the assignment I had sent an email on 5th of May, so the story begins like this:
5th of May - I sent the assignment
17th of May - I received the confirmation about the receival
28th of June - I reminded myself that it's been 6 weeks since I had sent the assignment
12th of July - OCP team apologized for the delay reasoning with the merger of the Oracle/Sun
27th of July - I reminded myself second time that it's been a while since I had sent the assignment
28th of July - Oracle thanked me for the submittion of assignment (I did not send any) and informed me that I should allow 4-6 week for the assignment to be graded
3rd of August - OCP team apologized for the delay reasoning with the merger of the Oracle/Sun (second time)
3rd of August - I sent my assignment to Oracle (second time)
10th of August - I received email that I sucessfully passed
I didn't pass the certification so I could be wrong, but I would:
1. Use the EJB3(JPA) approach? I only use this approach in practice. Maybe there are some old projects with EJB2 and I've mostly the luck I can start from zero.
2 I don't design the exception/logging/transaction related. This is mostly handled within the J2EE-framework and is low level. Also Transactions are mostly done by the EJB-container. The exception and logging is depending on the implementation and "problems" which will occur from that.
I agree with Remko, do not show exception, loggin or transaction unless you have a reason for it (for instance if it needs to be shown to completely understand the architecture). And as long as it's Java EE 5, I definitely think that you should go for EJB3/JPA than for EJB2.