|
|
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
Как правильно: 1) Хранить сессию к ораклу в пользовательской сессии 2) Каждый раз в коде подключаться к ораклу, а драйвер (devart dotConnect for oracle) сам будет обрабатывать подключения и отдавать его через пул ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2011, 15:45:19 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
up! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 10:22:20 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2011, 11:04:11 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
Cheese))) Как правильно?С dotConnect for Oracle Вы можете использовать любой из этих двух подходов, но при этом нужно учитывать особенности вашего окружения (время открытия коннекшина, стабильность подключения). Cheese))) 1) Хранить сессию к ораклу в пользовательской сессииВы можете открыть коннекшин и держать его открытым в течении всей пользовательской сессии. При этом желательно реализовать логику ре-коннекта (а), если коннекшин оказался невалидным, либо валидировать коннекшин (б) перед очередным его использованием: а) при работе через OCI (Oracle Client) можно использовать фичу Transparent Application Failover Support . б) в директ режиме нужно обрабатывать эту ситуацию вручную - делать OracleConnection. Ping() (round-trip на сервер), и если соединение оказалось невалидным, открывать новое. Cheese))) 2) Каждый раз в коде подключаться к ораклу, а драйвер (devart dotConnect for oracle) сам будет обрабатывать подключения и отдавать его через пулПредпочтительный способ коннекта для директ режима. Принцип работы пулинга описан здесь . По умолчанию, Pooling=true. Если connection pooling включен и вызывается connection.Close(), коннекшин помещается в connection pool. Каждый коннекшин в пуле валидируется connection pooling manager-ом в параллельном потоке через 60 сек после открытия и потом каждые 30 сек. По умолчанию, connection не валидируется, когда он извлекается из пула. Т.е. возможна ситуация, когда приложение получит невалидный коннекшин из пула по connection.Open(). В этом случае Вы можете выставить дополнительную валидацию с коннекшин стринг параметром "Validate Connection=true" - и коннекшин будет валидироваться в момент извлечения из пула. Но.. используйте Validate Connection только в случае абсолютной необходимости, потому что его использование влечет дополнительный round-trip к серверу каждый раз при получении коннекшина из пула и, как следствие, потерю производительности. В любом случае, мы рекомендуем Вам протестировать разные из перечисленных выше подходов, чтобы подобрать оптимальный для Вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2011, 11:52:19 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
Про метод 2, пожалуйста, объясните: Раз каждый раз создается подключение, то не существует сессии закрепленной за конкретным пользователем, а это значит я не могу сделать 3 апдейта с трех последовательных страниц, а потом commit; получается что при таком подходе я должен все изменения передавать одной процедурой в конце которой будет коммит или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2011, 21:24:41 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
Cheese))), Три апдейиа с трёх страниц в одной транзакции - не получится. Хотя бы по той простой причине, что, когда сформировалась страница, коннекта уже нету. То есть, каждая страница - со своим коннектом. Пул соединений здесь совершенно ни при чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2011, 22:16:06 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
За это время могли бы и проверить. :) Стартаните на первой странице транзакцию, проинсертите что-то в таблицу, на второй странице ещё запись проинсертите, а на третьей вызовите роллбек. Потом посмотрите, что записано в таблице. Если пусто - то Вы таки умудрились как-то сохранить транзакцию между страницами, а если нет, то и увы... . ПС. Я сам не проверял. Чисто теоретически... . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2011, 22:23:29 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
Cheese)))это значит я не могу сделать 3 апдейта с трех последовательных страниц, а потом commit; получается что при таком подходе я должен все изменения передавать одной процедурой в конце которой будет коммит или я не прав? Транзакция - это одна логическая единица работы. С точки зрения интерфейса она должна выполняться одним движением, так что ни каких трёх страниц не может быть в рамках 1 транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2011, 23:52:36 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
devart, Уважаемый, подскажите, пожалуйста, если я пишу таким образом: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. При выходе из блока using автоматически будет вызван c.Close(); c.Dispose(); ? или необходимо в конце прописать c.Close(); для помещения в пул? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2012, 07:31:36 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
При выходе из блока вызовется Dispose, а если товарищи делали с умом, в чем я не сомневаюсь, по патерну то и Close внутри него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2012, 10:35:20 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
хотя может я погорячился с патерном а просто интерфейс IDisposable.не ругайте) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2012, 10:37:11 |
|
||
|
devart dotConnect for oracle использование сесии к ораклу
|
|||
|---|---|---|---|
|
#18+
brainproof, интересует прежде всего вызывается ли Close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2012, 11:17:12 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37377733&tid=1359905]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 454ms |

| 0 / 0 |
