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