It defines the link only, which means it does the same as your
@Resource. Difference is that if you don't have any @Resource then it
would still do it if true by default. Then if there is a link and no
matching resource then openejb creates one implicitly. This means that
false is a good default avoiding to create not needed resources :).

Romain Manni-Bucau
@rmannibucau |  Blog | Old Blog | Github | LinkedIn


2017-10-11 10:10 GMT+02:00 Paul Carter-Brown <paul.carter-br...@smilecoms.com>:
> Thanks Romain/Andy,
>
> openejb.environment.default = true fixed it
>
> Does this property merely indicate that the resources should be bound into
> the JNDI tree or does it control whether they are created or not by the
> container?
>
> I found it interesting that this works fine even with that property set to
> false:
>
> @Resource
> private ManagedExecutorService mes;
>
>
> ~~~
>
> In terms of why I need the executor:
>
> The systems we build almost always do a lot in the background in addition
> to servicing incoming requests over HTTP and other protocols. Background
> threads are needed to do things like service discovery, service monitoring,
> rating, event processing, polling external systems etc etc. I bootstrap
> this "background" functionality via a servlet with loadOnStartup and an
> init function that would kick everything off. I was experimenting with
> moving all this background code to be loaded and managed by CDI. As the
> initial servlet init function is within a managed context I could inject
> from there on into the code base to boot everything up. I was thinking of
> using @Singleton/@ApplicationScope managed beans as a way of neatly
> starting these background objects with @PostConstruct once and only once so
> they could do their thing with executors in the background. My recent
> issues with controlling @Singleton/@ApplicationScope objects in
> circumstances with multiple skinny wars in a EAR lead me to rethink using
> CDI and rather use good old Singletons where I can fully control the
> lifecycle of the instance and be sure its background processing is only
> started once. Instead of creating my own threads I'd prefer to use
> ManagedExecutorService and ManagedScheduledExecutorService. It was easy to
> get these when I could inject them but now with singletons and classes that
> are being created outside of the managed context (i.e. with
> Foo.getInstance() as opposed to @Inject Foo) I need to get them from JNDI
> and this is where I hit this particular issue.
>
> Paul
>
>
>
> On 11 October 2017 at 01:46, agumbrecht <agumbre...@tomitribe.com> wrote:
>
>> Properties are somewhat documented here:
>> http://tomee.apache.org/admin/configuration/server.html - It's not totally
>> obvious in your case that the property named here does what Romain
>> describes, but please feel free to create a ticket on the jira here:
>> https://issues.apache.org/jira/browse/TOMEE if you would like a better
>> description.
>>
>> The managed executor is a way to start threads that the server will attempt
>> to stop on a shutdown. The app server is already multithreaded, so there
>> might be a better way to do what you are intending?
>>
>> Andy.
>>
>>
>>
>> -----
>>     --
>>     Andy Gumbrecht
>>
>>     http://www.tomitribe.com
>>     agumbre...@tomitribe.com
>>     https://twitter.com/AndyGeeDe
>>
>>     TomEE treibt Tomitribe ! | http://tomee.apache.org
>> --
>> Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-
>> f979441.html
>>
>
>
>
> --
>
> *Paul Carter-Brown*
>
> *Group Chief Information Officer*
>
> *Smile Communications Pty (Ltd)       *
> Smile +234 (0) 702 000 1234
> Mobile +27 (0) 83 4427 179
> Skype PaulC-B
> paul.carter-br...@smilecoms.com
> www.smilecoms.com
>
> --
>
>
> This email is subject to the disclaimer of Smile Communications at 
> http://www.smilecoms.com/home/email-disclaimer/ 
> <http://www.smilecoms.com/disclaimer>
>

Reply via email to