96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| --
 | |
| -- 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)
 | |
| ); |