- What modeling tools you are familiar with? What version of TogetherJ (Rational Rose etc.) have you used?
- If stateless session bean more scalable than stateful session beans?
This is very popular questions that leads to some confusion. According to the second edition of "Core J2EE Patterns" and contrary to popular belief, stateful session beans are not less scalable than stateless session bean. The reason for that is life cycle of either type is controlled by Application Server and control of life cycle is what defines the scalability of the application
- What's the difference between EJB 1.1 and EJB 2.0?
There are many differences. Some key points you want to mention are:
- New CMP model
- EJB Query Language
- Local interfaces
- EJBHome methods
- Message Driven Beans (MDB) support
- What transaction isolation levels do you know?
none, repeatable read, read committed, read uncommitted, serializable
- What transaction attributes do you know?
requires new, required, supports, not supported, mandatory, never
- What is the difference between optimistic lock and pessimistic lock?
Optimistic lock is an implicit lock that tries to make best assumption about locking strategy and minimize time spent in lock of resource. Optimistic lock is usually implemented with some kind of timestamp strategy. Pessimistic lock is an explicit lock that set by client.
- What are entity beans. Are there any issues with them?
Typical reaction to this question is very expressive answer that entity beans should not be used. There are many performancy implications with entity beans if used incorrectly. One of the famous problems are "n+1 call problem" Inter-entity bean call is very expensive operation and should be avoided.
- What core design patterns do you know?
Architect must know at least some basic design patters used in J2EE development, e.g. Business Delegate, Session Facade, VO, List Handler, DTO, Composite Entity, etc.
- Where business logic should reside?
Typical answer is "in business tier" This usually opens series of questions like: What is business logic, how to determine business logic, how business logic is different from persistent logic etc.
- What is JDO?
JDO is Java Data Object - persistent framework that is alternative to idea of entity beans
- What is the difference between JSP and servlet? When to use what?
JSP is compiled into servlet. JSP are better suit to view of information, while servlets are better for controlling stuff.
- Does the J2EE platform support nested transactions?
No.
- Can you use synchronization primitives in my enterprise beans?
No.
- Why all major application server vendors provide custom class loaders in addition to system jvm class loader?
System one does not support hot deployment.