Распределенная транзакция с SQL Server и Websphere MQ

У нас есть SQL Server 2012 в качестве сервера БД и Websphere MQ в Redhat Linux в качестве сервера MQ. Наши приложения находятся на сервере Redhat Linux и реализованы на C++.

Нам нужна возможность распределенных транзакций, чтобы транзакции могли охватывать оба ресурса (DB и MQ). Распределенная транзакция управляется менеджером транзакций, работающим через менеджеры ресурсов.

WMQ может выступать в качестве диспетчера распределенных транзакций, если отдельные менеджеры ресурсов (DB и MQ) предоставляют операции XA. MS SQL имеет библиотеку ODBC для Linux: http://www.microsoft.com/en-us/download/details.aspx?id=28160.

  1. Поддерживает ли библиотека SQL Server операции XA, такие как xa_open и т. Д., Которые могут позволить ей участвовать в транзакции XA, управляемой WMQ?

Другой вариант - использовать координатора распределенных транзакций MS в качестве диспетчера транзакций.

  1. Можно ли использовать MSDTC из программы на C++, работающей в Linux?
  2. Работает ли MSDTC с WMQ, выступая в качестве менеджера ресурсов?

Спасибо яш

1 ответ

Хотелось бы, чтобы у меня были лучшие новости для тебя...

Предполагая, что вы говорите о V8 (хотя другие выпуски похожи), MS SQL Server вообще не поддерживается при использовании MQ в качестве диспетчера транзакций. Вы можете увидеть это в разделе "Базы данных" MQ SOE:

http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1350550241693&osPlatform=Linux

MSDTC может использоваться, но только клиентами, работающими в Windows, насколько мне известно - я не понимаю, как вы могли бы заставить его работать в вашем сценарии.

Другой вариант - использовать среду J2EE (WAS/JBoss и т. Д.). Это будет действовать как менеджер транзакций, а MS SQL и MQ будут работать как ресурсы. Тем не менее, это не решает ваше требование писать на C++.

Поэтому у меня есть только те предложения, которые действительно работают:

1) Просмотрите менеджеры транзакций, которые MQ поддерживает: http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1350550241693&osPlatform=Linux Servers и шлюзы

К сожалению, я не знаком с деталями вариантов там.

2) Создайте "RFE" с IBM в качестве своего клиента. Это механизм, который они предоставляют, чтобы позволить клиентам / внешним сторонам запрашивать новую функцию:

http://www.ibm.com/developerworks/rfe/

Хотя нет никакой гарантии, что он будет принят, или в какой версии он может оказаться (или когда!).

Другие вопросы по тегам