asp.net open sql conection из каменного века
От: Аноним  
Дата: 14.10.10 14:07
Оценка: -1
День добрый
На новой работе требуют использования SqlDataAdapter и пр. старья. И пока к сожалению не повыпендриваться. Как бы встает давняя проблема, где хранить open sql connection чтобы ее не создавать на каждый чих. Давным давно написал я библиотеку, которая хранила connection на стеке в общем тоже довольно кривое решение. Есть идея хранить connection в request и закрывать ее (если открыли) на error или на Uload. Экспериментировать нет ни времени ни желания, плиз подскажите нормальное ли это решение или какое другое получше.
Re: asp.net open sql conection из каменного века
От: vmpire Россия  
Дата: 14.10.10 14:57
Оценка: +3
Здравствуйте, Аноним, Вы писали:

А>На новой работе требуют использования SqlDataAdapter и пр. старья.

Что же в них старого-то? да и требуют, наверное,не без причины

А>И пока к сожалению не повыпендриваться.

А это обязательно?

А>Как бы встает давняя проблема, где хранить open sql connection чтобы ее не создавать на каждый чих. Давным давно написал я библиотеку, которая хранила connection на стеке в общем тоже довольно кривое решение. Есть идея хранить connection в request и закрывать ее (если открыли) на error или на Uload. Экспериментировать нет ни времени ни желания, плиз подскажите нормальное ли это решение или какое другое получше.

Нормальное решение — закрывать соединение сразу как только оно стало ненужным и не хранить его. Тогда оно вернётся в пул соединений и будет оттуда использовано
Re: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 14.10.10 15:00
Оценка: +4
Здравствуйте, Аноним, Вы писали:

А>Как бы встает давняя проблема, где хранить open sql connection чтобы ее не создавать на каждый чих.


Это не проблема. Проблемы появятся когда вы не станете так делать.
Re[2]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 14.10.10 21:09
Оценка: :)
Здравствуйте, vmpire, Вы писали:

V>Здравствуйте, Аноним, Вы писали:


А>>На новой работе требуют использования SqlDataAdapter и пр. старья.

V>Что же в них старого-то? да и требуют, наверное,не без причины

думаю вы не под win nt сидите, хотя если подумать, что в ней старого?

А>>Как бы встает давняя проблема, где хранить open sql connection чтобы ее не создавать на каждый чих. Давным давно написал я библиотеку, которая хранила connection на стеке в общем тоже довольно кривое решение. Есть идея хранить connection в request и закрывать ее (если открыли) на error или на Uload. Экспериментировать нет ни времени ни желания, плиз подскажите нормальное ли это решение или какое другое получше.


V>Нормальное решение — закрывать соединение сразу как только оно стало ненужным и не хранить его. Тогда оно вернётся в пул соединений и будет оттуда использовано


Ну как бы утешать себя, что все будет хорошо, не самое безопасное занятие. Тем более странно слышать подобный совет, если понимаешь, что рано или поздно, понадобятся транзакции, а передавать транзакцию между tier надоедает очень быстро. Поэтому лично я советую, играть в пятнашки с коннекциями только в очень маленьких проектах. Большой проект требует иных решений.
Re[3]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 14.10.10 21:19
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Ну как бы утешать себя, что все будет хорошо, не самое безопасное занятие. Тем более странно слышать подобный совет, если понимаешь, что рано или поздно, понадобятся транзакции, а передавать транзакцию между tier надоедает очень быстро.


Между tier-ми? Вы точно понимаете значение этого слова?

А>Поэтому лично я советую, играть в пятнашки с коннекциями только в очень маленьких проектах. Большой проект требует иных решений.


Потому тебе и советуют не играть в пятнашки. А когда понадобятся транзакции спокойно прикрутите TransactionScope и все будут довольны.
Re[3]: asp.net open sql conection из каменного века
От: vmpire Россия  
Дата: 14.10.10 23:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>На новой работе требуют использования SqlDataAdapter и пр. старья.

V>>Что же в них старого-то? да и требуют, наверное,не без причины
А>думаю вы не под win nt сидите, хотя если подумать, что в ней старого?
Именно под WinNT. Версии 6.1

А>>>Как бы встает давняя проблема, где хранить open sql connection чтобы ее не создавать на каждый чих. Давным давно написал я библиотеку, которая хранила connection на стеке в общем тоже довольно кривое решение. Есть идея хранить connection в request и закрывать ее (если открыли) на error или на Uload. Экспериментировать нет ни времени ни желания, плиз подскажите нормальное ли это решение или какое другое получше.


V>>Нормальное решение — закрывать соединение сразу как только оно стало ненужным и не хранить его. Тогда оно вернётся в пул соединений и будет оттуда использовано


