Hello again, Rob,

Thanks for your reply.  This is admittedly beyond my level of expertise, but 
I'm learning.

A little context.  My website is www.worldholidaysandevents.com.  This has two 
components: (1) a backend webservice running Glassfish and MySql, and (2) a 
website that serves as a user interface that consumes the webservice and which 
was recently created using Next.js.

The new website was written by a former student that I can still consult with 
as needed, but otherwise the "team" is just me.  The student was very 
knowledgeable, having done this same kind of work in India before coming to my 
university.  He set this up with an nginx front end, and I can see the accesses 
in the nginx access.log file.  This file is too large for email, but you can 
view it at www.cs.fsu.edu/~schwartz/access.log.  This contains all accesses 
since Monday, 8/4.  The lines that make a reference to "calendar" and some 
combination of "country", "state", "city", "year" are all database requests.

The IP address 73.118.50.199 is me, running tests.  Many of the others are 
created by web crawlers, with names like Googlebot, DotBot, PetalBot, 
SemrushBot, bingbot, etc.

However, many of the entries also don't seem to be from webcrawlers, but appear 
to be bogus requests.  For example, the following line occurs repeatedly:

96.9.89.82 - - [04/Aug/2025:22:49:12 +0000] "GET 
/_next/static/css/a2a6f669bb486c52.css HTTP/1.1" 200 6473 
"https://www.worldholidaysandevents.com/calendar?country=Cambodia&year=1983"; 
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 
Gecko) Chrome/138.0.0.0 Safari/537.36"

And there are other similar types of requests that seem to be manufactured by 
some robot and that are not identified as coming from a webcrawler (or at least 
no webcrawler name is given).

My student says that the webcrawlers serve a useful purpose in helping with 
SEO, so they are a necessary evil.  But the others I believe should be blocked, 
and I understand that this can be done by listing the IP addresses somewhere in 
nginx.  I'm trying figure out how to do this.

Let me also mention that I recently talked with a person at a company called 
Omnifish, based in Prague I think, that specializes in consulting for 
Glassfish.  He said that the total number of concurrent connections is limited 
by the maximum size of the pool.  Accordingly, getting an error message saying 
that no additional connections can be created, and the system crashing, occurs 
when all the connections in the pool are currently in use.  He considered this 
to be normal behavior.  That's why I set the size to 1000.  It seems to be 
working.  However, if I were designing a pooling system, I wouldn't do it this 
way, and it seems that other pooling systems do allow for additional 
connections outside the pool.

Anyway, any further insights you or anyone can give will be appreciated.

Dan Schwartz

From: Rob Sargent <rsarg...@xmission.com>
Sent: Tuesday, August 5, 2025 11:40 PM
To: Tomcat Users List <users@tomcat.apache.org>
Cc: Tomcat Users List <users@tomcat.apache.org>
Subject: Re: How to access a REST service

> On Aug 5, 2025, at 11:54 AM, Daniel Schwartz 
> <d...@danielgschwartz.com<mailto:d...@danielgschwartz.com>> wrote: > > Hello 
> again Rob, > > I just read that article you referenced by Cockroach Labs. I 
> found the statement: > > "If we make the
NkdkJdXPPEBannerStart
Be Careful With This Message
From (Rob Sargent 
<rsarg...@xmission.com>)<https://godaddy1.cloud-protect.net/email-details/?k=k1&payload=53616c7465645f5f1933ea4495d1e4e6e586f0daa8cc6fc871f8631d90342b3e3b73ecb5c6821f786c62f34375bd457a77a4668c15a9446ce1bc5132cf77cbf0be1808f5ebde108808a9a78dcfd981c6b6676df0a8d4944f8b685e15e03ad23ccc798ffdc9c0341efc607b18a96bf37ec3de055760a4984a04f4e70bcbd9fe5e5bc5f1cee0293f413ed97673720d5a9c3d52f1de8787f821f6f776e586b31e3afd1d2c6ea875591c4de3f4928fe99a35f78a1ba82c74b95c02e67da46fe368ef5c1fe726f0c54de0a8d360ef3c80b54db3657b681de4e15544d0a1a88908fa8d27b97335b585492acb5cb53586e3f107>
Learn 
More<https://godaddy1.cloud-protect.net/email-details/?k=k1&payload=53616c7465645f5f1933ea4495d1e4e6e586f0daa8cc6fc871f8631d90342b3e3b73ecb5c6821f786c62f34375bd457a77a4668c15a9446ce1bc5132cf77cbf0be1808f5ebde108808a9a78dcfd981c6b6676df0a8d4944f8b685e15e03ad23ccc798ffdc9c0341efc607b18a96bf37ec3de055760a4984a04f4e70bcbd9fe5e5bc5f1cee0293f413ed97673720d5a9c3d52f1de8787f821f6f776e586b31e3afd1d2c6ea875591c4de3f4928fe99a35f78a1ba82c74b95c02e67da46fe368ef5c1fe726f0c54de0a8d360ef3c80b54db3657b681de4e15544d0a1a88908fa8d27b97335b585492acb5cb53586e3f107>
Potential Impersonation
The sender's identity could not be verified and someone may be impersonating 
the sender. Take caution when interacting with this message.

NkdkJdXPPEBannerEnd





> On Aug 5, 2025, at 11:54 AM, Daniel Schwartz 
> <d...@danielgschwartz.com<mailto:d...@danielgschwartz.com>> wrote:

>

> Hello again Rob,

>

> I just read that article you referenced by Cockroach Labs.  I found the 
> statement:

>

>  "If we make the pool too small (i.e. choose too few connections), we’ll 
> introduce latency, as operations have to  wait for an available connection to 
> open up before they can execute."

>

> This implies that if the number of concurrent accesses exceeds the number of 
> connection objects in the pool, then the system simply waits until some of 
> the currently active connections terminate and the connection objects become 
> available.

>

> This is not what was happening with Glassfish.  When the number of 
> simultaneous requests exceeds the pool size, the system outputs an error 
> message and crashes.  It doesn't just wait until some active connections 
> terminate so that the connection objects become available.  It seems that 
> different pooling systems have different policies.

>

Bottom posting is generally preferred. Crop to appropriate portion of original.





Are web crawlers making database requests?



Do you know which db calls are actually being made? And when?



Is the switch from 32 to 1000 the only change you made? I don’t think I am the 
only one here who thinks that is a red herring.



You may need to give more information: db server, connection configuration, 
servlet code, logs (app, middle tier, dbserver).



I suspect you may have been compromised. Is there anyone at your sight who can 
comment on this?

---------------------------------------------------------------------

To unsubscribe, e-mail: 
users-unsubscr...@tomcat.apache.org<mailto:users-unsubscr...@tomcat.apache.org>

For additional commands, e-mail: 
users-h...@tomcat.apache.org<mailto:users-h...@tomcat.apache.org>


Reply via email to