On Nov 24, 2009, at 4:06 PM, Jean-Louis MONTEIRO wrote:
Martin Elkjær wrote:
Hi,
Just started using OpenEJB last week - but so far I'm very satisfied!
I've migrated an web application running on Tomcat with GWT on top an
Hibernate in the bottom. So far every things seems to be running,
but I
need
some advice for fine-tuning. I've read through the documentation,
but some
questions still keeps coming... :-)
Thanks for that!
Martin Elkjær wrote:
1. Where should I place 3rd party libs for my application ? If I
put them
in
WEB-INF/lib the openEJB startup is very very slow - guess it is
because
it's
scanning all the jars - if I put them in the openEJB/lib folder it
starts
very fast. So my question is: Is there a way to tell OpenEJB not to
scan
the
whole WEB-INF/lib folder but only WEB-INF/classes ??
IMO, you should not put your jars in openejb/lib. It's better to fit
servlet
API and put your jars in WEB-INF/lib
By the way, you can exclude jars to avoid full application scanning.
By
default, OpenEJB scans all jars.
In the last release (or may be in the trunk), we added a set of jars
to
exclude, but you can definitely exclude/include whatever you want.
https://issues.apache.org/jira/browse/OPENEJB-1107
https://issues.apache.org/jira/browse/OPENEJB-1107 --> builtin
exclude list
If you need to exclude/include some jars, have a look here
http://openejb.apache.org/3.0/application-discovery-via-the-classpath.html
http://openejb.apache.org/3.0/application-discovery-via-the-classpath.html
.
Don't forget the note at the bottom of the page.
You know I don't think that takes effect when scanning a webapp
classpath, but it does seem like functionality almost everyone will
need. Maybe we should come up with a nice xml format and push for
some standardization next spec round (Java EE 7).
Martin Elkjær wrote:
2. I'm planning to use JMS in the near future.
My plan is to use ActiveMQ in embedded mode, mostly because of the
simple
setup and speed (same JVM). But is this OK ?
I've done some testing trying to use MySQL for storing messages,
but it
doesn't seem to work (no tables are created in the database
scheme?!?!) My
setup is :
-------------------------------------------------------------
<Resource id="My JMS Resource Adapter"
type="ActiveMQResourceAdapter">
# Broker configuration URI as defined by ActiveMQ
# see http://activemq.apache.org/broker-configuration-uri.html
BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false
# Broker address
ServerUrl vm://localhost?async=true
# DataSource for persistence messages
DataSource jmsDatabase
</Resource>
I think you have to use "vm:" instead of "tcp:" or ActiveMQ won't
really go into embedded mode. There is a "persistent" property that
can be used in the BrokerXmlConfig -- you'd think they wouldn't need
it by the fact that a DataSource was set, but it can't hurt to set it
explicitly.
Try this for your ActiveMQResourceAdapter config:
<Resource id="My JMS Resource Adapter" type="ActiveMQResourceAdapter">
# Broker configuration URI as defined by ActiveMQ
# see http://activemq.apache.org/broker-configuration-uri.html
BrokerXmlConfig broker:()/localhost?persistent=true
# Broker address
ServerUrl vm://localhost?async=true
# DataSource for persistence messages
DataSource jmsDatabase
</Resource>
Let us know if that works out cause we could document this on our site
and hopefully save people some time.
-David