Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 В каких случая MSSQL 2016 может разрывать соеденение  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 666
Добрый день.

Клиент работающий с MSSQL 2016 написан на дельфях DX10.3.2 компоненты FireDAC. При мистических обстоятельствах происходит разрыв соединения с MSSQL, далее TFDConnection делает автоматическое восстановление связи, которое занимает примерно 1 минуту, клиент при этом залипает.. крутиться колесо. Возникает ситуация на разных ПК в сети...

Можно ли как то средствами самого mssql зафиксировать, что что-то в сетевой работе пошло не так, и mssql "убил" соединение т.к. посчитал его не рабочим?

или

Может ли mssql разрывать соединения по каким-то причинам, например, высвобождение ресурсов из за нехватки, или достигнут какой либо порог соединений?
9 окт 19, 09:19    [21990063]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29246
Игорь_UUS
Можно ли как то средствами самого mssql зафиксировать, что что-то в сетевой работе пошло не так, и mssql "убил" соединение т.к. посчитал его не рабочим?

или

Может ли mssql разрывать соединения по каким-то причинам, например, высвобождение ресурсов из за нехватки, или достигнут какой либо порог соединений?
По моему, для mssql любой внешний разрыв соединения одинаковый, он их не различает, и не получает каких то сообщений о причинах.

Сам mssql, конечно, может разорвать соединение, но тогда причина будет и в сообщении об ошибке, и в логах.
9 окт 19, 09:29    [21990074]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
andy st
Member

Откуда:
Сообщений: 760
Игорь_UUS,
минуту на реконнект в локалке - это сурово
жива ли локалка в этот момент и не стоит ли в ней анализаторов трафиика с закрытием соединений, которые "умные железки" посчитают нехорошими?
жив ли сервер в этот момент и не занимается ли какими оффлайновыми операциями?
9 окт 19, 10:00    [21990104]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4987
Игорь_UUS,

проверьте ring buffer - возможно там будут ответы
https://dngsql.wordpress.com/2012/12/04/using-sys-dm_os_ring_buffers-to-troubleshoot-connectivity-issues/
9 окт 19, 10:29    [21990128]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 666
komrad
Игорь_UUS,

проверьте ring buffer - возможно там будут ответы
https://dngsql.wordpress.com/2012/12/04/using-sys-dm_os_ring_buffers-to-troubleshoot-connectivity-issues/


Хммм... интересная штука...

примерно каждые 5-10 минут вижу новую запись с текстом:

Network error code 0x%x occurred while establishing a connection;
the connection has been closed. This may have been caused by client
or server login timeout expiration. Time spent during login: total %d ms,
enqueued %d ms, network writes %d ms, network reads %d ms,
establishing SSL %d ms, network reads during SSL %d ms, network writes
during SSL %d ms, secure calls during SSL %d ms, enqueued during SSL %d ms,
negotiating SSPI %d ms, network reads during SSPI %d ms, network writes
during SSPI %d ms, secure calls during SSPI %d ms, enqueued during SSPI %d ms,
validating login %d ms, including user-defined login processing %d ms.%.*ls
9 окт 19, 14:16    [21990437]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4987
Игорь_UUS,

покажите типичный подобный xml

+
SELECT CAST(record AS XML) FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_CONNECTIVITY'
9 окт 19, 14:27    [21990455]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
Игорь_UUS
Member

Откуда: г. Екатеринбург
Сообщений: 666
komrad,

<Record id="290" type="RING_BUFFER_CONNECTIVITY" time="566556135">
  <ConnectivityTraceRecord>
    <RecordType>LoginTimers</RecordType>
    <IsClient>0</IsClient>
    <Spid>61</Spid>
    <SniConnId>0B2F69B6-A4CB-451F-80E4-2C7DDA49CAFB</SniConnId>
    <ClientConnectionId>A8F55FC5-25BD-4B7A-9311-1510B69282F2</ClientConnectionId>
    <SniConsumerError>17830</SniConsumerError>
    <SniProvider>7</SniProvider>
    <State>107</State>
    <RemoteHost>127.0.0.1</RemoteHost>
    <RemotePort>61686</RemotePort>
    <LocalHost>127.0.0.1</LocalHost>
    <LocalPort>1433</LocalPort>
    <RecordTime>10/9/2019 8:25:44.357</RecordTime>
    <TdsBufInfo>
      <InputBufError>10054</InputBufError>
      <OutputBufError>0</OutputBufError>
      <InputBufBytes>0</InputBufBytes>
    </TdsBufInfo>
    <LoginTimersInMilliseconds>
      <TotalTime>440014</TotalTime>
      <EnqueueTime>0</EnqueueTime>
      <NetWritesTime>0</NetWritesTime>
      <NetReadsTime>440009</NetReadsTime>
      <Ssl>
        <TotalTime>1</TotalTime>
        <NetReadsTime>1</NetReadsTime>
        <NetWritesTime>0</NetWritesTime>
        <SecAPITime>0</SecAPITime>
        <EnqueueTime>0</EnqueueTime>
      </Ssl>
      <Sspi>
        <TotalTime>0</TotalTime>
        <NetReadsTime>0</NetReadsTime>
        <NetWritesTime>0</NetWritesTime>
        <SecAPITime>0</SecAPITime>
        <EnqueueTime>0</EnqueueTime>
      </Sspi>
      <TriggerAndResGovTime>1</TriggerAndResGovTime>
    </LoginTimersInMilliseconds>
  </ConnectivityTraceRecord>
  <Stack>
    <frame id="0">0X00007FF9386C48AB</frame>
    <frame id="1">0X00007FF9386CDF6C</frame>
    <frame id="2">0X00007FF937B50DAB</frame>
    <frame id="3">0X00007FF937B4FC22</frame>
    <frame id="4">0X00007FF937B4FDE3</frame>
    <frame id="5">0X00007FF936DB50CD</frame>
    <frame id="6">0X00007FF936DB5A25</frame>
    <frame id="7">0X00007FF936DB581D</frame>
    <frame id="8">0X00007FF936DDD498</frame>
    <frame id="9">0X00007FF936DDD730</frame>
    <frame id="10">0X00007FF936DDD6B7</frame>
    <frame id="11">0X00007FF936DDE308</frame>
    <frame id="12">0X00007FF94F3C84D4</frame>
    <frame id="13">0X00007FF94F4DE851</frame>
  </Stack>
</Record>
9 окт 19, 14:44    [21990482]     Ответить | Цитировать Сообщить модератору
 Re: В каких случая MSSQL 2016 может разрывать соеденение  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6788
Игорь_UUS,

https://support.microsoft.com/ru-ru/help/981344/an-application-may-receive-the-10054-error-when-the-application-receiv
9 окт 19, 14:47    [21990487]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить