Skip to content

flex1988/sequelize-XA-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

sequelize-XA-plugin

sequelize XA plugin

support sequelize for xa distribute protocol

Usage

  1. Prepare Environment,support postgres only,edit postgresql.conf set max_prepared_transactions = 10

  2. Init sequelize

let xaPlugin = require('sequelize-xa-plugin');
let sequelize = new Sequelize('database', 'user', 'pwd', {
  dialect: 'postgres',
  host: 'localhost',
  port: 5432,
  timezone: '+00:00',
  logging: undefined,
  pool: {
      maxConnections: 10
  }
});
sequelize = xaPlugin(sequelize);
  1. XATransaction function
yield db.XATransaction({
    transactionManager: 'TM URL',
    xid: 'TM ID',
    name: 'child service name',
    callback: 'child transaction callback',
    isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.READ_UNCOMMITTED
  }, function(t) {
    return co(function*() {
      //...do something to database
    });
  });
  1. XA callback to commit or roolback prepared transaction
yield sequelize.finishPrepared(transactionId, action);

About

sequelize XA plugin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published