...
Apache geronimo ships with embedded derby database and activemq message broker. There are also connection pools that connect to derby and activemq configured to run in the installed server. The following sections discuss about various such configurations already available running in the installed server.
Embedded Derby Database connection pool
Apache Geronimo ships with embedded derby database. The derby libraries are present in the server repository at <geronimo_home>/repository/org/apache/derby
. By default, a derby database by name SystemDatabase
is created and the files related to the database related files are stored at <geronimo_home>/var/derby/SystemDatabase
. Along with that, by default, server deploys a database connection pool over the SystemDatabase
with the configuration name org.apache.geronimo.configs/system-database/2.1/car
. The name of the database connection pool is SystemDatasource
. The configuration artifacts are stored at <geronimo_home>/repository/org/apache/geronimo/configs/system-database
. The deployment plan used for database connection pool is as follows.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="UTF-8"?> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"> <dep:moduleId> <dep:groupId>org.apache.geronimo.configs</dep:groupId> <dep:artifactId>system-database</dep:artifactId> <dep:version>2.1</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies> <dep:dependency> <dep:groupId>org.apache.geronimo.configs</dep:groupId> <dep:artifactId>transaction</dep:artifactId> <dep:version>2.1</dep:version> <dep:type>car</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.apache.geronimo.modules</dep:groupId> <dep:artifactId>geronimo-derby</dep:artifactId> <dep:version>2.1</dep:version> <dep:type>jar</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.apache.geronimo.modules</dep:groupId> <dep:artifactId>geronimo-timer</dep:artifactId> <dep:version>2.1</dep:version> <dep:type>jar</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.apache.derby</dep:groupId> <dep:artifactId>derby</dep:artifactId> <dep:version>10.2.2.0</dep:version> <dep:type>jar</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.apache.derby</dep:groupId> <dep:artifactId>derbynet</dep:artifactId> <dep:version>10.2.2.0</dep:version> <dep:type>jar</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.apache.derby</dep:groupId> <dep:artifactId>derbyclient</dep:artifactId> <dep:version>10.2.2.0</dep:version> <dep:type>jar</dep:type> </dep:dependency> <dep:dependency> <dep:groupId>org.tranql</dep:groupId> <dep:artifactId>tranql-connector-derby-embed-xa<xa </dep:artifactId> <dep:version>1.3</dep:version> <dep:type>rar</dep:type> </dep:dependency> </dep:dependencies> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface>javax.sql.DataSource<DataSource </connectionfactory-interface> <connectiondefinition-instance> <name>SystemDatasource</name> <config-property-setting name="UserName"/> <config-property-setting name="Password"/> <config-property-setting name="DatabaseName">SystemDatabase<> SystemDatabase </config-property-setting> <config-property-setting name="CreateDatabase">true<> true </config-property-setting> <connectionmanager> <xa-transaction> <transaction-caching/> </xa-transaction> <single-pool> <max-size>100</max-size> <blocking-timeout-milliseconds>5000<milliseconds> 5000 </blocking-timeout-milliseconds> <select-one-assume-match/> </single-pool> </connectionmanager> </connectiondefinition-instance> <connectiondefinition-instance> <name>NoTxDatasource</name> <config-property-setting name="UserName"/> <config-property-setting name="Password"/> <config-property-setting name="DatabaseName">SystemDatabase</config-property-setting>> SystemDatabase </config-property-setting> <config-property-setting name="CreateDatabase">true<> true </config-property-setting> <connectionmanager> <no-transaction/> <single-pool> <max-size>100</max-size> <blocking-timeout-milliseconds>5000<milliseconds>5000 </blocking-timeout-milliseconds> <select-one-assume-match/> </single-pool> </connectionmanager> </connectiondefinition-instance> </connection-definition> </outbound-resourceadapter> </resourceadapter> <gbean name="DerbySystem" class="org.apache.geronimo.derby.DerbySystemGBean"> <reference name="ServerInfo"> <name>ServerInfo</name> </reference> <attribute name="derbySystemHome">var/derby</attribute> </gbean> <gbean name="DerbyNetwork" class="org.apache.geronimo.derby.DerbyNetworkGBean"> <reference name="derbySystem"> <name>DerbySystem</name> </reference> <attribute name="host">localhost</attribute> <attribute name="port">1527</attribute> </gbean> <gbean name="DerbyLog" class="org.apache.geronimo.derby.DerbyLogGBean"> <reference name="DerbySystem"> <name>DerbySystem</name> </reference> </gbean> <gbean name="DerbyDriver" class="org.apache.geronimo.system.util.JDBCDriverRegistrationGBean"> <attribute name="driverClassName">org> org.apache.derby.jdbc.EmbeddedDriver<EmbeddedDriver </attribute> </gbean> <gbean name="DerbyClientDriver" class="org.apache.geronimo.system.util.JDBCDriverRegistrationGBean"> <attribute name="driverClassName">org> org.apache.derby.jdbc.ClientDriver<ClientDriver </attribute> </gbean> <gbean name="TransactionalThreadPooledTimer" class="org.apache.geronimo.timer.jdbc.JDBCStoreThreadPooledTransactionalTimer"> <attribute name="repeatCount">5</attribute> <reference name="TransactionManager"> <name>TransactionManager</name> </reference> <reference name="ManagedConnectionFactoryWrapper"> <name>SystemDatasource</name> </reference> <reference name="ThreadPool"> <name>DefaultThreadPool</name> </reference> <dependency> <name>DerbySystem</name> </dependency> </gbean> <gbean name="NonTransactionalThreadPooledTimer" class="org.apache.geronimo.timer.jdbc.JDBCStoreThreadPooledNonTransactionalTimer"> <reference name="TransactionManager"> <name>TransactionManager</name> </reference> <reference name="ManagedConnectionFactoryWrapper"> <name>SystemDatasource</name> </reference> <reference name="ThreadPool"> <name>DefaultThreadPool</name> </reference> <dependency> <name>DerbySystem</name> </dependency> </gbean> </connector> |
Code Blocknote |
---|
{note} The default namespace of the above XML document is {{
The XML elements that do not have a namespace prefix belong to the default namespace. {note} |
After
...
starting
...
the
...
server,
...
the
...
running
...
database
...
connection
...
pool
...
SystemDatasource
...
can
...
be
...
observed
...
from
...
the
...
geronimo
...
admin
...
console
...
from
...
console
...
Navigation
...
=>
...
Services
...
=>
...
Database
...
pools
...
.
...
The
...
resource
...
adapter
...
used
...
to
...
deploy
...
the
...
above
...
database
...
connection
...
pool
...
is
...
tranql-connector-derby-embed-xa-1.3.rar
...
.
...
The
...
above
...
plan
...
is
...
actually
...
deployment
...
plan
...
of
...
a
...
outbound
...
resource
...
adapter.
...
When
...
the
...
above
...
plan
...
is
...
packaged
...
along
...
with
...
the
...
rar
...
file,
...
the
...
xml
...
content
...
will
...
be
...
placed
...
in
...
META-INF/geronimo-ra.xml
...
file.
...
Closely
...
observe
...
various
...
configurations
...
in
...
the
...
deployment
...
plan.
...
Many
...
derby
...
libraries
...
in
...
the
...
server
...
repository
...
are
...
mentioned
...
as
...
dependencies.
...
After
...
configuring
...
the
...
outbound
...
resource
...
adapter,
...
there
...
are
...
series
...
of
...
gbeans
...
configured
...
for
...
the
...
database
...
connection
...
pool.
...
Embedded ActiveMQ resource adapter
By default, a JMS resource adapter that connects to embedded activemq message broker is deployed and running in the apache geronimo server. This is an outbound jms resource adapter that configures a connection factory and two message queues. The configuration name of the resource adapter is org.apache.geronimo.configs/activemq-ra/2.1/car
...
.
...
The
...
artifacts
...
of
...
the
...
resource
...
adapter
...
are
...
stored
...
at
...
<geronimo_home>/repository/org/apache/geronimo/configs/activemq-ra
...
.
...
The
...
deployment
...
plan
...
is
...
as
...
follows.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{code:XML|borderStyle=solid|title=ActiveMQ RA}
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2">
<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
<dep:moduleId>
<dep:groupId>org.apache.geronimo.configs</dep:groupId>
<dep:artifactId>activemq-ra</dep:artifactId>
<dep:version>2.1</dep:version>
<dep:type>car</dep:type>
</dep:moduleId>
<dep:dependencies>
<dep:dependency>
<dep:groupId>org.apache.geronimo.configs</dep:groupId>
<dep:artifactId>activemq-broker</dep:artifactId>
<dep:version>2.1</dep:version>
<dep:type>car</dep:type>
</dep:dependency>
</dep:dependencies>
<dep:hidden-classes/>
<dep:non-overridable-classes/>
</dep:environment>
<resourceadapter>
<resourceadapter-instance>
<resourceadapter-name>ActiveMQ RA</resourceadapter-name>
<config-property-setting name="ServerUrl">tcp://0.0.0.0:61616</config-property-setting>
<config-property-setting name="UserName">geronimo</config-property-setting>
<config-property-setting name="Password">geronimo</config-property-setting>
<workmanager>
<gbean-link>DefaultWorkManager</gbean-link>
</workmanager>
</resourceadapter-instance>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.jms.ConnectionFactory</connectionfactory-interface>
<connectiondefinition-instance>
<name>DefaultActiveMQConnectionFactory</name>
<implemented-interface>javax.jms.QueueConnectionFactory</implemented-interface>
<implemented-interface>javax.jms.TopicConnectionFactory</implemented-interface>
<connectionmanager>
<xa-transaction>
<transaction-caching/>
</xa-transaction>
<single-pool>
<max-size>10</max-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-milliseconds>
<match-one/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
<adminobject>
<adminobject-interface>javax.jms.Queue</adminobject-interface>
<adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
<adminobject-instance>
<message-destination-name>MDBTransferBeanOutQueue</message-destination-name>
<config-property-setting name="PhysicalName">MDBTransferBeanOutQueue</config-property-setting>
</adminobject-instance>
</adminobject>
<adminobject>
<adminobject-interface>javax.jms.Queue</adminobject-interface>
<adminobject-class>org.apache.activemq.command.ActiveMQQueue</adminobject-class>
<adminobject-instance>
<message-destination-name>SendReceiveQueue</message-destination-name>
<config-property-setting name="PhysicalName">SendReceiveQueue</config-property-setting>
</adminobject-instance>
</adminobject>
</connector>
|
...