|
|
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Здраствуйте, Уважаемые! Долго думал куда заслать в PB или в ORACLE эту тему, но решил что видимо лучше сюда. Ситуация стандартная, а вот стандартных решений к ней найти не могу. Необходимо чтобы с сервера(Oracle) можно было заставить клиента(PB) что-либо сделать. При этом были версии в сторону pipe, AQ, Alert, но для всего как я понял нужна отдельная сессия слушателя . Этот вариант не подходит. Интуиция подсказывает, что нужно как-то подружить PB с OCI и тогда можно будет получить на клиенте событие иницированное сервером. Но как ума ни приложу. Очень надеюсь, что кто-нибудь откликнется и в ходе дискуссии родится решение. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:22 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
А для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:55 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :) Небось опять очередная попытка оповещать клиента об изменениях записей в гриде для их перечитки или что то типа того :) Лучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:58 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :) Про почту не совсем подходящий вариант. Просто хотелось бы клиентом по всякому реагировать на события возникающие на сервере. Например: окно выдать, функцию какую-нить запустить, еще что-нить, да просто закрыти приложение клиентское наконец. А через почту это как-то не хочется делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:00 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
ASCRUS Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :) Небось опять очередная попытка оповещать клиента об изменениях записей в гриде для их перечитки или что то типа того :) Лучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру. Да нет все несколько серьезней, чем считать строки в гриде 8-)). Если б все так просто было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:03 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
dbms_alert - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:18 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
На клиенте нужно запустить прослушивание протокола. Таким образом клиент становится сервером этого протокола. А СУБД, клинетом. Слушать можно стандартный протокол, например, HTTP или SMTP. Тогда СУБД сможет отправлять сообщения клиенту с помощью пакетов UTL_HTTP, UTL_SMTP. Можно придумать свой протокол на базе TCP/IP тогда на стороне СУБД можно использовать методы пакета UTL_TCP. Конечно эти пакеты не увязаны с транзакционностью. А почему нельзя создать дополнительную сессиию для прослушивания очередей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:37 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
UTL_TCP ------------------------------ Not affilated with VAZ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:37 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Lav...Интуиция подсказывает, что нужно как-то подружить PB с OCI и тогда можно будет получить на клиенте событие иницированное сервером. ... Что касается OCI и AQ, то почитай Oracle Call Interface Programmer’s Guide Release 2 (9.2) March 2002 Part No. A96584-01Publish-Subscribe Notification Registered clients are notified asynchronously when events are triggered or on an explicit AQ enqueue. Clients do not need to be connected to a database. В принципе на стороне клиента всё тоже - нужно слушать протокол, на стороне сервера вместо простых UTL_HTTP, UTL_SMTP используются богатые механизмы AQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 14:52 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
mcureenab Lav...Интуиция подсказывает, что нужно как-то подружить PB с OCI и тогда можно будет получить на клиенте событие иницированное сервером. ... Что касается OCI и AQ, то почитай Oracle Call Interface Programmer’s Guide Release 2 (9.2) March 2002 Part No. A96584-01Publish-Subscribe Notification Registered clients are notified asynchronously when events are triggered or on an explicit AQ enqueue. Clients do not need to be connected to a database. В принципе на стороне клиента всё тоже - нужно слушать протокол, на стороне сервера вместо простых UTL_HTTP, UTL_SMTP используются богатые механизмы AQ. Это был бы самый подходящий вариант. Но вот как заставить oci использовать уже существующий коннект PB(sqlca). И было бы счастье... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:48 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Проблема должна быть понятна разработчикам которые разрабатывают многопользовательские приложения. Если на каждого клиента держать 2 коннекта то и Ораклу поплохеет да и поденьгам для лицензий может обернуться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:53 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Lav пишет: > Проблема должна быть понятна разработчикам которые разрабатывают > многопользовательские приложения. Если на каждого клиента держать 2 > коннекта то и Ораклу поплохеет да и поденьгам для лицензий может обернуться. Проблема надумана. Коннект, который практически ничего не делает, сервер не перенапряжёт. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 16:14 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
Dim2000 Проблема надумана. Коннект, который практически ничего не делает, сервер не перенапряжёт. Posted via ActualForum NNTP Server 1.3 Фантаст. Пользовательский процесс весит очень не мало, так что желание экономить на сессиях вполне оправдано. Ещё можно запустить один job который будет мониторить события БД и по SMTP, HTTP или самодельному протоколу рассылать уведомления всем клиентам. Но, мне кажется, то что умеет делать AQ вполне достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 17:51 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
mcureenab пишет: > Фантаст. Пользовательский процесс весит очень не мало, так что желание > экономить на сессиях вполне оправдано. Ну, может, это специфика Оракла... я сам сижу на ASA и на коннектах не экономлю :). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 17:58 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
LavЭто был бы самый подходящий вариант. Но вот как заставить oci использовать уже существующий коннект PB(sqlca). И было бы счастье... Насколько я помню, transaction.DbHandle() должен возвращать хендл как раз применимый в OCI (теоретически, я не применял на практике). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 22:11 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
У меня это так: Есть система сообщений ( таблица в базе с приблудами) через которую пользователю (одному или всем) можно посылать сообщения в том числе и от сервера. Приложение раз в минуту опрашивает в том числе свою почту и предпринимает необходимые действия: - Показывает свежие сообщения - Сверяет версию интерфейса и базы (по необходимости обновляет) - ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 17:15 |
|
||
|
trigger на клиенте, или слушатель внутри сессии
|
|||
|---|---|---|---|
|
#18+
ASCRUSЛучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33584204&tid=1337717]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 415ms |

| 0 / 0 |
