Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
XML
borderStylesolid
titleSystemDatasource
<?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

{{

http://geronimo.apache.org/xml/ns/j2ee/connector-1.2

}}

Image Added.

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
XML
XML
borderStylesolid
titleActiveMQ RA

{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>

...