<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    IronJacamar Management
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="http://community.jboss.org/people/jesper.pedersen">Jesper Pedersen</a> in <i>IronJacamar Development</i> - <a href="http://community.jboss.org/docs/DOC-16674">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><h1 id="IronJacamar_management">IronJacamar management</h1><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The goal of this page is to describe the management features of the IronJacamar container, the design and key implementation classes.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><div class="toc" style="border: 1px dashed black; padding: 10px;"><ul><li>
<a class="jive-link-anchor-small" href="#IronJacamar_management">IronJacamar management</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Requirements">Requirements</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Design">Design</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#ManagementRepository">ManagementRepository</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Connector">Connector</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Resource_Adapter">Resource Adapter</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Connection_Factory">Connection Factory</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#ManagedConnectionFactory">ManagedConnectionFactory</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#AdminObject">AdminObject</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#ConfigProperty">ConfigProperty</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#DataSource">DataSource</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Features">Features</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Operations">Operations</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Pool">Pool</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#PoolConfiguration">PoolConfiguration</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Statistics">Statistics</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Implementation">Implementation</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Operations_235666">Operations</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#Pool_389220">Pool</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#PoolConfiguration_4934">PoolConfiguration</a>
</li>
</ul><li>
<a class="jive-link-anchor-small" href="#Statistics_992354">Statistics</a>
</li>
<ul><li>
<a class="jive-link-anchor-small" href="#PoolStatistics">PoolStatistics</a>
</li>
</ul></ul><li>
<a class="jive-link-anchor-small" href="#Test_suite">Test suite</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#JDBC">JDBC</a>
</li>
<li>
<a class="jive-link-anchor-small" href="#Related">Related</a>
</li>
</ul></ul></div></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Requirements">Requirements</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The overall requirements are</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>Show the configuration of deployed resource adapters and datasources</li><li>Show statistics for resource adapters and datasources</li><li>Apply changes to the configuration of deployed resource adapters and datasources</li><li>Invoke operations on the deployed resource adapters and datasources</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Design">Design</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>We should a central place where the management view of resource adapters and datasources are registered (ManagementRepository).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>This repository provides access to classes (Connector / DataSource) that represent a single deployment of either a resource adapter or a datasource.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Each of these classes are split into a hierarchy where information about the deployment and references to the live objects are maintained. It must be a design goal that the management classes uses methods from the public API of the IronJacamar container.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code">&#160; ManagementRepository
&#160;&#160;&#160; |
&#160;&#160;&#160; |- Connector
&#160;&#160;&#160; |&#160;&#160;&#160; |
&#160;&#160;&#160; |&#160;&#160;&#160; |- Resource Adapter 
&#160;&#160;&#160; |&#160;&#160;&#160; |
&#160;&#160;&#160; |&#160;&#160;&#160; |- Connection Factories
&#160;&#160;&#160; |&#160;&#160;&#160; |
&#160;&#160;&#160; |&#160;&#160;&#160; |- Admin Objects
&#160;&#160;&#160; |
&#160;&#160;&#160; |- DataSource
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>See a description of each class below.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The implementation must be pure POJO, and only depend on the IronJacamar container.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Clients of the management repository contains the management specific technology, such as</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>Java Management Extensions (JMX)</li><li>JBoss Application Server 7 domain model</li><li>RHQ</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>That way we can provide an API that can be used from all client types.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="ManagementRepository">ManagementRepository</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">getConnectors()</td><td style="border: 1px solid #000000;">The active resource adapters</td></tr><tr><td style="border: 1px solid #000000;">getDataSources()</td><td style="border: 1px solid #000000;">The active datasources</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Connector">Connector</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">getUniqueId()</td><td style="border: 1px solid #000000;">The unique identifier for the deployment</td></tr><tr><td style="border: 1px solid #000000;">getResourceAdapter()</td><td style="border: 1px solid #000000;">The resource adapter</td></tr><tr><td style="border: 1px solid #000000;">getConnectionFactories()</td><td style="border: 1px solid #000000;">The connection factories</td></tr><tr><td style="border: 1px solid #000000;">getAdminObjects()</td><td style="border: 1px solid #000000;">The admin objects</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Resource_Adapter">Resource Adapter</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description<br/></strong></span></th></tr><tr><td style="border: 1px solid #000000;">getResourceAdapter()</td><td style="border: 1px solid #000000;">A reference to the live object</td></tr><tr><td style="border: 1px solid #000000;">getConfigProperties()</td><td style="border: 1px solid #000000;">The config-property's for the resource adapter</td></tr><tr><td style="border: 1px solid #000000;">getStatistics()</td><td style="border: 1px solid #000000;">A reference to the statistics module for the resource adapter</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Connection_Factory">Connection Factory</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description<br/></strong></span></th></tr><tr><td style="border: 1px solid #000000;">getJndiName()</td><td style="border: 1px solid #000000;">The JNDI name of the connection factory</td></tr><tr><td style="border: 1px solid #000000;">getConnectionFactory()</td><td style="border: 1px solid #000000;">A reference to the connection factory</td></tr><tr><td style="border: 1px solid #000000;">getManagedConnectionFactory()</td><td style="border: 1px solid #000000;">A reference to the managed connection factory</td></tr><tr><td style="border: 1px solid #000000;">getPool()</td><td style="border: 1px solid #000000;">A reference to the pool</td></tr><tr><td style="border: 1px solid #000000;">getPoolConfiguration()</td><td style="border: 1px solid #000000;">A reference to the pool configuration</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="ManagedConnectionFactory">ManagedConnectionFactory</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">getManagedConnectionFactory()</td><td style="border: 1px solid #000000;">A reference to the live object</td></tr><tr><td style="border: 1px solid #000000;">getConfigProperties()</td><td style="border: 1px solid #000000;">The config-property's for the managed connection factory</td></tr><tr><td style="border: 1px solid #000000;">getStatistics()</td><td style="border: 1px solid #000000;">A reference to the statistics module for the managed connection factory</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="AdminObject">AdminObject</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description<br/></strong></span></th></tr><tr><td style="border: 1px solid #000000;">getJndiName()</td><td style="border: 1px solid #000000;">The JNDI name for the admin object</td></tr><tr><td style="border: 1px solid #000000;">getAdminObject()</td><td style="border: 1px solid #000000;">A reference to the live object</td></tr><tr><td style="border: 1px solid #000000;">getConfigProperties()</td><td style="border: 1px solid #000000;">The config-property's for the admin object</td></tr><tr><td style="border: 1px solid #000000;">getStatistics()</td><td style="border: 1px solid #000000;">A reference to the statistics module for the admin object</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="ConfigProperty">ConfigProperty</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description<br/></strong></span></th></tr><tr><td style="border: 1px solid #000000;">getName()</td><td style="border: 1px solid #000000;">The name of the config-property</td></tr><tr><td style="border: 1px solid #000000;">isDynamic()</td><td style="border: 1px solid #000000;">Is the config-property dynamic - e.g. supports live updates</td></tr><tr><td style="border: 1px solid #000000;">isConfidential()</td><td style="border: 1px solid #000000;">Is the config-property confidential</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="DataSource">DataSource</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Method<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">getJndiName()</td><td style="border: 1px solid #000000;">The JNDI name of the datasource</td></tr><tr><td style="border: 1px solid #000000;">isXA()</td><td style="border: 1px solid #000000;">Is the datasource XA capable</td></tr><tr><td style="border: 1px solid #000000;">getPool()</td><td style="border: 1px solid #000000;">A reference to the pool</td></tr><tr><td style="border: 1px solid #000000;">getPoolConfiguration()</td><td style="border: 1px solid #000000;">A reference to the pool configuration</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Features">Features</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>TBD</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Operations">Operations</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Description of the operations that can be invoked are listed below.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>"Per request" -- Once an update has been performed it will be used at the next invocation of a method which uses the property in question</li><li>"Per container" -- Is applied once a container is started/restarted</li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="Pool">Pool</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Operation<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">flush</td><td style="border: 1px solid #000000;">Flushes the pool for idle connections</td></tr><tr><td style="border: 1px solid #000000;">flush(boolean)</td><td style="border: 1px solid #000000;">Flushes the pool for either idle connections (false) or the entire pool (true)</td></tr><tr><td style="border: 1px solid #000000;">testConnection</td><td style="border: 1px solid #000000;">Tests if a connection can be obtained</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="PoolConfiguration">PoolConfiguration</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Property<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Read</strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Write</strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Applied</strong></span></th></tr><tr><td style="border: 1px solid #000000;">MinSize</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per request</td></tr><tr><td style="border: 1px solid #000000;">MaxSize</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per request</td></tr><tr><td style="border: 1px solid #000000;">BlockingTimeout</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per request</td></tr><tr><td style="border: 1px solid #000000;">IdleTimeout</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per container</td></tr><tr><td style="border: 1px solid #000000;">BackgroundValidation</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per container</td></tr><tr><td style="border: 1px solid #000000;">BackgroundValidationMinutes</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per container</td></tr><tr><td style="border: 1px solid #000000;">Prefill</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per container</td></tr><tr><td style="border: 1px solid #000000;">StrictMin</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per request</td></tr><tr><td style="border: 1px solid #000000;">UseFastFail</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Y</td><td style="border: 1px solid #000000;">Per request</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Statistics">Statistics</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Statistics should be handled through an SPI using the following two interfaces</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code">org.jboss.jca.core.spi.statistics.Statistics
org.jboss.jca.core.spi.statistics.StatisticsPlugin
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The "Statistics" interface identifies that the component in question supports statistics. The "StatisticsPlugin" interface defines the contract for the statistics module.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Implementation">Implementation</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The implementation is located in the core module of the IronJacamar repository. The package is</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><pre class="jive-pre"><code class="jive-code">org.jboss.jca.core.api.management
</code></pre><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The implementing classes must use java.lang.ref.WeakReference for all live object references, such that won't prevent a garbage collection of the object in question.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Operations_235666">Operations</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="Pool_389220">Pool</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Access can be done directly on the reference.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="PoolConfiguration_4934">PoolConfiguration</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Access can be done directly on the reference.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3 id="Statistics_992354">Statistics</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>It is possible to enable/disable statistics collection, as well as clear current values.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>All statistics are read-only.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4 id="PoolStatistics">PoolStatistics</h4><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Property<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">ActiveCount</td><td style="border: 1px solid #000000;">The active count</td></tr><tr><td style="border: 1px solid #000000;">AvailableCount</td><td style="border: 1px solid #000000;">The available count</td></tr><tr><td style="border: 1px solid #000000;">AverageBlockingTime</td><td style="border: 1px solid #000000;">The average time spent blocking on a connection</td></tr><tr><td style="border: 1px solid #000000;">AverageCreationTime</td><td style="border: 1px solid #000000;">The average time spent on creating a physical connection</td></tr><tr><td style="border: 1px solid #000000;">CreatedCount</td><td style="border: 1px solid #000000;">The created count</td></tr><tr><td style="border: 1px solid #000000;">DestroyedCount</td><td style="border: 1px solid #000000;">The destroyed count</td></tr><tr><td style="border: 1px solid #000000;">MaxCreationTime</td><td style="border: 1px solid #000000;">The maximum time spent on creating a physical connection</td></tr><tr><td style="border: 1px solid #000000;">MaxUsedCount</td><td style="border: 1px solid #000000;">The maximum number of connections used</td></tr><tr><td style="border: 1px solid #000000;">MaxWaitCount</td><td style="border: 1px solid #000000;">The maximum number of threads waiting for a connection</td></tr><tr><td style="border: 1px solid #000000;">MaxWaitTime</td><td style="border: 1px solid #000000;">The maximum time waiting for a connection</td></tr><tr><td style="border: 1px solid #000000;">TimedOut</td><td style="border: 1px solid #000000;">The timed out connections</td></tr><tr><td style="border: 1px solid #000000;">TotalBlockingTime</td><td style="border: 1px solid #000000;">The total time spent blocking for connections</td></tr><tr><td style="border: 1px solid #000000;">TotalCreationTime</td><td style="border: 1px solid #000000;">The total time spent creating physical connections</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Test_suite">Test suite</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The management model is currently tested through the RHQ plugin.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="JDBC">JDBC</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The JDBC resource adapter has the following statistics exposed</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" style="width: 100%; border: 1px solid #000000;"><tbody><tr><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Statistics<br/></strong></span></th><th align="center" style="background-color: #6690bc;; border: 1px solid #000000;background-color: #6690bc;" valign="middle"><span style="color: #ffffff;"><strong>Description</strong></span></th></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheAccessCount</td><td style="border: 1px solid #000000;">The number of times that the statement cache was accessed</td></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheAddCount</td><td style="border: 1px solid #000000;">The number of statements added to the statement cache</td></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheCurrentSize</td><td style="border: 1px solid #000000;">The number of prepared and callable statements currently cached in the statement cache</td></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheDeleteCount</td><td style="border: 1px solid #000000;">The number of statements discarded from the cache</td></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheHitCount</td><td style="border: 1px solid #000000;">The number of times that statements from the cache were used</td></tr><tr><td style="border: 1px solid #000000;">PreparedStatementCacheMissCount</td><td style="border: 1px solid #000000;">The number of times that a statement request could not be satisfied with a statement from the cache</td></tr></tbody></table><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2 id="Related">Related</h2><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>JBoss Application Server 7</li><li><a class="jive-link-wiki-small" href="http://community.jboss.org/docs/DOC-16378">RHQ platform</a></li></ul></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="http://community.jboss.org/docs/DOC-16674">going to Community</a></p>

        <p style="margin: 0;">Create a new document in IronJacamar Development at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2099">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>