sequelize-xa-plugin

1.1.1 • Public • Published

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);

Package Sidebar

Install

npm i sequelize-xa-plugin

Weekly Downloads

0

Version

1.1.1

License

ISC

Last publish

Collaborators

  • flex1988