А>Ну как бы утешать себя, что все будет хорошо, не самое безопасное занятие.

Это официально рекомендованный MS способ работы для достижения максимальной производительности. Может, это вас утешит.

А>Тем более странно слышать подобный совет, если понимаешь, что рано или поздно, понадобятся транзакции, а передавать транзакцию между tier надоедает очень быстро. Поэтому лично я советую, играть в пятнашки с коннекциями только в очень маленьких проектах. Большой проект требует иных решений.

Как уже ответил Lloyd, для этого есть TransactionScope.
Re[4]: asp.net open sql conection из каменного века
От: Synapse  
Дата: 15.10.10 09:46
Оценка:
L>прикрутите TransactionScope и все будут довольны.
если распределенные транзакции не начнутся %) Насколько я помню, запросы к разным датасорсам в одном транзакшен скопе автоматом элевейтят транзакцию до распределенной.
Re[4]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 15.10.10 09:52
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Потому тебе и советуют не играть в пятнашки. А когда понадобятся транзакции спокойно прикрутите TransactionScope и все будут довольны.


Увы transaction scope нынче совсем не тот, что был раньше. Я уже наступил на эти грабли.
Re[5]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 15.10.10 10:02
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>Потому тебе и советуют не играть в пятнашки. А когда понадобятся транзакции спокойно прикрутите TransactionScope и все будут довольны.


А>Увы transaction scope нынче совсем не тот, что был раньше. Я уже наступил на эти грабли.


А что с ним не так?
Re[4]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 15.10.10 10:02
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Это официально рекомендованный MS способ работы для достижения максимальной производительности. Может, это вас утешит.


Если не трудно дайте плиз прувлинк, я о такой рекомендации слышу впервые в жизни и честно говоря считаю такую рекомендацию невозможной, но все бывает.
Re[5]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 15.10.10 10:03
Оценка:
Здравствуйте, Synapse, Вы писали:

L>>прикрутите TransactionScope и все будут довольны.

S>если распределенные транзакции не начнутся %) Насколько я помню, запросы к разным датасорсам в одном транзакшен скопе автоматом элевейтят транзакцию до распределенной.

Так и есть.
Re[5]: asp.net open sql conection из каменного века
От: vmpire Россия  
Дата: 15.10.10 12:21
Оценка:
Здравствуйте, Аноним, Вы писали:

V>>Это официально рекомендованный MS способ работы для достижения максимальной производительности. Может, это вас утешит.

А>Если не трудно дайте плиз прувлинк, я о такой рекомендации слышу впервые в жизни и честно говоря считаю такую рекомендацию невозможной, но все бывает.
http://msdn.microsoft.com/en-us/library/ff647768.aspx#scalenetchapt12_topic9 (поищите "Open and Close the Connection in the Method" в пункте Connections)
http://msdn.microsoft.com/en-us/library/ff647694.aspx
Re[6]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 15.10.10 15:46
Оценка:
Здравствуйте, vmpire, Вы писали:

Спасибо большое, век живи, век учись.
Re[6]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 15.10.10 16:00
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А что с ним не так?


Подымает com+, который я так и не смог сходу настроить.
Re[7]: asp.net open sql conection из каменного века
От: Synapse  
Дата: 15.10.10 16:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Lloyd, Вы писали:


L>>А что с ним не так?


А>Подымает com+, который я так и не смог сходу настроить.


Надо, чтобы app server и db server были либо в одном домене, либо в одной подсети. Тогда DTC заработает. Но это содомия и ад, конечно.
Re[8]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 15.10.10 16:47
Оценка:
Здравствуйте, Synapse, Вы писали:

А>>Подымает com+, который я так и не смог сходу настроить.


S>Надо, чтобы app server и db server были либо в одном домене, либо в одной подсети. Тогда DTC заработает. Но это содомия и ад, конечно.


С другим доменом работает.
Re[7]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 15.10.10 16:48
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>А что с ним не так?


А>Подымает com+, который я так и не смог сходу настроить.


Т.е. проблема все-таки не с ним?
Re[8]: asp.net open sql conection из каменного века
От: Аноним  
Дата: 16.10.10 19:00
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Т.е. проблема все-таки не с ним?


Т.е. превращение обычной транзакции в распределенную это таки не проблема?
Re[9]: asp.net open sql conection из каменного века
От: Lloyd Россия  
Дата: 16.10.10 20:47
Оценка:
Здравствуйте, Аноним, Вы писали:

L>>Т.е. проблема все-таки не с ним?


А>Т.е. превращение обычной транзакции в распределенную это таки не проблема?


Мне показалось, что проблема в следующем:

который я так и не смог сходу настроить.

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