herve attia

Ranch Hand
+ Follow
since Sep 28, 2001
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 herve attia

I had provided some anwers to those questions...long time ago (october 2001)
Hope it helps !
I had the chance recently to take a look into this book. As I succeeded SCEA...I would say it is not worth it to buy it...keep your money !
To succeed Part I, the John's note or Simon lee web site on Javaranch are enough !
Also, the book is only interesting on how Sun expects to see your UML diagram.
People always asks how UML must be detailed...do we need to show Home/remote in the class diagram...
So, my free charge advice is to go to a BookStore and just have a look to their case study ;-)
Marc Cade has just made a book from its FastPath document !
Interesting reading....but I'm wondering why they want to build an army of certified people ?!....
Certifications doesn't guarantee a job at all !!
Yes. the Together UML link is really enough. Exam has only 3-4 simplistic questions.
Jaworki questions are not architecture scenarios. It is interesting reading for legacy systems.
Where can we find good exam questions ?
I would say going through Javaranch Forum (september-october)and others links....
IMHO, you just need to have a global knowlegde of each SCEA objectives..not deeply. Understand the concept not learn by heart is important !
Right !
your service must be available 99.99% of the time!
Add the WL_HOME/lib/weblogic.jar to your classpath !!
20 years ago
Don't be disapointed...today Santa Claus is back
You can learn Design Pattern ( Better than GOF book because it provides Java source code !)
UML distilled : some chapters are http://cseng.aw.com/book/0,,0201325632,00.html
I recommend this resource : clear explanation just enought for the exam !

Concerning Jaworski...IMHO, questions are not close to the real exam !
As the exam has not yet moved to EJB2.0, old version is enough.
Also Read EJB1.1 spec is really worthwhile.
I don't remember Assignment asked to provide original source code ?!
Don't worry about that. Modify or extend the source code (its depends on your design) but providing the original source code is not required.
Explain what you did in your desing document and describe the structure within the README.txt.
Make simple
Don't make confuse the examiner when he/she will look at your source code. The following is enough

IMHO, suncertify/db will contain modified (ie,Data ) and no modified files (i,e FieldInfo.java, FieldInfo.java,DatabaseException)

