This block summarizes all the available server/client pools of resources.

When a request requires a kind of resource, it first tries to get one by asking a slot to the pool.

Once all the slots of the pool are filled, the request is stored in the queue of the pool, waiting for an available slot. When the queue is also filled, then an error is thrown to the request during the submission mechanism (a timed out mechanism can be in place).

We display the following information:

  • Resource name
  • Available: minimum number of slots available during the select period
  • Queue size: maximum queue length recorded during the selected period

dataserever resources

A resource is exhausted when all the slots are busy, often the queue length is then different from zero.

Resources description

Hikari Pool

Introduced in v17, the HikariCP pool is the default one on spring boot. As the others, available column must be over 0.

TomcatEndPoint

Introduced in v17, this pool receive the requests from the dataserver’s client.

Calypso*

This is Calypso cache based on their custom framework.

Datasource pool

Dataserver connect to database using datasource pools. These pools are configured in JBoss configuration file.

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
            <datasources>
                <datasource jta="true" jndi-name="java:/calypso/datasources/CalypsoDS" pool-name="CalypsoDS" enabled="true" use-ccm="true">
                    <driver>oracle</driver>
                    <pool>
                        <min-pool-size>5</min-pool-size>
                        <max-pool-size>200</max-pool-size>
                    </pool>
                    ...
                </datasource>
                <datasource jta="true" jndi-name="java:/calypso/datasources/CalypsoBuySideDatawareHouseDS" pool-name="CalypsoBuySideDatawareHouseDS" enabled="true" use-ccm="true">
                    <connection-url>None</connection-url>

In this example, it will displays 2 ressources :

  • DS-CalypsoDS
  • DS-CalypsoBuySideDatawareHouseDS

EJB3 pool

EJB3-default EJB3-remoting

#TODO:check

JCA pool

A quick look at JBoss JCA documentation for work managers. It enables the submission of asynchronous task to a worker pool managed by the application server. There is two set of worker pool :

  • JCA-long
  • JCA-short

Calypso do not use this kind of mechanism as far as we know.

MdB pool

Pool created by Jboss to handle Message Driven Bean produced by Calypso. This EJB are messages exchange between components or internally. Calypso do not use a lot of MDB, default configuration is often very large.

Examples :

  • Mdb-mdb-strict-max-pool|CacheUpdateSubscriberBean
  • Mdb-mdb-strict-max-pool|CalypsoAuditMessageBean
  • Mdb-mdb-strict-max-pool|ReadOnlyCacheSynchronizationBean

Configuration example :

  <subsystem xmlns="urn:jboss:domain:ejb3:4.0">
            <session-bean>
                ... // Session bean,s
            </session-bean>
            <mdb>
                <resource-adapter-ref resource-adapter-name="mdb-hornetq-ra"/> // MDB use hornetQ to communicate
                <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/> // Execution is handle by this pool
            </mdb>
            <pools>
                <bean-instance-pools>
                    <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
                </bean-instance-pools>
            </pools>

Messaging

This is the pool executor for JMS messaging (ActiveMQ). The ActiveMQ have two kinds of pool :

  • Messaging-ScheduledThreadPoolExecutor : for the delayed message publication
  • Messaging-ThreadPoolExecutor : general usage

More information on ActiveMQ documentation

This pool is on the event-server as it is for ActiveMQ server side. It can be displayed on dataserver if event server is not launched apart.