Гарантия целостности транзакций в Oracle - PullRequest
1 голос
/ 16 февраля 2011

У меня есть таблица оракула с 7 столбцами, на которой есть 2 триггера. Сначала генерируется уникальный идентификатор (инкрементная последовательность)

Второй триггер, который использует utl_tcp, чтобы протолкнуть удаленный сервер и передать 20 символов данных. Второй триггер определен "ПОСЛЕ ВСТАВКИ"

Теперь удаленный сервер, который получает эхо-запрос от триггера oracle, возвращается и запрашивает таблицу, чтобы увидеть, что было добавлено недавно (там есть поле состояния, которое сообщает, что отличает новую запись от старой.)

Теперь проблема в том, что, если я сделаю запрос немедленно, он вернется, не сказав новых данных. Однако, если я сделаю запрос к таблице через 10 секунд, он вернет мне новые данные.

Разве это не странно, если бы я ожидал, что с учетом триггера порядка -> вставка -> триггер и затем выберите, я должен увидеть данные.

Разве это не проблема, кто-нибудь еще видел это.

Я бы ожидал, что целостность транзакций не будет зависеть от того, насколько медленным, быстрым и большим мой сервер оракула.

Есть ли какой-нибудь флаг, который мне нужно установить, чтобы добиться этого?

1 Ответ

3 голосов
/ 16 февраля 2011

Удаленный сервер не увидит вновь вставленные строки, пока они не будут зафиксированы, что будет через некоторое (возможно, маленькое) конечное время после срабатывания триггера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...