Я не осуществлял расширенный поиск, но не смог найти никаких доказательств того, что вы можете получить доступ к этой функции на уровне драйвера JDBC.
На всякий случай позвольте мне процитировать это сообщение в блоге (я вставляю содержимое для справки, поскольку исходный сайт либо недоступен, либо мертв, и мне пришлось использовать Google Cache):
Тот, кто использовал новый
особенность асинхронной фиксации Oracle
10.2 будет знать, что это очень полезно для обработки транзакций
системы, которые традиционно были бы
связаны log_file_sync
событиями ожидания.
COMMIT WRITE BATCH NOWAIT
быстрее
потому что он не ждет сообщения
заверяя, что сделка
безопасно в журнале повторов - вместо этого
предполагает, что это сделает это. Это почти
устраняет log_file_sync
событий. Это
также возможно подрывает весь
цель совершения, но есть много
ситуации, когда потеря
конкретная транзакция (скажем, чтобы удалить
завершенный сеанс) отлично
выживаемый и гораздо более предпочтительный
чем не в состоянии обслуживать входящие
запросы, потому что все ваши соединения
заняты log_file_sync
ожидания
события.
Проблема любого, кто использует Oracle JDBC
Водитель в том, что ни 10.2, ни
11.1 драйверы имеют любые расширения, которые позволяют вам получить доступ к этой функции
легко - в то время как Oracle имеет много
специальные расширения для всех
поддержка асинхронных операций
коммит отсутствует.
Это означает, что вы можете:
Включить асинхронную фиксацию на уровне экземпляра, связавшись с
COMMIT_WRITE
init.ora
параметр.
Там действительно хороший шанс, что это будет
уволить тебя, как и на протяжении
вся система COMMIT будет
асинхронный. Хотя мы думаем, что это
безумный для производственных систем там
времена, когда установка его на
коробка разработки имеет смысл, как будто вы
80% привязки к файлу синхронизации
COMMIT_WRITE
НАПРАВИТЬ ЗАПИСЬ
NOWAIT позволит вам увидеть, что
проблемы, с которыми вы сталкиваетесь, если можете как-то
исправьте свои текущие.
Изменение COMMIT_WRITE
на уровне сеанса. Это не так опасно, как
делать это по всей системе, но это трудно
увидеть это жизнеспособным для реального мира
система с транзакциями, которые люди заботятся
о.
Подготовьте и используйте блок PL / SQL с надписью "НАЧАЛО ЗАПИСИ НА ПЕРВУЮ КОМИТУ;
END ". Это безопаснее, чем первый
две идеи, но все еще включает в себя сеть
туда и обратно.
Оберните ваше утверждение в анонимный блок с асинхронной фиксацией.
Это лучший подход, который мы видели.
Ваш код будет выглядеть примерно так
это:
BEGIN
--
insert into generic_table
(a_col, another_col, yet_another_col)
values
(?,?,?);
--
COMMIT WRITE BATCH NOWAIT;
--
END;