XTA (API транзакций XA, http://www.tiian.org/lixa/XTA.html)) - это новый API, разработанный в рамках проекта LIXA для поддержки двухфазных транзакций фиксации в контексте FaaS (функция как сервис) и микросервисных приложений полиглотов.
API уже поддерживает языки C и C ++, его целью является поддержка гораздо большего, по крайней мере Python, PHP и Java. В настоящее время я работаю над поддержкой Python с PostgreSQL и MySQL, thisПочтовый поток связан с Python / MySQL.
XTA реализован на языке C, а XTA для Python создан с использованием SWIG: я хотел бы повторить подход для всех языков, которые предоставляют драйверы, производные от MySQLC API
Теперь запрос о помощи : XTA необходимо подключить всех менеджеров ресурсов (здесь MySQL) для управления ими с помощью двухфазного принятия, в основном требуется указатель (MYSQL *), которыйдолжен быть передан конструктору MysqlXaResource http://www.tiian.org/lixa/manuals/xta/CPP/classxta_1_1MysqlXaResource.html для создания объекта XTA, связанного с уже открытымd Соединение с MySQL.
Вот основные шаги примера программы на Python (https://github.com/tiian/lixa/blob/master/doc/examples/xta/python/example_xta_sa21.py):
# initialize XTA environment
Xta_Init()
# create a new MySQL connection
# Note: using _mysql or MySQLdb functions
rm2 = MySQLdb.connect("localhost", "lixa", "", "lixa")
# alternatively, usign _mysql
rm2 = _mysql.connect("localhost", "lixa", "", "lixa")
# create a new XTA Transaction Manager object
tm = TransactionManager()
# create an XA resource for MySQL
#
# how to retrieve MYSQL * from rm2 ?
xar2 = MysqlXaResource(rm2.???, "PostgreSQL", "dbname=testdb")
Глядя на последний оператор, стек:
- Собственная библиотека XTA C ожидает, что «MYSQL *» зарегистрирует обработчик соединенияОболочка ожидает указатель MYSQL *, сгенерированный SWIG (его можно изменить другим хорошо известным типом с помощью директивы typemap (https://github.com/tiian/lixa/blob/master/src/xta/python/xta.i)
- _mysql.connect () и MySQLdb.connect() не предоставляют мне что-то эквивалентное MYSQL *, по крайней мере, мне так кажется.
Есть ли у вас какие-либо подсказки о получении чего-то вроде PyCapsule, инициализированного с собственным подключением MYSQL *?
Заранее спасибо за помощь.
С уважением,
Ch.F.