|
|
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
Здравсвуйте! Я пишу приложение на ODBC. Создается окружение для соединения с БД Код: plaintext 1. Код: plaintext 1. 2. 3. Как Вы поступаете в таком случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 17:06 |
|
||
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > Мне надо, чтобы к одной базе (и даже к одной таблице) имели одновременно > доступ несколько потоков. Я так понимаю, что для каждого потока надо > свой коннект Не обязательно, можно и один коннект разделять. > Вопрос: эти коннекты могут быть в одном окружении БД (hEnv)? Да Сколько > коннектов может быть в одном окружении? Сколько угодно. Или может все потоки пустить > через один коннект? Можно, но при этом нужно будет разделять его между потоками, синхронизировать доступ и т.п. Не будет ли проблемы, что несколько коннектов будут > использовать одно имя пользователя/пароль? Нет, если это допустимо с точки зрения приложения. Напр. если надо отслеживать в приложении что-то по этим параметрам. > Как Вы поступаете в таком случае? Я писал библиотеку, разделяющую соединение между потоками. При этом надо учитывать то, что в соединении может быть только один активный оператор. Его нужно выполнить и выбрать данные. Потом только может работать другой оператор (в другом потоке). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 17:13 |
|
||
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
Я ведь не обманываю себя, если думаю, что СУБД (Оракл, МС Сервер, ...) позволяют к данным одной таблицы обращаться нескольким потокам одновременно? Если мне надо реализовать одновременный доступ к данным, то вариант с одним коннектом, разделяемым между потоками, не подходит, ибо теряется смысл многопоточности. В таком случае, поток сам создает свой коннект отработал, убил его. Тут же возникает вопрос, может не стоит убивать коннект, а оставлять его, новый поток будет использовать его, если он свободен. Накладная ли это процедура создание коннекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 17:25 |
|
||
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
не отлючайте conncection pooling - накладные расходы на открытие/закрытие коннекта будут минимальны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 18:57 |
|
||
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
авторМне надо, чтобы к одной базе (и даже к одной таблице) имели одновременно доступ несколько потоков. Я так понимаю, что для каждого потока надо свой коннект Ну на счет автор...чтобы к одной базе ..., тут проблем нет ( если у тебя версия не с "обрезанными 'яйцами' ", а вот автор...(и даже к одной таблице)..., советую почитать про блокировки и уровни изоляции и перенести логику на сервер. Удачи. ЗЫ: Потоки тут ни причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 20:53 |
|
||
|
Новый коннект в ODBC
|
|||
|---|---|---|---|
|
#18+
OIO пишет: > позволяют к данным одной таблицы обращаться нескольким потокам > одновременно? Позволяют. > Если мне надо реализовать одновременный доступ к данным, > то вариант с одним коннектом, разделяемым между потоками, не подходит, > ибо теряется смысл многопоточности. Не всегда. Но если нужно - вперед, каждому потоку по коннекции. > В таком случае, поток сам создает свой коннект отработал, убил его. Тут > же возникает вопрос, может не стоит убивать коннект, а оставлять его, > новый поток будет использовать его, если он свободен. Накладная ли это > процедура создание коннекта? Накладная. Лучше использовать повторно. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 22:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34338585&tid=2029433]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
245ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 604ms |

| 0 / 0 |
