73 lines
2.6 KiB
SQL
73 lines
2.6 KiB
SQL
-- -------------------------------- The script used when storeMode is 'db' --------------------------------
|
|
-- the table to store GlobalSession data
|
|
CREATE TABLE global_table
|
|
(
|
|
xid VARCHAR2(128) NOT NULL,
|
|
transaction_id NUMBER(19),
|
|
status NUMBER(3) NOT NULL,
|
|
application_id VARCHAR2(32),
|
|
transaction_service_group VARCHAR2(32),
|
|
transaction_name VARCHAR2(128),
|
|
timeout NUMBER(10),
|
|
begin_time NUMBER(19),
|
|
application_data VARCHAR2(2000),
|
|
gmt_create TIMESTAMP(0),
|
|
gmt_modified TIMESTAMP(0),
|
|
PRIMARY KEY (xid)
|
|
);
|
|
|
|
CREATE INDEX idx_status_gmt_modified ON global_table (status, gmt_modified);
|
|
CREATE INDEX idx_transaction_id ON global_table (transaction_id);
|
|
|
|
-- the table to store BranchSession data
|
|
CREATE TABLE branch_table
|
|
(
|
|
branch_id NUMBER(19) NOT NULL,
|
|
xid VARCHAR2(128) NOT NULL,
|
|
transaction_id NUMBER(19),
|
|
resource_group_id VARCHAR2(32),
|
|
resource_id VARCHAR2(256),
|
|
branch_type VARCHAR2(8),
|
|
status NUMBER(3),
|
|
client_id VARCHAR2(64),
|
|
application_data VARCHAR2(2000),
|
|
gmt_create TIMESTAMP(6),
|
|
gmt_modified TIMESTAMP(6),
|
|
PRIMARY KEY (branch_id)
|
|
);
|
|
|
|
CREATE INDEX idx_xid ON branch_table (xid);
|
|
|
|
-- the table to store lock data
|
|
CREATE TABLE lock_table
|
|
(
|
|
row_key VARCHAR2(128) NOT NULL,
|
|
xid VARCHAR2(128),
|
|
transaction_id NUMBER(19),
|
|
branch_id NUMBER(19) NOT NULL,
|
|
resource_id VARCHAR2(256),
|
|
table_name VARCHAR2(32),
|
|
pk VARCHAR2(36),
|
|
status NUMBER(3) DEFAULT 0 NOT NULL,
|
|
gmt_create TIMESTAMP(0),
|
|
gmt_modified TIMESTAMP(0),
|
|
PRIMARY KEY (row_key)
|
|
);
|
|
|
|
comment on column lock_table.status is '0:locked ,1:rollbacking';
|
|
CREATE INDEX idx_branch_id ON lock_table (branch_id);
|
|
CREATE INDEX idx_lock_table_xid ON lock_table (xid);
|
|
CREATE INDEX idx_status ON lock_table (status);
|
|
|
|
CREATE TABLE distributed_lock (
|
|
lock_key VARCHAR2(20) NOT NULL,
|
|
lock_value VARCHAR2(20) NOT NULL,
|
|
expire DECIMAL(18) NOT NULL,
|
|
PRIMARY KEY (lock_key)
|
|
);
|
|
|
|
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
|
|
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
|
|
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
|
|
INSERT INTO distributed_lock (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);
|