script/server/db/sqlserver.sql (96 lines of code) (raw):

-- -- 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] nvarchar(128) NOT NULL, [transaction_id] bigint NULL, [status] tinyint NOT NULL, [application_id] nvarchar(32) NULL, [transaction_service_group] nvarchar(32) NULL, [transaction_name] nvarchar(128) NULL, [timeout] int NULL, [begin_time] bigint NULL, [application_data] nvarchar(2000) NULL, [gmt_create] datetime2 NULL, [gmt_modified] datetime2 NULL, PRIMARY KEY CLUSTERED ([xid]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) GO CREATE NONCLUSTERED INDEX [idx_gmt_modified_status] ON [global_table] ( [gmt_modified], [status] ) GO CREATE NONCLUSTERED INDEX [idx_transaction_id] ON [global_table] ( [transaction_id] ) GO -- the table to store BranchSession data CREATE TABLE [branch_table] ( [branch_id] bigint NOT NULL, [xid] nvarchar(128) NOT NULL, [transaction_id] bigint NULL, [resource_group_id] nvarchar(32) NULL, [resource_id] nvarchar(256) NULL, [branch_type] varchar(8) NULL, [status] tinyint NULL, [client_id] nvarchar(64) NULL, [application_data] nvarchar(2000) NULL, [gmt_create] datetime2 NULL, [gmt_modified] datetime2 NULL, PRIMARY KEY CLUSTERED ([branch_id]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) GO CREATE NONCLUSTERED INDEX [idx_xid] ON [branch_table] ( [xid] ) GO -- the table to store lock data CREATE TABLE [lock_table] ( [row_key] nvarchar(128) NOT NULL, [xid] nvarchar(128) NULL, [transaction_id] bigint NULL, [branch_id] bigint NOT NULL, [resource_id] nvarchar(256) NULL, [table_name] nvarchar(32) NULL, [pk] nvarchar(36) NULL, [status] tinyint NULL, [gmt_create] datetime2 NULL, [gmt_modified] datetime2 NULL, PRIMARY KEY CLUSTERED ([row_key]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ) GO CREATE NONCLUSTERED INDEX [idx_status] ON [lock_table] ( [status] ) GO CREATE NONCLUSTERED INDEX [idx_branch_id] ON [lock_table] ( [branch_id] ) GO -- the table to store distributed lock constants CREATE TABLE [distributed_lock] ( [lock_key] char(20) not null primary key, [lock_value] varchar(20) not null, [expire] bigint ) GO 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); INSERT INTO [distributed_lock] (lock_key, lock_value, expire) VALUES ('UndologDelete', ' ', 0); CREATE TABLE [vgroup_table] ( [vGroup] nvarchar(255) NOT NULL, [namespace] nvarchar(255) NOT NULL, [cluster] nvarchar(255) NOT NULL, PRIMARY KEY CLUSTERED ([vGroup]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) )