Что происходит, когда НЕ закрываются наборы записей в классическом ASP? - PullRequest
1 голос
/ 22 октября 2009

В старых приложениях на работе я вижу не закрытые наборы записей, разбросанные по множеству страниц.

  • Какие последствия это имеет?
  • Соединение закрывается автоматически?
  • Освобождаются ли ресурсы в конце каждого запроса?

Обновление:

TXN!

Ответы [ 3 ]

3 голосов
/ 22 октября 2009

Закрыть набор записей не закрывает соединение

http://www.devguru.com/technologies/ado/QuickRef/recordset_close.html

Всегда следует закрывать соединения как можно скорее, чтобы освободить их обратно в пул соединений.

Система с утечкой соединений будет замедляться и постепенно останавливаться.

2 голосов
/ 23 октября 2009
  • Какие последствия это имеет?

Ресурсы освобождаются не так быстро, и в зависимости от остальной части кода производительность снижается.

  • Соединение закрывается автоматически?
  • Освобождаются ли ресурсы в конце каждого запроса?

В конце выполнения страницы все соединения прекращаются и все ресурсы освобождаются. Некоторые люди считают, что поскольку это происходит, нет необходимости беспокоиться о явном закрытии соединений и / или освобождении ресурсов.

При прочих равных условиях полагаться на это не то, что поощряется, поскольку вы никогда не знаете, как все будет происходить в условиях интенсивного движения, поэтому все хорошие учебники / инструкторы скажут вам открывать только тогда, когда вам нужно, и отпустите, как только вы закончите.

1 голос
/ 22 октября 2009

Если вы не закроете его, у вас будут утечки памяти, которые могут быстро поглотить ваши ресурсы. IIS в конечном итоге очистит ваши ресурсы, но это не очень надежно. Безопаснее и надежнее явно закрыть свой набор записей, а затем установить его на ничто, чтобы освободить ресурсы. Также обязательно закройте ваше соединение и не устанавливайте ничего.

...