Hi Stuart,
What's the timeout on your connection pool in Sequoia? It's possible you have
the pool(s) configured to keep some number of connections open indefinitely,
which is rarely a good thing. Here's a typical connection pool setting I use:
<DatabaseBackend name="coot_db"
url="jdbc:mysql://coot/cluster">
<DatabaseSchema/>
<ConnectionManager vLogin="benchmark" rLogin="benchmark"
rPassword="secret">
<VariablePoolConnectionManager initPoolSize="1" minPoolSize="0"
maxPoolSize="0" idleTimeout="180" waitTimeout="0"/>
</ConnectionManager>
</DatabaseBackend>
I have the minimum pool size set to 0 so connections are freed completely if
they are not in use. Also, idleTimeout is set to 180 seconds, so the pool will
drain all connections after 3 minutes maximum. With these settings my
configuration can normally live through rebooting the server provide there is
no recent traffic on the backend.
Cheers, Robert
P.s., These example values are for MySQL backends but work identically for PG.
On 5/17/08 2:18 PM, "Stuart James" <[EMAIL PROTECTED]> wrote:
Hi,
Recently we have deployed Sequoia into a new data center with the
following configuration.
2 controllers, 2 backends per conntroller. Web application access
Sequoia controller via ASA, allowing port 25322 TCP/UDP. Controllers
access Postgresql Database via ASA, allowing port 5432. Default on ASA
connection timeout is 60 minutes.
Webapps --> ASA Allow 25322 TCP/UDP --> Sequoia
Sequoia --> ASA Allow 5432 TCP --> Postgresql
We get the following error messages
ASA log
May 16 12:33:17 XXXXX Deny TCP (no connection) from LAPP1/49838 to
LDB1/5432 flags PSH ACK on interface XXX_XXX
cluster.log
2008-05-16 12:33:19,431 INFO Database backend XXXX.ldb1 is now in
state disabled
2008-05-16 12:33:20,574 ERROR Disabling backend ldb1 because it is no
more in sync
full_cluster.log
2008-05-16 12:33:20,574 ERROR backend.DatabaseBackend.ldb1 Request
'update XXXXXXXXXXXXXXXXXX = ...' failed on backend ldb1 but 1 succeeded
(org.continuent.sequoia.common.exceptions.BadConnectionException: An
I/O error occured while sending to the backend.)
As I am not an expert with JDBC connections, and how Sequoia uses the
Postgresql JDBC connections to the backends, how can we specify it to
use keepalives, or is this by default? I have read that Postgresql jdbc
keepalive is off by default, referring to postgresql-jdbc-8.3-603
http://archives.postgresql.org/pgsql-jdbc/2008-02/msg00037.php
Another interesting point, during the fail
May 16 12:33:19 XXXXX : Deny icmp src XXXX:LAPP1
dst XXXXX:LDB1 (type 3, code 10) by access-group
"XXXXXXX" [0x0, 0x0]
It appears this is coming from our controller and sending to our
database, the ASA is dropping this as only port 5432 TCP is allowed, no
ICMP. What is it sending ICMP for, i realise this "port unreachable"
code, is this a side affect of Sequoia loosing sync with the backend?
Versions
Sequoia 2.10.10
Postgresql 8.3.1
postgresql-8.2-504.jdbc3.jar (should probably upgrade to 8.3)
ASA lastest code
Regards,
Stuart James
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia
--
Robert Hodges, CTO, Continuent, Inc.
Email: [EMAIL PROTECTED]
Mobile: +1-510-501-3728 Skype: hodgesrm
_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia