
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.03.2007, 10:12
|
|||
|---|---|---|---|
webservice+ado.net- асинхронный вызов sqlserver |
|||
|
#18+
сделал вебсервис, у него есть методы: search(string str){/*асинхронный запуск процедуры*/} getstate(){return g_static_IsFinished;} getresult(){return g_static_DataSet;} идея такая: поскольку search может работать даже несколько минут, то в нем используется асинхронный вызов хранимой процедуры. Далее клиентское приложение время от времени проверяет состояние выполняемого запроса дергая getstate(), и если он вернет true, то забирает результирующий набор getresult(). Есть нескоько вопросов: 1. все это работает, если объявить static g_static_IsFinished и g_static_DataSet. Иначе клиентский вызов скажем getstate() дает другое значение. Может другим способом обойти или и так хорошо? 2. предполагается, что это используется разными клинескими приложениями одновременно, тогда нужно, чтобы каждый клиент имел свои асинхронные результаты. Как такое реализовать лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.03.2007, 23:30
|
|||
|---|---|---|---|
|
|||
webservice+ado.net- асинхронный вызов sqlserver |
|||
|
#18+
Не совсем понятно, почему Вы пишете в этот форум. Где тут у Вас используется Ado.Net? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.03.2007, 00:56
|
|||
|---|---|---|---|
|
|||
webservice+ado.net- асинхронный вызов sqlserver |
|||
|
#18+
1. Зачем нужен getstate() - сразу же просите ответ и в случае, если ответ еще не получен, возвращайте соответствующее исключение. 2. Совершенно непонятно, как у Вас организована сессионность. Польователь ответ может попросить через неделю? 3. Сервер баз данных у Вас какой используется? Если MS SQL Server 2005, то в нем есть очереди сообщений - используйте их. 3.1. Запрос на поиск начинает диалог и отправляет сообщение сервису поиска (помещает сообщение с заданием в очередь сервиса поиска). 3.2. С другой стороны очереди находится Ваша процедура - она выполняет поиск и отправляет сообщение о результате работы процедуры (помещает сообщение в очередь сервиса клиента). 3.3.Затем клиент читает очередь сообщений сервиса клиента, указывая идентификатор диалога, который был начат в п.3.1. 3.3.а. Если сообщение получено, диалог завершается и результат отдается клиенту. 3.3.б. Если сообщение не получено, генерируется соответствующее исключение. 4. Если сервер не MS SQL 2005, то можете почитать в MSDN про MSMQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&tablet=1&tid=1352897]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
69ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 370ms |

| 0 / 0 |
