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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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