Help coderanch get a
new server
by contributing to the fundraiser

Ramesh Aiyappan

+ Follow
since Nov 20, 2003
Merit badge: grant badges
For More
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 Ramesh Aiyappan

Thanks Deepak.

I have got the reply from prometric and I have uploaded the assignment.


I am trying to upload my assignment, but once I give in the login details and click on submit the page takes a longer time to load. I waited for atleast 30 minutes and as the page did not come up tried again and again. Till now I am not successful. I have booked a slot to take the Part 3 exam day after tomorrow.

I have already sent a mail to

If anyone had a similar experience, please let me know how I could overcome this.

[ March 17, 2005: Message edited by: Ramesh Aiyappan ]
Thanks for the information.

Hi all,

Is it mandatory that we have to show the Alternate Flow in a separate Sequence Diagram ?

In case of PrepareItinerary use case I feel that I could include the alternate flow as part of the main flow.

Let me know your thoughts.


I am considering a design wherein the SEAT is always persisted and its availability is based on the STATUS that is updated for the events.


As I have said above, I am not going for any in-memory objects, I depend on the database to store the SEAT and update its STATUS based on the event that manipulates the seat.


Yes I am planning to have a ShoppingCart like thing for the booking. I would have this active till the Customer is active with his session.

By *LEASED LOCK* I meant a time based lock, wherein the booked seat will be locked for an agreed time. If we need to have the seat booked but not paid (for a longer time), we can provide some options for the Travel Agents or Privilege members to actually BLOCK the ticket for a longer time.

As we cant have the unpaid seats for ever, I thought the time based lock would be a solution.

I havent gone thru this in deep, these are just my initial thoughts.

Let me know your ideas.

I dont think that we have to persist the booked seats, the seats are not mine until I pay for it. So I hope we have to provide some means of *LEASED LOCK* on the seats and not actual persistence until the payment is made.

Let me know if I am missing something.

I actually related the paid itinerary to a 'TICKET' in my hand, and no thoughts on Changing the paid itinerary.

[ January 23, 2005: Message edited by: Ramesh Aiyappan ]
Hi Giju,

I dont have an idea about the 'UML with Rational Rose', but I feel that any of the UML book would be good enough to give a foundation on UML.

I have seen your other post regarding the study guide. I would suggest you not to start with the study guide, have it as your last step before the exam.

I followed the below books,

Applying UML and Patterns by Craig Larman.
UML Distilled by Martin Fowler.
Enterprise Java Beans by Richard Monson-Haefel.
Head First EJB.
Designing Enterprise Applications using J2EE.
Elements of Reusable software by Erich Gamma and others.
J2EE Design Patterns (Oreilly).
Core J2EE Patterns.
(and since Head First Design Patterns is available now you can refer that too)
Java Message Service by Richard Monson-Haefel (Oreilly).
Java Security by Scott Oaks (Oreilly).
and lots of articles from the net and ofcourse many mock exams.

I went through the Mark Cade's study guide just one month before I took the exam and it helped me a lot in recollecting things. I took almost a week to refresh the things with the study guide and for the next three weeks I took all the mock exams I could. And finally the real one.

Hope this would help you in preparing for the exam.

All the best,
I hope that you are looking out for a study guide. My suggestion would be to read both (Lets get the most of these books to our advantage. I didnt get a chance to read the Bambara one, but managed a 91% with Cade's book).
And Cade's guide includes materials for Part 2 also.

You need to read a lot of other books on Security,UML etc, apart from the study guide.

All the best.

I too would say that it should be a RemoteException as the javax.ejb.EJBHome.remove(java.lang.Object primaryKey) is NOT A VALID operation on a session bean.

Please correct me if I am wrong.

Hi Vipin,

A Stateful Session bean, when serving a client can be in one of the two states, i.e. Method-Ready state or Transaction Method-Ready state, based on the transaction context with which it is invoked( With a transaction or with an unspecified transaction).

Whenever a method in the stateful session bean is invoked within a transaction, it will be in the transaction method ready state and can span transactions across method invocations on the same instance from the same client.

Lets say that the below is a method of a stateless session bean with transaction Required attribute ..

public .... someMthd(){
// Get the st8fulbn reference.
st8fulbn.invoke1() ;
st8fulbn.invoke2() ;

So this method is in a transaction and invoking the method 'invoke1()' in the stateful session bean propagates the transaction to the st8fulbn. (Have the stateful session bean implement the SessionSynchronization and have some log statements in it) you can see the afterBegin() method being invoked on the call to the first method, and when the someMthd() method ends, only then the transaction is committed and the 'beforeCompletion' and the 'afterCompletion' methods are invoked in the stateful Session bean.

Let me know if this helps.

Hi Vipin,

I assume your doubt is how a CMT stateful session bean can span transaction across method invocations.

A stateful session bean can span transactions even across different method invocations on the same bean.

Assume a client method, which invokes a method on the CMT stateful session bean (1.starts the conversation and a transactional state) and goes on to call different methods on the same bean (2.still holding the conversational state and the transaction) and then the method on the client ends (now the conversational state is closed and 3.the transactional state is committed).

Implementing the SessionSynchronization interface helps us to know when a transaction starts and ends (so we can do some CACHing on this).

You can get a clear picture of the stateful session bean holding the transactional state across method invocation in the same instance with a BMT stateful session bean.

In case of a stateless session bean the transaction starts and ends when the session bean's method ends.

Hope this would help.
Hi Asman,

I assume that you are trying to look up a bean that is local to a container, from a client outside the container. Local Beans are meant to be accessed locally within the container and you cannot access these Beans from remote clients.

Try accessing the Bean from another entity bean or a session bean that is not local.

[ May 28, 2004: Message edited by: Ramesh Aiyappan ]
I came across the following question in one of the mock exams ...

Which of the following methods must the Bean Provider implement in an entity bean class?

A) ejbFind<METHOD>()
B) setRollbackOnly()
C) unsetEntityContext()
D) ejbSelect<METHOD>()
E) ejbLoad()

The correct answers they say are C and E.

But in case of BMP, the bean provider has to implement the ejbFind<METHOD> right?

In these cases, which type of entity beans do I have to consider (a CMP or a BMP)?

[ May 26, 2004: Message edited by: Ramesh Aiyappan ]