2009-03-27 3 views
1

Я получаю сообщения о том, что пул соединений не работает в Subsonic orm при использовании с SQL-сервером на удаленной машине. Я не уверен, как они контролируют это, возможно, с профилировщиком.Правильно ли работает пул соединений в Subsonic?

Subsonic открывается поздно, закрывается раньше, чем вы должны делать в слое orm, но есть ли проблемы с реализацией, которая вызовет слишком много соединений?

ответ

7

Существует способ подключения оставаться открытым при использовании SubSonic. Многие люди предполагают, что когда вы загружаете коллекцию, читатель будет закрыт для вас - но это не так (класс не должен действовать в другом классе без разрешения). По этой причине существует метод под названием «LoadAndCloseReader()».

Если бы вы могли узнать больше, это было бы здорово.

1

Означает ли это, что соединения SubSonic по-прежнему постоянны?

0

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

Как сказал Роб не следует использовать так:

MyTableCollection objCol = new MyTableCollection().Load(); 

он должен быть использован как:

MyTableCollection objCol = new MyTableCollection(); 
objCol.LoadAndCloseReader(MyTable.FetchAll()); 
+0

Возможно, это: MyTableCollection objCol = new MyTableCollection(); objCol.LoadAndCloseReader (MyTable.FetchAll()); Я этого не делаю. У меня есть около 40 строк для изменения. Документация для LoadAndCloseReader отсутствует. Посмотрите на http://subsonicproject.com/docs/Main_Page, его не найти. Я не работал с дозвуковым в течение нескольких месяцев. –

1

Я не уверен в более ранних версиях, но в 2.1, AbstractList .Load() уже использует LoadAndCloseReader (rdr), завернутый в оператор using.

Смежные вопросы