Been meaning to post this for a few days. I will try and get time for a blog.
I have been using ActiveMQ JMS from the get go and have tuned it as much as
I need, which may be more or less than your own requirements. ActiveMQ
documentation is a book that needs to read.
These are my is my openejb.xml entries:
<Resource id="JMSResourceAdapter" type="ActiveMQResourceAdapter">
*BrokerXmlConfig xbean:file:conf/activemq.xml*
ServerUrl
failover:(nio://localhost:54545?soTimeout=60000&daemon=true&keepAlive=true&connectionTimeout=120000&wireFormat.tcpNoDelayEnabled=true&wireFormat.maxInactivityDuration=240000&wireFormat.maxInactivityDurationInitalDelay=120000)?timeout=10000
</Resource>
<Connector id="JMSConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter JMSResourceAdapter
TransactionSupport none
PoolMaxSize 150
PoolMinSize 0
ConnectionMaxWaitMilliseconds 15000
ConnectionMaxIdleMinutes 15
</Connector>
This is my activemq.xml as referenced above as '*BrokerXmlConfig
xbean:file:conf/activemq.xml*', I have included an optional DataSource
configuration, but currently use KahaDB in production:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd">
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>*file:conf/activemq.properties*</value>
</property>
<property name="properties">
<props>
<prop key="data.dir">data</prop>
<prop key="conf.db.host">localhost:5432</prop>
<prop key="conf.db.un">myuser</prop>
<prop key="conf.db.pw">mypassword</prop>
</props>
</property>
</bean>
<broker xmlns="http://activemq.apache.org/schema/core"
useJmx="true"
brokerName="spectrum"
useShutdownHook="false"
persistent="true"
start="false"
schedulerSupport="false"
enableStatistics="false">
<persistenceAdapter>
<kahaDB directory="${data.dir}/activemq-data/kaha"
ignoreMissingJournalfiles="true" checkForCorruptJournalFiles="true"
checksumJournalFiles="true"/>
</persistenceAdapter>
<transportConnectors>
<transportConnector name="nio"
uri="nio://0.0.0.0:54545?enableStatusMonitor=true&soTimeout=60000&daemon=true&keepAlive=true&connectionTimeout=120000&wireFormat.tcpNoDelayEnabled=true&wireFormat.maxInactivityDuration=240000&wireFormat.maxInactivityDurationInitalDelay=120000"/>
</transportConnectors>
</broker>
<bean id="postgresql-activemq-ds"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url"
value="jdbc:postgresql://${conf.db.host}/openejb_activemq"/>
<property name="username" value="${conf.db.un}"/>
<property name="password" value="${conf.db.pw}"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
</beans>
These are the libraries I am using in the *[openejb]/lib* directory. The
versions are obviously distribution specific, but can found in the ActiveMQ
and OpenEJB distributions:
activeio-core-3.1.2.jar
activemq-core-5.6-SNAPSHOT.jar
activemq-protobuf-1.1.jar
activemq-ra-5.6-SNAPSHOT.jar
kahadb-5.6-SNAPSHOT.jar
spring-aop-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
xbean-spring-3.8.jar
At the time of writing you can find the *xbean-spring-3.8.jar* here:
http://repo1.maven.org/maven2/org/apache/xbean/xbean-spring/3.8/
Have fun,
Andy.
--
View this message in context:
http://openejb.979440.n4.nabble.com/Activate-JMS-persistence-on-TomEE-tp3990276p4019013.html
Sent from the OpenEJB User mailing list archive at Nabble.com.