|
|
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Прочитал сообщения и рекомендации об использовании DBMS_PIPE и DBMS_ALERT и о способах отправки сообщений, но так и не разобрался, как сделать. Помогите. Задача: При работе в клиентской программе (написана на Delphi с использованием ODAC) под Oracle необходимо посылать сообщения другим клиентам работающим с такой же программой. (И заодно еще вопрос: а можно ли сделать так, чтобы сообщения посылались из этой программы любому пользователю, т.е. любой сессии не зависимо от того, какой программой он подцепился в данной БД и работает). Хотелось бы простой и понятный пример, можно по email ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 05:37 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Так как не имею примера, отвечаю на вопрос в скобках... Чтобы сообщения уходили всем пользователям необходимо использовать DBMS_ALERT - он именно для того и предназначен, чтобы информация уходила в любую сессию (естественно независимо от программы), которая заявила о своём желании получать такие сообщения... То бишь можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 09:48 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Лови e-mail ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 10:30 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Вобщем вот мои тесты с сообщениями Всё работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 13:53 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
А зачем делать remove, а потом сразу register? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 13:56 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Там же написано _ТЕСТЫ_ ;_)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 15:08 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
2Ulba_2002: А вообще там вместо перерегистрации нужно COMMIT поставить наче сообщение так и будет висеть $_) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 15:18 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Не будет он висеть. Алерт на то и алерт, чтобы его в сессии единожды получить, даже если он несколько раз послан до чтения. Ты проведи эксперимент, просигналь подряд несколько раз одним алертом, для наглядности с разными сообщениями, а потом в другой сессии прочитай. Так получишь только один раз, с последним сообщением. И коммита никакого не надо:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2003, 15:35 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Неа я проверял не один раз :-) Если при приёме не поставить commit то все остальные разы так и будешь одно сообщение получать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 13:08 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Погоди. 1-я сессия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 2-я сессия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 1-я сессия: Код: plaintext 1. 2. 3. 4. Заметь: Message2, первое куда-то испарилось. Commit не говорим. 2-я сессия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 1-я сессия: Код: plaintext 1. 2. 3. 4. Вот. Получили последнее сообщение. Commit'а в 1-й сессии не было:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 13:25 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
да не о том я говорил Если не сделать commit в принимающей сессии то будешь получать одно и то же сообщение постоянно при вызове wait тоесть 1 сессия : signal('CHANNEL','LALALALALa'); commit; 2 сессия: waitone(...) сообщение:"LALALALALa" 2 сессия: waitone(...) commit; сообщение:"LALALALALa" 2 сессия: waitone(...) сообщение:"" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 17:36 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
Что-то я совсем запутался ;-P Для waitone commit не нужен-сообщение и так уничтожается Для waitany commit не помогает... да уж... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 17:41 |
|
||
|
Еще раз вопрос об посылке сообщений
|
|||
|---|---|---|---|
|
#18+
То ли это от версии оракла зависит, то ли еще от чего, но у меня безо всякого commita waitone принимает последний алерт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 2-я сессия: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 1-я сессия: Код: plaintext 1. 2. Не делаем тут commit'а, а во 2-й сессии: Код: plaintext 1. 2. 3. 4. 5. 6. 7. И смотрим на 1-ю: Код: plaintext 1. 2. Все по-честному. Единственное отличие- если ты не зарегестрирован ни на один алерт, waitany возвращает exception, а waitone это безразлично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 18:07 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32097940&tid=1991977]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
271ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 566ms |

| 0 / 0 |
