When using Glassfish you can define your own DataSource
via @DataSourceDefinition, and inject it via @Resource annotation, which is
supported since Java EE 7.
For example,
@DataSourceDefinition(name="jndiname here", .....)
@ApplicaitonScoped
class DatabaseConfig{}
use it like this,
@Resource(lookup="jndi name") DataSource ds
More simply, since Java EE 7, default resources are available for
DataSource, JMS etc.
You can inject the default DataSource directly via
@Resource DataSource datasource
---
Regards,
*Hantsy Bai*
Self-employed consultant, fullstack developer, agile coach,
freelancer/remote worker
GitHub: https://github.com/hantsy
Twitter: https://twitter.com/@hantsy
Medium: https://medium.com/@hantsy
On Tue, Aug 19, 2025 at 10:23 AM Daniel Schwartz <[email protected]>
wrote:
> Everyone,
>
> I wasn't resisting using the try-with-resources construct, only when I
> tried to do this, I was getting compiler errors. But I evidently wasn't
> doing it right, because I tried it again and this time it worked.
>
> Following is the new code for getting the list of countries. It uses this
> construct and in addition has an extra catch clause for any kind of
> exception. I have done this in all six places where a connection is being
> created.
>
> I restarted Glassfish earlier today and dropped in the new .war file. It
> has been running for 6-8 hours now. The log files show no evidence of any
> exceptions being thrown. The current contents of the JDBC monitor page are
> copied below. I don't know how to interpret most of this, but I do note
> that the number of connections released equals the number acquired. Also,
> I have set the Connection Leak Timeout to be 10 seconds, and the
> NumPotentialConnLeak is still at 0.
>
> In addition, I did some further experimenting with the pool size, and now
> I find that if I set the minimum back to 8 and the maximum to 32, which are
> the defaults, the system keeps running and doesn't output that "can't
> allocate more connections" message. For me this is very puzzling. Did my
> code changes have anything to do with this?
>
> Anyway, my interpretation of all this is as before, that there are no
> memory leaks. Is this correct?
>
> I'm trying to upgrade to the current version of Glassfish, but haven't
> gotten this working yet.
>
> Dan
>
>
> -----------------------------------------------------------------------------
> @Path("holidaysandevents")
> public class HolidaysRESTJSONResource {
>
> @Context
> private UriInfo context;
>
> DataSource dataSource;
>
> public HolidaysRESTJSONResource() {
> dataSource = DataSourceSingleton.getInstance().dataSource;
> }
>
> @GET
> @Path("/countries")
> @Produces(MediaType.APPLICATION_JSON)
> public String getJsonCountries() {
> if (TempDataStorage.countryList == null) {
> // Connection connection = null;
> try (Connection connection = dataSource.getConnection()){
> // connection = dataSource.getConnection();
> TempDataStorage.countryList =
> GetCountryList.doIt(connection);
> } catch (SQLException e) {
> System.out.println("Sql Exception" + e.getStackTrace());
> } catch (Exception e) {
> System.out.println("Other Exception" + e.getStackTrace());
> }
>
> //finally {
> // if (connection != null) {
> // try {
> // connection.close();
> // } catch (SQLException e) {
> // System.out.println(e.getStackTrace());
> // }
> // }
> // }
> }
> StringListWrapper listWrapper = new StringListWrapper();
> listWrapper.setTheList(TempDataStorage.countryList);
> return new Gson().toJson(listWrapper);
> }
>
> ---------------------------------------------------------------------------------
> Resource Monitoring
> Click Configure Monitoring and enable monitoring for a component or
> service by selecting either LOW or HIGH. See the Online Help for more
> information.
>
> Instance Name:
> server
>
> Resource :
> HolidaysConnectionPool
> Application :
> Monitor (14 Statistics)
> Collapse Group JDBC Connection Pool Statistics : HolidaysConnectionPool
>
> NumConnCreated 20 count Aug 18, 2025 5:47:56 PM Aug 19, 2025
> 12:37:57 AM -- The number of physical connections that were
> created since the last reset.
> NumConnFree 1count Aug 18, 2025 5:47:56 PM Aug 19, 2025 1:48:33 AM
> High Water Mark: 3 count
> Low Water Mark: 0 count
> The total number of free connections in the pool as of the last sampling.
> NumConnReleased 325 count Aug 18, 2025 5:47:56 PM Aug 19, 2025
> 1:48:33 AM -- Number of logical connections released to the pool.
> NumPotentialConnLeak 0 count Aug 18, 2025 5:47:56 PM -- --
> Number of potential connection leaks
> NumConnFailedValidation 0 count Aug 18, 2025 5:47:56 PM -- --
> The total number of connections in the connection pool that failed
> validation from the start time until the last sample time.
> ConnRequestWaitTime 0millisecond Aug 18, 2025 5:47:56 PM Aug 19,
> 2025 1:48:33 AM High Water Mark: 921 millisecond
> Low Water Mark: 0 millisecond
> The longest and shortest wait times of connection requests. The current
> value indicates the wait time of the last request that was serviced by the
> pool.
> NumConnAcquired 325 count Aug 18, 2025 5:47:56 PM Aug 19, 2025
> 1:48:33 AM -- Number of logical connections acquired from the pool.
> AverageConnWaitTime 12 millisecond Aug 18, 2025 5:47:56 PM Aug 19,
> 2025 1:49:00 AM -- Average wait-time-duration per successful
> connection request
> NumConnDestroyed 19 count Aug 18, 2025 5:47:56 PM Aug 19,
> 2025 12:37:57 AM -- Number of physical connections that were
> destroyed since the last reset.
> NumConnSuccessfullyMatched 0 count Aug 18, 2025 5:47:56 PM --
> -- Number of connections succesfully matched
> NumConnNotSuccessfullyMatched 0 count Aug 18, 2025 5:47:56 PM --
> -- Number of connections rejected during matching
> NumConnUsed 0count Aug 18, 2025 5:47:56 PM Aug 19, 2025 1:48:33 AM
> High Water Mark: 2 count
> Low Water Mark: 0 count
> Provides connection usage statistics. The total number of connections that
> are currently being used, as well as information about the maximum number
> of connections that were used (the high water mark).
> WaitQueueLength 0 count Aug 18, 2025 5:47:56 PM -- -- Number of
> connection requests in the queue waiting to be serviced.
> NumConnTimedOut 0 count Aug 18, 2025 5:47:56 PM -- -- The total
> number of connections in the pool that timed out between the start time and
> the last sample time.
>
> -----Original Message-----
> From: Robert Turner <[email protected]>
> Sent: Monday, August 18, 2025 11:13 AM
> To: Tomcat Users List <[email protected]>
> Subject: Re: [EXTERNAL EMAIL] How to access a REST service
>
> For instance, what happens when the year parameter for the "calender"
> request is not a number?
> Or if parameters are missing?
> Have you tested these situations?
>
> On Mon, Aug 18, 2025 at 10:52 AM Robert Turner <[email protected]>
> wrote:
>
> > Daniel,
> >
> > You have a leak - this we are certain of. You just don't yet know what
> > causes it (it's clearly not a "standard use case" and the robots are
> > likely triggering it).
> >
> > If I have my bets it is an unhandled unchecked exception (I'd even
> > guess that it is likely a NumberFormatException) while processing one
> > of your operations. Since you are reluctant to move your code to
> > "try-with-resources" handling of the resource objects (which would
> > make the code easier to read and avoid this problem), you will
> > continue to see the problem unless you ensure that you are catching all
> exceptions (e.g.
> > Throwable) (which is a bad practice in general).
> >
> > The 388 connection cound is the existing leaked connections from
> > previous operations since you last started the Glassfish server and
> > pool. I did suggest you restart Glassfish after adjusting that
> > parameter to reset the numbers and the systems.
> >
> > From my testing, I am very confident that the different versions will
> > not behave differently in the context of your application.
> >
> > Please have some confidence that we do know what we are talking about.
> > Your problem is common and not unique.
> >
> > If I get some time, and with your permission, I might try to look at
> > your server operations and see if I can trigger it for you... but if
> > you share the code for all the operations (no need to share the DB
> > queries, just the Java code), I bet we can find it quickly. However,
> > us solving it for you avoids you benefiting from the learning experience.
> >
> > Robert
> >
> >
> > On Mon, Aug 18, 2025 at 10:44 AM Daniel Schwartz
> > <[email protected]>
> > wrote:
> >
> >> Chris,
> >>
> >> I thought it was you. I too have a job and family, and this is only
> >> a side project, so my time also is limited.
> >>
> >> Anyway, I'm wondering if there really is a problem, or whether this
> >> is just normal Glassfish behavior. Yesterday I changed the Glassfish
> >> settings so that leak monitoring is activated, and today I got:
> >>
> >> NumPotentialConnLeak 0 count Aug 8, 2025 3:18:57 PM -- --
> >> Number of potential connection leaks
> >>
> >> Also, this value:
> >>
> >> NumConnUsed 388count Aug 4, 2025 2:47:24 AM Aug 18, 2025
> >> 2:34:54 PM High Water Mark: 390 count Low Water Mark: 0 count
> >> Provides connection usage statistics. The total number of connections
> >> that are currently being used, as well as information about the
> >> maximum number of connections that were used (the high water mark).
> >>
> >> Has remained unchanged at 388.
> >>
> >> There has been suspicion that my system has a memory leak, but all
> >> indications are that this is not happening.
> >>
> >> I'm currently trying to upgrade to the current version of Glassfish
> >> to see if this behaves differently, but haven't gotten it working yet.
> >>
> >> Dan
> >>
> >>
> >> -----Original Message-----
> >> From: Christopher Schultz <[email protected]>
> >> Sent: Monday, August 18, 2025 10:29 AM
> >> To: [email protected]
> >> Subject: Re: [EXTERNAL EMAIL] How to access a REST service
> >>
> >> Daniel,
> >>
> >> On 8/16/25 10:57 PM, Daniel Schwartz wrote:
> >> > There was a Chris too, but I think he made his recommendation and
> >> > left.
> >> I'm still here, but I do have a job and a family. Rob, Robert and
> >> Chuck were making plenty of noise so I decided to reduce the clutter.
> >>
> >> > I'm coming to think that his advice was the best, namely, to just
> >> > live with the current situation as long as it is working.
> >> I gave no such advice. I think you should chase this down until you
> >> understand the cause and have it fixed.
> >>
> >> -chris
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>