EJB design: EJB in batch context
I've been looking around, but have not seen descriptions of J2EE/EJB systems that are more driven by back end processes(instead of user requests) as described below. Any links/references appreciated (particularly to case stuides)...
I think using EJBs make sense in our finance oriented app that deals with a couple of different data sources and requires heavy processing on the back end.
The difference here is that the processing of data is triggered more like a batch process or service: at certain times of the day, we initiate actions (sessions in the EJB context).
Question 1: Where does this level of control most appropriately reside in J2EE/EJB? As a separate java process on the same tier which invokes sessions as a client to the EJB container? As a session bean that never ends within the container (unlikely)? Other? The key difference here is that our back end is not driven by synchronous user/web requests (though we may want to view results ofthat processin via thin clients).
Question 2: Also, assuming some session processes are long-lived, we want to be able to pre-empt lower priority tasks with newer, urgent tasks. Is there any notion of task prioritization that can be used to control how CPU resources are used in executing sessions? Or is that control lost since we are isolated from threading issues due to the EJB container. This may also be a vendor specific question, if they handle this at all.
I'm still deciding between EJB and a more custom level solution, so pardon my ignorance on some possibly obvious EJB details.
(I hope I don't sound like a broken record here. :-)
Question 1: Flux solves this problem.
Question 2: Running session beans with priorities is an interesting concept, but I'm not aware of any EJB container that supports this.