Just some notes: stateless beans are thread safe not singleton beans + postconstruct is fine on stateless but will be called for all instances in the pool Le 9 juil. 2013 20:26, "Howard W. Smith, Jr." <[email protected]> a écrit :
> Leonardo, you may want to revisit Java EE 6 tutorial. almost 2 years ago > (summer 2011), before I began coding Java EE, I studied Java EE 6 tutorial, > and since I been doing (minimal) Java EE 6 ever since, by looking at your > code, I will respond as follows (based on my learning): > > 1. I would never add @Startup on @Stateless, even though I've seen others > add @startup on@Singleton, and from what I thought/learned/read, > @Singleton > is @Stateless, but I could be wrong. :) > > 2. I would never add or 'assume' that @PostConstruct should be added to > @Stateless. per my Java EE 6 tutorial learning-and-understanding of > @PostConstruct, I should only add @PostConstruct on managed beans > (@RequestScoped, @SessionScoped, etc...) > > my 'two' cents... > > Oh, I have learned from TomEE committers that I can/should use @Singleton > @Lock(Read or Write), and I can add @Schedule methods to @Singleton > bean(s). I am doing (all of) this in my app, using TomEE 1.6.0, and I am > very satisfied with the performance of the app. But I am not using > @Startup; i have an @ApplicationScoped CDI bean that is global to entire > app, all sessions, the @Singleton beans, etc... when TomEE starts my app, > @ApplicationScoped bean will be instantiated and I can add @PostConstruct > to this CDI @ApplicationScoped bean to do whatever I want to do when my app > 'starts'...so why do I need @Startup? don't need it and I don't use it. > > > > > On Tue, Jul 9, 2013 at 1:19 PM, Leonardo K. Shikida <[email protected] > >wrote: > > > learning something new everyday ;-) > > > > [] > > > > Leo > > > > > > On Tue, Jul 9, 2013 at 2:06 PM, Romain Manni-Bucau > > <[email protected]> wrote: > > > @Startup on stateless doesnt mean anything in the spec IIRC ;) > > > Le 9 juil. 2013 19:04, "Leonardo K. Shikida" <[email protected]> a > > écrit : > > > > > >> No, it's a regular @Stateless > > >> > > >> @Stateless > > >> @Startup > > >> public class JmsWorkerEJB {...} > > >> > > >> It has a method annotated with @Schedule that reads from a JMS queue. > > >> > > >> In the worst case, since @PostConstruct is being called, I could > > >> schedule from there instead, but does not seems an elegant way to deal > > >> with that :-) > > >> > > >> [] > > >> > > >> Leo > > >> > > >> > > >> On Tue, Jul 9, 2013 at 1:56 PM, Romain Manni-Bucau > > >> <[email protected]> wrote: > > >> > Found in code this time ;) > > >> > > > >> > Is your ejb a singleton? Did you set @lock(read)? > > >> > > > >> > Working thread can be done with @Asynchronous in javaee 6 > > >> > Le 9 juil. 2013 18:52, "Leonardo K. Shikida" <[email protected]> a > > >> écrit : > > >> > > > >> >> MinSize does instantiate these :-) > > >> >> > > >> >> Where did you find this parameter? > > >> >> > > >> >> But the method annotated with @Schedule is run only for one > instance > > >> >> at a time. I thought it should run for all of them. > > >> >> > > >> >> How people usually implement the concept of working threads in EJB? > > >> >> Maybe I am trying to do this in the wrong way. > > >> >> > > >> >> TIA > > >> >> > > >> >> Leo > > >> >> > > >> >> > > >> >> On Tue, Jul 9, 2013 at 1:37 PM, Romain Manni-Bucau > > >> >> <[email protected]> wrote: > > >> >> > Did you try MinSize? > > >> >> > Le 9 juil. 2013 18:16, "Leonardo K. Shikida" <[email protected]> > a > > >> >> écrit : > > >> >> > > > >> >> >> Hi Romain > > >> >> >> > > >> >> >> I've added to tomee.xml > > >> >> >> > > >> >> >> <Container id="foo" type="STATELESS"> > > >> >> >> PoolSize=10 > > >> >> >> </Container> > > >> >> >> > > >> >> >> but it didn't worked as I was expecting. > > >> >> >> > > >> >> >> I thought it would instantiate 10 instances. > > >> >> >> > > >> >> >> I've also added a sysout in the > > >> >> >> > > >> >> >> @PostConstruct > > >> >> >> public void init() { > > >> >> >> System.out.println("Hello "+this); > > >> >> >> > > >> >> >> I thought I'd have 10 lines in the first service, but there was > > only > > >> >> one. > > >> >> >> > > >> >> >> Do I have to set somewhere (somehow) that my bean is using this > > >> >> >> container or tomee assumes it's the default configuration for > all > > >> >> >> stateless beans? > > >> >> >> > > >> >> >> TIA > > >> >> >> > > >> >> >> Leo > > >> >> >> > > >> >> >> > > >> >> >> On Tue, Jul 9, 2013 at 12:29 PM, Romain Manni-Bucau > > >> >> >> <[email protected]> wrote: > > >> >> >> > Hi > > >> >> >> > > > >> >> >> > The basic conf is here > > >> >> >> http://tomee.apache.org/containers-and-resources.html > > >> >> >> > > > >> >> >> > You can set PoolSize (MaxSize) but MinSize too > > >> >> >> > Le 9 juil. 2013 14:45, "Leonardo K. Shikida" < > [email protected]> > > a > > >> >> >> écrit : > > >> >> >> > > > >> >> >> >> Hi > > >> >> >> >> > > >> >> >> >> I am using a stateless bean to consume from a jms queue > > >> periodically > > >> >> >> >> (@Schedule). It's started with the container (@Startup). Is > > there > > >> any > > >> >> >> >> way to configure somewhere the initial number of instances > for > > >> this > > >> >> >> >> specific bean? > > >> >> >> >> > > >> >> >> >> TIA > > >> >> >> >> > > >> >> >> >> Leo > > >> >> >> >> > > >> >> >> > > >> >> > > >> > > >
