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