blob: a65b5e8b0d51c2aaf7e33a00ec0a94f115d99b31 [file] [log] [blame]
--
-- Licensed to the Apache Software Foundation (ASF) under one or more
-- contributor license agreements. See the NOTICE file distributed with
-- this work for additional information regarding copyright ownership.
-- The ASF licenses this file to You under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with
-- the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
--
-- -------------------------------- 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);
CREATE TABLE VGROUP_TABLE
(
VGROUP VARCHAR2(255) PRIMARY KEY,
NAMESPACE VARCHAR2(255),
CLUSTER VARCHAR2(255)
);