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, будут высоко оценены!

Вернуться на верх