Today the client (SQL Anywhere Network Server Version 17.0.10.5963) encountered the following situation when connecting to the database. For example:
or
Why did "disconnecting unused connection" happen and what does "disconnecting unused connection" repetition mean? In less than 10 minutes, the client received more than 1.4 million "disconnecting unused connection" messages (((
ps At the same time, at 12:02:30 there was the following warning:
|
This disconnect happens when the server has not received a packet from the client in the past 30 seconds (the default setting) after initiating a connect. Something has prevented the client from sending or the server from receiving a packet. The maximum number of seconds between the connection acceptance and the receipt of the first packet is 30 seconds. If the first packet is not received within this time period, the connection is dropped. The message about the forbid mutex might indicate that a thread in the server is blocking other threads from running, including the thread that addresses incoming packets in a timely manner. I formulated incorrectly. More than 1.4 million messages were received by the SQL Anywhere log (-o).
(30 Nov '22, 10:26)
Ilia63
Replies hidden
Do you use Connect/ConnectFailed/Disconnect events to track those? If so, do the AppInfo, User etc. parameters or DisconnectReason show something significant?
(30 Nov '22, 11:05)
Volker Barth
There are events in the database ("Connect" and "Disconnect") that write information about the connection and disconnection to a special table. The last entry before the database restart was at 12:01:22.440:
The further life of this connection (already without recording information about the disconnect in a special table):
(02 Dec '22, 06:05)
Ilia63
So is this an expected user/app connecting to the database? If so, could you have them use client logging (via connection parameter LOGFILE=...)?
(02 Dec '22, 07:02)
Volker Barth
ps Maybe it's time for a checkpoint and everything is frozen?
"When a checkpoint of a database occurs all of the database connections get (temporarily) locked out so that changes to the database do not occur. Normally the lock out time is very short but if you have a very large cache and there are a lot of dirty (changed) database pages then the time it takes to write all of the dirty pages to disk could take a long time..." (Mark Culp https://sqlanywhere-forum.sap.com/questions/20132/sqla0001tmp-server-unresponsive)
(02 Dec '22, 07:28)
Ilia63
Do you have access to technical support? We should investigate the forbid mutex warning but it will require some setup that would be best done in a support incident.
(02 Dec '22, 16:15)
Chris Keating
|
I have no clue. Do you use connection pooling? (And no, I'm not suggesting it has to do with that, it's just a very very very wild guess.)
Connection pooling is used. Here is the last message about pooling before the problem:
And here are the last parameter values received by the client:
Re: In less than 10 minutes, the client received more than 1.4 million When you say "client" do you mean "customer"? The "client" is usually the application that is communicating with the "server". This almost seems like a DOS (denial of service) attack. Are all these 1.4 million coming from the same few IP addresses? Do you recognize the IP addresses (are they known addresses)?