JRuby: JNDI против JDBCMYSQL - PullRequest
       13

JRuby: JNDI против JDBCMYSQL

1 голос
/ 16 января 2012

Не уверен, что эти два можно сравнить, чтобы терпеть меня.Но каково преимущество (в приложении JRuby) для запуска конфигурации, которая похожа на:

production:
  adapter: jdbc
  encoding: utf8
  jndi: java:comp/env/app
  pool: 200

по сравнению с:

production:
  adapter: jdbcmysql
  encoding: utf8
  database: tgc 
  #socket: /var/lib/mysql/mysql.sock
  host: localhost
  port: 3306
  username: mysql
  password: notarealpassword

Является ли один из них более гибким, чем другой?Могу ли я лучше настроиться на JNDI?Причина, по которой я спрашиваю, состоит в том, что мои работники Resque не могут получить доступ к БД, когда я использую версию JNDI выше.Я должен использовать последнюю конфигурацию, чтобы все работало правильно.

1 Ответ

2 голосов
/ 16 января 2012

JNDI абстрагирует конфигурацию БД на сервере приложений. Преимущества включают возможность развертывания одного и того же приложения на серверах с использованием разных БД и / или характеристик БД без изменения самого приложения.

Часто это больше вопрос политики / администрирования, чем что-либо еще - сохранение изолированной базы данных таким образом дает большую гибкость с административной стороны; все может быть перенастроено без уведомления приложения (обязательно). (Естественно, это не всегда работает так в реальной жизни.) Если люди, управляющие БД / серверами, не являются теми же людьми, которые пишут / разворачивают приложение, JNDI может быть очень полезным.

Этой абстракцией можно управлять другими способами - Rails использует файл конфигурации БД, Spring может использовать специфичные для сервера файлы конфигурации, системные свойства и т. Д. Различия менее технические, более управленческие.

...