tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dmcletchie <>
Subject datasource duplication in tomee
Date Thu, 10 Aug 2017 15:22:43 GMT

I'm kind of new to TomEE & App servers in general.  I Apologize in advance
if I use some incorrect terminology.

I have set up a web application that connects to a database.
To connect to the database, I'm defining a resource in a context.xml file.
I'm not modifying server.xml.
I'm using the PSI-probe to manage/monitor things.

My problem is that I keep getting duplicate database connection pools.  Or,
I think that I'm getting duplicate pools.
The probe app seems to list 3 Application Resources. but I think that 2 of
them might be linked  I can see some logging around the linking. (I see
lines with "Auto-linking resource-ref" in the log file)

To tried to divide & conquor, I think that narrowed it down to my
context.xml.  I created a hello world web app, that has 2 files.  One file
extends, and the other file has a single resource with a single hello world method in it.  So, the app
doesn't use the database.  it just has 1 method with a one line "hello
world" method.

Then I created a context file, that looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<Resource name="jdbc/foobar"
and put it in META-INF

I grabbed a clean download of apache-tomee-7.0.3-plus, so that the config
files are all at their default.
I added by helloworld.jar.  I added the probe.war, for management.  I added
ojdbc8.jar to the libs directory.
I modified tomcat-users.xml so that I could log into the manager & the
probe app.

When Tomee is not running, and I look at my database, there are no session
from my development machine.  When I start the app, there are 4
connections.  (initial size is 2, I have 4 connections, so I think that I
have 2 dbcp pools).

If I increase my initialSize to 3 & restart the app, then I can see in the
database that I have 6 sessions.  (It is an oracle database, so I can see
the connections with the command "select count(*) from v$session where
machine = 'developmentmachine';")

When I look in the probe, I can see 3 application resources:

APP              RESOURCE                                 USAGE   M   E   B
  USER      URL                                  DESCRIPTION   TYPE
/helloWorld openejb/Resource/jdbc/foobar                     10  2   0
XXXXXXXXX jdbc:oracle:thin:@HHHHHHHH:1521:ORCL               tomcat-dbcp2
/helloWorld jdbc/foobar                                      10  2   0
XXXXXXXXX jdbc:oracle:thin:@HHHHHHHH:1521:ORCL               tomcat-dbcp2
/helloWorld openejb/Resource/helloWorld/jdbc/foobar          10  2   0
XXXXXXXXX jdbc:oracle:thin:@HHHHHHHH:1521:ORCL               tomcat-dbcp2

the "E" column is "the number of established connections that can be
reused".  so, it's reporting 6 (2 for each resource) but I think that I
have 4, since that's what the database tells me.  The AUTH column isn't
exactly the same, 2 are "CONTAINER" and 1 is "Container".  so maybe that's
a clue to the linking?

So - I'm hoping that since this is such a minimal config, someone can tell
me what I'm doing wrong.  Do I really have 2 different dbcp pools?  or do I
have 1 or 3?  Why is the number of session in the database always double
the initialSize number, even though my app is never using the database.

I'll attach the snippet of the log file.  The logging is all at the
defaults, since I just grabbed this install.  I can repeat it with
additional logging if that would help.



catalina.log.txt (14K) <>

View this message in context:
Sent from the TomEE Users mailing list archive at
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message