I've read in the docs where the EJB is preferred. Does any info on the pro's and con's of each?
Or is it simply a shop call based on the other apps that surround Blaze?
EJB option is what most of our clients used historically (as it was considered to be more "enterprise" solution), but that may not be the case anymore. Times have changed and EJBs are falling out of favor. However, it is still a reliable and sound approach.
The biggest difference between EJB/MDB and POJO deployment is that with the first two options application server will manage number of "rule agents" (lightweight thread-safe components that store client call execution context), whereas with POJO deployment you need to define the agent pool size in the server configuration (set to a positive number) or disable agent pooling at all (new agent will be created for each call, which may slightly affect performance).
Also, with EJB/MDB you could configure them to be transaction-aware so that if e.g. rule server throws an exception, your transaction is automatically rolled back. With POJO it will have to be done manually by your own code.
All in all, the differences are not critical, so I would say - use kind of deployment that is closest to your company's standard component architecture.
One caveat: our web service quick deployers are built on top of EJB deployment, so you can't choose - unless you go a different route of generating Blaze POJO deployment and then using framework like Axis to expose that POJO as a web service.
Retrieving data ...