В моем веб-сервисе я подключаюсь к базе данных Sybase.
У меня есть список врачей, и каждый врач может быть связан с количеством больниц.Мне нужно обновить несколько деталей о каждой больнице, с которой работает доктор.
Для каждого доктора открывается новое соединение с базой данных. Для каждого Доктора в списке я сначала получаю список больниц в DbReader, и я выполняю операции в каждой больнице в считывателе.Как только все записи в DbReader обработаны, я закрываю ридер вместе с подключением.(Это потому, что я передаю System.Data.CommandBehavior.CloseConnection
методу ExecuteReader()
класса Sybase.Data.AseClient.AseCommand
)
Теперь, если количество докторов превышает какой-либо предел, я получаю ошибки, так какоткрытые становятся очень большими.
Какой другой подход я могу использовать в этом сценарии, чтобы избавиться от ошибки?Как узнать количество открытых соединений со стороны клиента?
Одно из того, что я могу сделать, - не открывать новое соединение, пока не будет закрыто предыдущее соединение.Но этот подход не так хорош (я думаю), потому что, хотя разрешено несколько соединений, у меня будет по одному соединению за раз.