# ==== Purpose ==== # # Verify that on slave server, appropriate XA_STATE is reported in Performance # Schema tables for XA transactions. # # ==== Implementation ==== # # 1) On Master start one XA transaction named 'xatest' and set the state to # 'PREPARED'. # 2) On slave wait till the applier thread applies the 'XA PREPARE' statement. # 3) Verify that the XA_STATE is reported as 'PREPARED' in performance schema # table. # 4) On Master COMMIT the XA transaction. # 5) On slave verify that the XA_STATE is reported as 'COMMITTED' # 6) Ensure that XA COMMIT statment's GTID is the same as that of master. # # ==== References ==== # # Bug#25940184: P_S TRANSACTION INSTRUMENTATION DOES NOT WORK PROPERLY FOR # XA ON SLAVE # Test script is independent of binlog format. --source include/have_binlog_format_mixed.inc --source include/master-slave.inc # Verify --source extra/rpl_tests/rpl_perfschema_applier_xa_status.test # Cleanup --source include/rpl_reset.inc --echo #################################################################### --echo # Test Case 2: Enable Multithreaded Slave with slave_parallel_type as --echo # DATABASE. Verify that slave displays appropriate XA_STATE in --echo # performance schema table, post XA PREPARE AND XA COMMIT command --echo # execution. --echo #################################################################### --source include/rpl_connection_slave.inc # Save existing settings. SET @save_slave_parallel_workers=@@global.slave_parallel_workers; SET @slave_parallel_type=@@global.slave_parallel_type; # Enable MTS --source include/stop_slave.inc SET GLOBAL slave_parallel_workers=4; SET GLOBAL slave_parallel_type='DATABASE'; --source include/start_slave.inc # Verify --source extra/rpl_tests/rpl_perfschema_applier_xa_status.test # Cleanup --source include/rpl_reset.inc --echo #################################################################### --echo # Test Case 3: Enable Multithreaded Slave with slave_parallel_type as --echo # LOGICAL_CLOCK. Verify that slave displays appropriate XA_STATE in --echo # performance schema table, post XA PREPARE AND XA COMMIT command --echo # execution. --echo #################################################################### # Enable MTS --source include/stop_slave.inc SET GLOBAL slave_parallel_workers=4; SET GLOBAL slave_parallel_type='LOGICAL_CLOCK'; --source include/start_slave.inc # Verify --source extra/rpl_tests/rpl_perfschema_applier_xa_status.test --source include/rpl_connection_slave.inc # Cleanup --source include/stop_slave.inc set @@global.slave_parallel_workers= @save_slave_parallel_workers; set @@global.slave_parallel_type= @slave_parallel_type; --source include/start_slave.inc --source include/rpl_end.inc