Запись в одну базу данных при чтении из другой с использованием DevExpress XPO - PullRequest
2 голосов
/ 24 июня 2009

Кто-нибудь имеет опыт работы с DevExpress XPO в среде, где реплицируется БД? Из моего предыдущего вопроса здесь и одного вопроса о сбое сервера я думаю, что было решено, что репликация - это путь.

Документы MySQL говорят, что все записи должны выполняться на главном устройстве, а все операции чтения должны быть получены от ведомого устройства. Это имеет смысл, но теперь это вопрос настройки XPO для записи на мастер (далеко), но для чтения с подчиненного (локального).

Я получил хороший ответ на форумах DevExpress о том, как это можно сделать, и я собираюсь попытаться, но мне интересно, ДЕЙСТВИТЕЛЬНО ли это кто-нибудь сделал, и какие-либо идеи / рекомендации / ссылки, которые они будет иметь.

1 Ответ

3 голосов
/ 21 июля 2009

РЕДАКТИРОВАТЬ: , так как вам не нравится первый подход.

вот несколько ссылок репликации мастер-мастер на тот случай, если вы их еще не видели.
http://forums.mysql.com/read.php?144,235807,235807
http://code.google.com/p/mysql-master-master/
http://www.mysqlperformanceblog.com/2007/04/05/mysql-master-master-replication-manager-released/ http://www.howtoforge.com/mysql_master_master_replication

Некоторые потенциальные записи в Википедии. http://en.wikipedia.org/wiki/Replication_%28computer_science%29#Database_replication
http://en.wikipedia.org/wiki/Multi-master_replication

<ч />

Mysql Replication Solutions (Кэшируется в Google, по какой-то причине исходная ссылка сейчас не работает)

<ч /> Вы уже попробовали метод, предложенный на форуме DevExpress? Вот как бы я это сделал.

Из Алиан Бисмарк Здесь

  1. Создать сеанс A
  2. Вызов SessionA.Disconect () - Установите ConnectionString в SessionA и вызовите SessionA.Connect ()
  3. Создать сессиюB
  4. Вызов SessionB.Disconect () - Установите для ConnectionString значение SessionB и вызовите SessionA.Connect ()
  5. Загрузка объектов из SessionA с использованием XPCollection auxL = новая XPCollection (SessionA)
  6. Создание объектов SessionB, используя B b = new B (SessionB)
  7. Назначение полей от объекта A к объекту b 8 Сохранить объект b

этот подход хорошо работает с базовыми объектами, если у вас есть отношения и т. Д., Вам нужно разрешить ссылки объектов в сеансе B, используя информацию об объектах сеанса A.

...