Olaf and Scott --

Thanks to both of you for your comments. I may have asked my question poorly, 
since what you both described is the way I understand TCP to work. There is no 
correlation between an incoming connection to tomcat and its outgoing 
connection to a database backend, nor would I expect there to be.

Perhaps a simpler way to ask my question is: when a server has multiple IPs, 
which one does tomcat use as its source IP when it initiates a three-way 
handshake with a remote machine?

For example, suppose my server has IP addresses 10.0.0.1 and 10.0.0.2, and my 
tomcat connector looks like this...

<Connector
    port="8080"
    protocol="HTTP/1.1"
    address="10.0.0.2"
    connectionTimeout="20000"
    redirectPort="8443"
  />

Tomcat is now listening on IP 10.0.0.2.

But here's the question. If tomcat needs to initiate a TCP session to a remote 
machine (acting as a TCP client), will it use 10.0.0.1 or 10.0.0.2 as the 
source IP of the outbound connection? I'm assuming it will use the same IP that 
the connector is configured to listen on.


> -----Original Message-----
> From: Olaf Kock <tom...@olafkock.de>
> Sent: Friday, June 25, 2021 3:01 AM
> To: users@tomcat.apache.org
> Subject: Re: Re-Use TCP Source Ports if the Socket is Unique?
>
>
> On 25.06.21 05:19, Eric Robinson wrote:
> > Thanks for the feedback, Daniel.
> >
> > I guess the answer depends on whether the socket libraries use the tomcat
> listening port as the source IP. If you have three tomcat instances listening 
> on
> three different IPs, each instance should be able to open a client connection
> using the same source port, as long as each tomcat uses its listening IP as 
> the
> source IP of the socket.
> >
> > That's the part I'm still not sure about.
>
> My expectation is that database connections do not have any correlation
> with the listening port: Technically, DB connection pools can be shared across
> all contained Hosts and Connectors /within a single tomcat/, and when
> multiple processes are added to the game, it doesn't really change anything.
>
> In fact, it's not uncommon that there's a public facing network adapter,
> where a http-connector listens, but a completely different network adapter
> for any backend communication - e.g. to the database. All that I expect a
> database driver to do is to specify where it wants to connect to, and the OS
> figures out how that connection needs to be routed.
> That's utterly independent of any http connection that comes in to the same
> process.
>
> So: Don't expect any correlation, and you're safe.
>
> (Note: There /may/ be ways to configure a db-driver to specify a source
> address, but I'd expect that rather to add a potential failure rather than
> anything that I'd want to control. If you interpret such a situation 
> differently:
> Please elaborate)
>
> Best,
>
> Olaf
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org

Disclaimer : This email and any files transmitted with it are confidential and 
intended solely for intended recipients. If you are not the named addressee you 
should not disseminate, distribute, copy or alter this email. Any views or 
opinions presented in this email are solely those of the author and might not 
represent those of Physician Select Management. Warning: Although Physician 
Select Management has taken reasonable precautions to ensure no viruses are 
present in this email, the company cannot accept responsibility for any loss or 
damage arising from the use of this email or attachments.

Reply via email to