|
notify приходит через listen/notify, но данных "нет"
|
|||
---|---|---|---|
#18+
дев. сервер Windows 2008 R2 64bit, PostgreSQL 9.4.11 64bit (сборка от ентерпрайс диби). ситуация следующая. имеем процесс в котором один из потоков сидит и ждёт нотификации. получив нотификацию, он запускает поток который её обрабатывает, т.е. подключается к БД, селектит, апдейтит и т.д., закрывает соединение к БД и идёт спать, до следующего вызова. имеем другой процесс, который делает вставку в таблицу, на которой висит, кроме всего прочего, триггер, который срабатывает после вставки и делает pg_notify('channel', 'payload'); после вставки, нотификация приходит, поток, которому она предназначена, стартует, делает SELECT из функции и, иногда не находит данные, которые присутствуют в таблице. если повторить SELECT, без какого либо другого INSERT'а и т.д. данные появляются. но проблема в том, что они иногда "отсутствуют" во время прихода нотификации о вставке. в функции для отладки добавлено RAISE LOG 'function_name(param_names) result %', FOUND; результаты совпадают с логом, т.е. когда апликация получает ответ что данных нету, в логе вижу запись function_name(param_names) result f. таблица имеет индекс с WHERE condition, который предназначен для этой функции-запроса, который делается после полученной нотификации. хотя, в дев. сервере записей в этой таблице десятки, так что индекс по любому не используется. может кто сталкивался с подобным явлением? П.С. на боевом линукс пока не пробовал. таблица: Код: sql 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. 39. 40. 41. 42. 43. 44. 45. 46.
функция: Код: sql 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
insert: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2017, 11:25 |
|
|
start [/forum/topic.php?fid=53&fpage=75&tid=1996571]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 130ms |
0 / 0 |