Драйвер Oracle по сравнению с драйвером OCI. За и против?

Когда вы разрабатываете приложение Java, которое ведет переговоры с Oracle, есть два варианта: Один из них - драйвер оракула, а другой - драйвер OCI, который требует собственной установки (пожалуйста, исправьте, если я не понимаю).

Теперь, каковы плюсы и минусы? Очевидно, что тонкий драйвер звучит намного лучше с точки зрения установки, но есть ли что-то, что может сделать OCI, а тонкий - не может?

Среда разработки - Tomcat6 + Spring 3.0 + JPA (Hibernate) + apache-DBCP

Ответы

Ответ 1

Выбор драйвера зависит от нескольких факторов. Характер ваших вызовов в базу данных (например, похоже, что ваше приложение не будет использовать много хранимых вызовов proc), требования к отказоустойчивости (например, кластерные серверы Oracle) и распределенные транзакции. Как правило, рекомендуется использовать тонкий драйвер, но если есть какая-то особенность драйвера OCI, который вы просто должны иметь, вам, возможно, придется рассмотреть драйвер OCI. Также было сказано, что драйверы в Oracle 10 и выше имеют соответствующие возможности, и на современных JVM практически нет разницы в производительности.

Ответ 2

Если у вас нет зависимости от функции, доступной только в драйвере JDBC-OCI, а не в тонком драйвере JDBC, рекомендация Oracle - использовать тонкий. Самые последние функции Oracle Database, такие как Guard Guard или Application Continuity, доступны только в тонком драйвере JDBC. Тонкий драйвер также больше используется, чем драйвер JDBC-OCI, поэтому ошибки будут исправлены быстрее. Он считался более стабильным. Если вы все еще не уверены, что Oracle Weblogic Server поставляется только с JDBC-тонким драйвером.