Also, Don't go to the Shin-Shin Prometric Center Mountain View California !!
They screwed up my registration. They used to download the list of the registered people one hour before opening the center and these day their modem 56k didn't work :roll: !!!
So, I had to call back myself the Prometric to reschedule it...
I took the time today to count the number of message (on this Forum) of people who have succeeded part 2&3 since ONE year.....
...the number is 8 !!
Voila. My Sun Certification Java Technologies process is over now !
Let me tell you about this sweet Sun fairy tale journey
This journey started when I got laid-off (I guess like many other people)
last august 2001. It was a sunny day, a tuesday, in the Silicon Valley, and my manager
called and asked me to step by its office to take my departure package....
So, I gave back my badge and quickly decided, on the parking of the compagny with my hands full of boxes
(papers, pen, last paycheck...), to use wisely my spare time and
keep my mind busy by going through those Sun certifications.
My plan was to go on Sun Certification Enterprise Architect.
I had over +6 years experience on OOD development, +1 J2EE...
I realized I needed first to get Sun Certified Programmer(310-025) exam.
So during 3 weeks, I studied this part lay down on the beach
and succeeded last september SCPJ with a score of 86%.
Then, I started SCEA part I (310-051), I studied once again 3 weeks
and succeeded last octoberSCEA part I with a score of 80%.
Obviouly, as SCEA is only valuable with part 2&3 , I started the SCEA part 2&3 (310-061),
worked on it during 6 weeks and succeeded last december SCEA part 2&3 with a score of 99%.
I was happy and still without a job !
So, as certification is a good stuff to improve knowledge and fill the gap
in your resume. I decided to go with Sun Certified Web Component Developer(310-080).
With 8 month of experience jsp/servlet...so what a big deal huh ?!
Once again, I studied 3 weeks lay down on the beach with my friends the seagull
learning new features JSP1.2/servlet2.3 and succedeed last january SCWD with a score of 84%.
So, I was facing a dilemma ...a gap in the Sun Certification java process : Sun Certified Developer (310-027) was missing !!
Once again, I worked on it during 3 weeks :
Some details :
- I mofified Data Class , create an adapter to wrap Data class with a lock manager mechanism implemented
as per of the ReadWriteLock pattern.
- I used RMI (easier to implement, provide security manager, dynamic class loading...blablabla)
- Built simplistic Swing application (as you can see below 17/24 points
- Wrote nice Html design document with UML class diagram and deployment diagram.
and succedeed today SCDJ with a score of 144/155.
General Considerations(maximum = 58): 58
Documentation(maximum = 20): 20
GUI(maximum = 24): 17 (I don't care...swing is boring !!)
Server(maximum = 53): 49
I read many people have wait more than 4 weeks. It took me only 2weeks and half of waiting !
So, Does Certification help to find a job ?
IMHO, without being pessimistic....I do not believe it is really helpful.
Even if you have J2EE experience, fully certified from Programmer to Architect,
the job market is still tough.
Analysts said it's gonna be better june-july 2002 or maybe by the end of year.
Actually, only 2% of the job seeker find their job through the internet.
...The others are directly hired by relation...

So what I gonna do now ? Well...as I tired with certifications....actually, I'm working on a personal project which involves SOAP (Axis) Web services.
Again, analysts said 30% IT project this year will concern web-services....so be prepare

Anyway, Thank you Javaranch for all this useful saloons.
To test the robutness of your lock mechanism, I wrote this stress test program to
track any deadlock !
The following program runs multiple thread (Reader and Writer).
Please modify it !! Don't send me an email saying it doesn't compile !! ;-)

public class Main {
private DataAccess dc = null;
private FieldInfo [] description = null;

private String dbname = "db.db";
private int port = 1099;
private String host = "localhost";
private boolean trace = false;
private int mode = DataAccessFactory.LOCAL_MODE;

public Main(String args[]) throws IOException {

try {

for(int i=0;i<args.length;i++) {
port = Integer.parseInt(args[++i]);
else if("-trace".equalsIgnoreCase(args[i]))
trace = true;
else if("-db".equalsIgnoreCase(args[i]))
dbname = args[++i];
else if("-host".equalsIgnoreCase(args[i]))
host = args[++i];
else if("-remote".equalsIgnoreCase(args[i]))
mode = DataAccessFactory.REMOTE_MODE;
else if("-local".equalsIgnoreCase(args[i]))
mode = DataAccessFactory.LOCAL_MODE;


dc = DataAccessFactory.getConnection(mode, dbname, port, host, false);
description = dc.getFieldInfo();

catch (NumberFormatException e) {
System.err.println("Invalid port " + e.getMessage());
catch (IllegalArgumentException e) {
System.err.println("Exception Invalid command parameter " + e.getMessage());
catch (Exception e) {
System.err.println("rmiclt exception: " + e.getMessage());

// Writer thread.
private class Writer extends Thread {
/** This thread object id for tracing purposes. */
public final int id;
public final int record;

private Writer (int id, int record) {
this.id = id;
System.out.println ("Writer Thread record " + record );

public void run () {
// higher priority and lower frequency to interleave reading
setPriority (getPriority () + 1);
for (int i = 0;; i++) {
try {
try { sleep (random (125, 400)); }
catch (InterruptedException ie) {}

dc.bookSeats(record, 1);

if (trace) System.out.println ("Write"+id+" record "+record);

} catch(Exception e) {
System.err.println ("Write"+id+" record "+record+ "DatabaseException "+ e.getMessage());

// Reader thread.
private class Reader extends Thread {
/** This thread object id for tracing purposes. */
public final int id;
public final int record;

private Reader (int id,int record) {
this.id = id;
System.out.println ("Reader Thread record " + record );

public void run () {
for (; {
try {
try { sleep (random (25, 50)); }
catch (InterruptedException ie) {}

DataInfo dtinfo = dc.getRecord(record);
int nbSeats = Integer.parseInt(dtinfo.getValues()[description.length-1]);
if (trace) System.out.println ("Read"+id+" record "+record+" Set seat="+nbSeats);

} catch(Exception e) {
System.err.println ("Read"+id+" record "+record+ "DatabaseException "+ e.getMessage());

// Construct some writers and some readers and let them loose
private void main () {

for (int i = 1; i <5; i++) (new Writer (i,this.random(1,5))).start ();
for (int i = 5; i < 6; i++) (new Reader (i,this.random(1,5))).start ();


private java.util.Random random = new java.util.Random (0);
private int random (int low, int high) {
int tmp = Math.abs (random.nextInt ()) % (high - low) + low;
return tmp;

public static void main (String [] args) {

try {
(new Main (args)).main ();
catch(Exception e){
System.out.println("Exception : "+e.getMessage());

Well, make your sequence diagram simple !
Show only the main objects. Avoid to display Home/Remote. Wrap them into Business delegate.
Also, as sequence diagram is only 20 points. Do not spent too much time on it.
scjp, scdj, scwd, scea