Распределенная обработка: C++ эквивалент JTA
Я разрабатываю критически важное решение, в котором целостность данных имеет первостепенное значение, а производительность близка к секунде. Если данные переполнены, это будет катафорично.
Итак, я ищу CTA C++ версию JTA (Java Transaction API). Кто-нибудь знает какие-либо библиотеки C или C++, которые поддерживают распределенные транзакции? И да, я гуглил это... безуспешно.
Я не хотел бы, чтобы мне говорили, что его нет, и мне нужно реализовать протокол, указанный в Distributed TP: спецификация XA.
Пожалуйста помоги!
Редактировать (отвечает Кервину): если мне нужно вставить записи на несколько серверов баз данных, и мне нужно фиксировать их поочередно, такие продукты, как Oracle, найдут решения для этого. Если я написал свой собственный сервер очереди сообщений и хочу атомарно фиксировать сообщения на нескольких серверах, мне понадобится что-то вроде JTA, чтобы убедиться, что я не заполняю атомарность транзакции.
3 ответа
Энсина, DCE-RPC, TUXEDO, возможно CORBA (хотя я не решаюсь предложить использовать CORBA), MTS (опять же, хм).
Это те вещи, которые вы хотите для распределенной обработки транзакций.
У Энсины было много хорошей документации для ее системы на основе DCE.
Есть сотни. Шутки в сторону.
Насколько общие области идут. Проверьте сервис-ориентированную архитектуру, большинство новых продуктов выходят в этой области. Например. RogueWave HydraSCA
Я бы начал с простого Rogue Wave Suite, а затем посмотрел, нужна ли мне Enterprise Service Bus после просмотра этого дизайна.
Это, вероятно, во многом зависит от ваших требований к дизайну и бюджета.
Oracle Tuxedo является 800-фунтовой гориллой в этом пространстве и фактически послужил основой для большей части спецификации XA. Он обеспечивает распределенное управление транзакциями и может обрабатывать сотни тысяч запросов в секунду.
Для получения дополнительной информации: http://www.oracle.com/tuxedo
Кроме того, если вам нравится SCA (Service Component Architecture), есть дополнительный продукт для Tuxedo под названием SALT, который предоставляет контейнер SCA для программирования на C++, Python, Ruby и PHP.