1.- Configurar ActiveMQ como componente externo.
<tomee>
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
# Esto indica que el ActiveMQ broker no inicia cuando arranca el TOMEE
BrokerXmlConfig =
ServerUrl = tcp://someHostName:61616
</Resource>
<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
</Container>
<Resource id="FooQueue" type="javax.jms.Queue"/>
<Resource id="BarTopic" type="javax.jms.Topic"/>
</tomee>
El "ServerUrl" debe ser modificado para que comtemple el host y el puerto que el
Proceso ActiveMQ. Los diferentes formatos de URL que ActiveMQ.
2.- Configurar ActiveMQ como componente interno
<tomee>
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://someHostName:61616)
ServerUrl = tcp://someHostName:61616
</Resource>
<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
</Container>
<Resource id="FooQueue" type="javax.jms.Queue"/>
<Resource id="BarTopic" type="javax.jms.Topic"/>
</tomee>
La propiedad "BrokerXmlConfig" invoca a ActiveMQ para que inicie
en conjunto cuando arranca el TOMEE con su host y puerto asignado
en este caso `someHostName` and `61616`
3.- Estructura de los archivos
- aplicacion.war
- pages
- images
- META-INF
- ejb-jar.xml
- MANIFEST.MF
- openejb-jar.xml ( Opcional )
- stylesheet
- WEB-INF
- classes
- de
- Directorio con las clases
- log4j.xml
- hibernate.cfg.xml
- lib
- web.xml
- index.jsp
4.- Configurar Propiedades del MDB.
En esta URL: CONFIGURACION DEL EJB-JAR.XML
Aqui un ejemplo: Un Ejemplo
5.- Configurar Persistencia de activemq con Mysql.
Tomado desde esta url: Persistencia Activemq y Mysql
Revisar el archivo activemq.xml que esta ubicado en la carpeta donde esta instalado
el activemq/conf
useShutdownHook
=
"false"
>
...
<
persistenceAdapter
>
<
jdbcPersistenceAdapter
dataDirectory
=
"${activemq.base}/data"
dataSource
=
"#mysql-ds"
/>
</
persistenceAdapter
>
...
</
broker
>
<
bean
id
=
"mysql-ds"
class
=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method
=
"close"
>
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
/>
<
property
name
=
"username"
value
=
"usuario"
/>
<
property
name
=
"password"
value
=
"passwordBBDD"
/>
<
property
name
=
"poolPreparedStatements"
value
=
"true"
/>
</bean>
Se tiene que copiar el driver de Mysql a la carpeta lib del activemq.
Tambien es posible utilizar una base de datos que es muy eficiente para este tipo de cosas, aqui un pequeño ejemplo de como hacerlo:
useShutdownHook
=
"false"
destroyApplicationContextOnStop
=
"false"
>
...
<
persistenceAdapter
>
<
kahaPersistenceAdapter
directory
=
"${activemq.base}/activemq-data"
maxDataFileLength
=
"33554432"
/>
</
persistenceAdapter
>
...
</
broker
>
No hay comentarios:
Publicar un comentario