Django с PyODBC и Oracle 8i: Проблемы с временными таблицами через день
Я использую Django с PyODBC для подключения к базе данных Oracle 8i. Я запускаю свое Django-приложение, используя Uvicorn в качестве ASGI-сервера. Однако, проработав день, я столкнулся с проблемой, когда временные таблицы в Oracle 8i ведут себя странно. А именно:
- После выполнения запроса INSERT данные иногда появляются не сразу. после выполнения запроса.
- Приходится несколько раз обновлять страницу, чтобы увидеть вставленные данные.
- Эта проблема, похоже, возникает только после того, как сервер работает в течение длительное время.
Детали установки:
База данных: Oracle 8i
Backend: Django с PyODBC
Сервер: Uvicorn (ASGI)
Временные таблицы: Используются для хранения данных конкретной сессии
.
То, что я пробовал:
Явная фиксация транзакций после операций INSERT.
Проверка того, вызывает ли проблему ON COMMIT DELETE ROWS.
Отключение пула соединений в PyODBC.
Уменьшение количества рабочих Uvicorn до 1, чтобы избежать несогласованности сессий.
Запрос SYS_CONTEXT('USERENV', 'SESSIONID'), чтобы проверить, использую ли я разные сессии.
Вопросы:
Что может быть причиной того, что временная таблица не отражает последние вставки сразу?
Есть ли определенные настройки в PyODBC, Django или Uvicorn, которые я должен проверить для обеспечения согласованности сессий?
Может ли это быть поведением, специфичным для Oracle 8i, связанным с временными таблицами?
Любые соображения от экспертов, которые имели дело с Oracle 8i и Django/PyODBC, будут высоко оценены!