Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / trigger на клиенте, или слушатель внутри сессии / 18 сообщений из 18, страница 1 из 1
06.03.2006, 13:22
    #33583958
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Здраствуйте, Уважаемые!

Долго думал куда заслать в PB или в ORACLE эту тему, но решил что видимо лучше сюда.

Ситуация стандартная, а вот стандартных решений к ней найти не могу.

Необходимо чтобы с сервера(Oracle) можно было заставить клиента(PB) что-либо сделать. При этом были версии в сторону pipe, AQ, Alert, но для всего как я понял нужна отдельная сессия слушателя . Этот вариант не подходит. Интуиция подсказывает, что нужно как-то подружить PB с OCI и тогда можно будет получить на клиенте событие иницированное сервером. Но как ума ни приложу. Очень надеюсь, что кто-нибудь откликнется и в ходе дискуссии родится решение.

Заранее спасибо.
...
Рейтинг: 0 / 0
06.03.2006, 13:55
    #33584103
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
А для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :)
...
Рейтинг: 0 / 0
06.03.2006, 13:58
    #33584121
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :)
Небось опять очередная попытка оповещать клиента об изменениях записей в гриде для их перечитки или что то типа того :) Лучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру.
...
Рейтинг: 0 / 0
06.03.2006, 14:00
    #33584130
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :)

Про почту не совсем подходящий вариант. Просто хотелось бы клиентом по всякому реагировать на события возникающие на сервере. Например: окно выдать, функцию какую-нить запустить, еще что-нить, да просто закрыти приложение клиентское наконец. А через почту это как-то не хочется делать.
...
Рейтинг: 0 / 0
06.03.2006, 14:03
    #33584139
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
ASCRUS Локшин МаркА для чего это Вам нужно? В MS SQL есть, допустим, процедура xp_sendmail - можно почтовое сообщение послать, а на клиенте - переодически почту проверять :)
Небось опять очередная попытка оповещать клиента об изменениях записей в гриде для их перечитки или что то типа того :) Лучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру.

Да нет все несколько серьезней, чем считать строки в гриде 8-)). Если б все так просто было
...
Рейтинг: 0 / 0
06.03.2006, 14:18
    #33584204
mutate
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
dbms_alert - ?
...
Рейтинг: 0 / 0
06.03.2006, 14:37
    #33584280
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
На клиенте нужно запустить прослушивание протокола. Таким образом клиент становится сервером этого протокола. А СУБД, клинетом.
Слушать можно стандартный протокол, например, HTTP или SMTP. Тогда СУБД сможет отправлять сообщения клиенту с помощью пакетов UTL_HTTP, UTL_SMTP.
Можно придумать свой протокол на базе TCP/IP тогда на стороне СУБД можно использовать методы пакета UTL_TCP.

Конечно эти пакеты не увязаны с транзакционностью.

А почему нельзя создать дополнительную сессиию для прослушивания очередей?
...
Рейтинг: 0 / 0
06.03.2006, 14:37
    #33584282
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
UTL_TCP
------------------------------
Not affilated with VAZ
...
Рейтинг: 0 / 0
06.03.2006, 14:52
    #33584331
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
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.
...
Рейтинг: 0 / 0
06.03.2006, 15:48
    #33584539
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
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). И было бы счастье...
...
Рейтинг: 0 / 0
06.03.2006, 15:53
    #33584563
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Проблема должна быть понятна разработчикам которые разрабатывают многопользовательские приложения. Если на каждого клиента держать 2 коннекта то и Ораклу поплохеет да и поденьгам для лицензий может обернуться.
...
Рейтинг: 0 / 0
06.03.2006, 16:14
    #33584656
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Lav пишет:

> Проблема должна быть понятна разработчикам которые разрабатывают
> многопользовательские приложения. Если на каждого клиента держать 2
> коннекта то и Ораклу поплохеет да и поденьгам для лицензий может обернуться.

Проблема надумана. Коннект, который практически ничего не делает, сервер
не перенапряжёт.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
06.03.2006, 17:51
    #33585007
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
Dim2000

Проблема надумана. Коннект, который практически ничего не делает, сервер
не перенапряжёт.
Posted via ActualForum NNTP Server 1.3

Фантаст. Пользовательский процесс весит очень не мало, так что желание экономить на сессиях вполне оправдано.

Ещё можно запустить один job который будет мониторить события БД и по SMTP, HTTP или самодельному протоколу рассылать уведомления всем клиентам. Но, мне кажется, то что умеет делать AQ вполне достаточно.
...
Рейтинг: 0 / 0
06.03.2006, 17:58
    #33585035
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
mcureenab пишет:

> Фантаст. Пользовательский процесс весит очень не мало, так что желание
> экономить на сессиях вполне оправдано.

Ну, может, это специфика Оракла... я сам сижу на ASA и на коннектах не
экономлю :).
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
06.03.2006, 22:11
    #33585460
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
LavЭто был бы самый подходящий вариант. Но вот как заставить oci использовать уже существующий коннект PB(sqlca). И было бы счастье...
Насколько я помню, transaction.DbHandle() должен возвращать хендл как раз применимый в OCI (теоретически, я не применял на практике).
...
Рейтинг: 0 / 0
22.06.2006, 17:15
    #33809537
trigger на клиенте, или слушатель внутри сессии
У меня это так:
Есть система сообщений ( таблица в базе с приблудами) через которую пользователю (одному или всем) можно посылать сообщения в том числе и от сервера. Приложение раз в минуту опрашивает в том числе свою почту и предпринимает необходимые действия:

- Показывает свежие сообщения
- Сверяет версию интерфейса и базы (по необходимости обновляет)
- ...
...
Рейтинг: 0 / 0
22.06.2006, 18:10
    #33809801
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
ASCRUSЛучший вариант ответа - бросить затею и сделать по другому, ибо РСУБД всегда выступает как пассивный сервер и это единственная гарантия надежности и эффективности для работы в клиент-серверном режиме. Приемлимый вариант - перечитывать что нужно по таймеру.
...
Рейтинг: 0 / 0
23.06.2006, 07:37
    #33810332
Геннадич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
trigger на клиенте, или слушатель внутри сессии
2 Гриценко А.В.
Зачем мартовсоко мамонта поднимать?
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / trigger на клиенте, или слушатель внутри сессии / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]