XTA(XA交易API,http://www.tiian.org/lixa/XTA.html)是一种新的API,已在LIXA项目内部开发,以在FaaS(功能即服务)和面向微服务的多语言应用程序的上下文中支持两阶段提交交易
该API已经支持C和C ++语言;它旨在以最少的Python,PHP和Java支持更多的功能。 我目前正在使用PostgreSQL和MySQL支持Python,此邮件线程与Python / MySQL有关。
XTA是用C语言实现的,而Python的XTA是使用SWIG生成的:我想对所有提供从MySQL C API派生的驱动程序的语言重复该方法
现在请求帮助:XTA需要征集所有资源管理器(此处为MySQL)以使用两阶段提交来管理它们,基本上,它需要一个必须传递给的指针(MYSQL *) MysqlXaResource构造函数http://www.tiian.org/lixa/manuals/xta/CPP/classxta_1_1MysqlXaResource.html,用于创建与已打开的MySQL连接关联的XTA对象。
以下是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")
看最后一条语句,堆栈是:
您是否有任何关于检索使用MYSQL *本机连接初始化的PyCapsule之类的提示?
预先感谢您的帮助。
此致
Ch.F。
答案 0 :(得分:0)
在阅读了一些文档之后,我发现没有明确的解决方案。
这是我提出的要求,开发团队建议创建一个“ get_native_connection()”方法:https://github.com/PyMySQL/mysqlclient-python/pull/269