From 36cf73f8313cbd1baac4bc41565bee23690fc152 Mon Sep 17 00:00:00 2001 From: Kevin McKiou Date: Tue, 22 Aug 2017 16:08:06 -0500 Subject: Add feature-session-persistence This commit adds the feature-session-persistence module which will persist drools session data to allow stateful transactions which can persist across node restarts and failovers. It also picks up recent changes to the master branch to avoid merge conflicts. Issue-ID: POLICY-133 Change-Id: Ifdcd8280ea6df07db79562f1b01fa90296a8b878 Signed-off-by: Kevin McKiou --- .../config/feature-session-persistence.properties | 28 ++++++++++ .../sql/18020-sessionpersistence.upgrade.sql | 60 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 feature-session-persistence/src/main/feature/config/feature-session-persistence.properties create mode 100644 feature-session-persistence/src/main/feature/db/sessionpersistence/sql/18020-sessionpersistence.upgrade.sql (limited to 'feature-session-persistence/src/main/feature') diff --git a/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties new file mode 100644 index 00000000..6204b5ed --- /dev/null +++ b/feature-session-persistence/src/main/feature/config/feature-session-persistence.properties @@ -0,0 +1,28 @@ +### +# ============LICENSE_START======================================================= +# feature-session-persistence +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed 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. +# ============LICENSE_END========================================================= +### + +javax.persistence.jdbc.driver= org.mariadb.jdbc.Driver +javax.persistence.jdbc.url=jdbc:mariadb://${{SQL_HOST}}:3306/sessionpersistence +javax.persistence.jdbc.user=${{SQL_USER}} +javax.persistence.jdbc.password=${{SQL_PASSWORD}} +hibernate.dataSource=org.mariadb.jdbc.MySQLDataSource + +#Seconds timeout - 15 minutes +persistence.sessioninfo.timeout=900 \ No newline at end of file diff --git a/feature-session-persistence/src/main/feature/db/sessionpersistence/sql/18020-sessionpersistence.upgrade.sql b/feature-session-persistence/src/main/feature/db/sessionpersistence/sql/18020-sessionpersistence.upgrade.sql new file mode 100644 index 00000000..0e980968 --- /dev/null +++ b/feature-session-persistence/src/main/feature/db/sessionpersistence/sql/18020-sessionpersistence.upgrade.sql @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * feature-session-persistence + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============LICENSE_END========================================================= + */ + +set foreign_key_checks=0; + +CREATE TABLE if not exists sessionpersistence.DROOLSSESSIONENTITY +( +sessionName VARCHAR(255) NOT NULL, +sessionId BIGINT NOT NULL, +createdDate TIMESTAMP NOT NULL, +updatedDate TIMESTAMP NOT NULL, +PRIMARY KEY (sessionName) +); + +CREATE TABLE if not exists sessionpersistence.SESSIONINFO +( +ID BIGINT NOT NULL AUTO_INCREMENT, +LASTMODIFICATIONDATE TIMESTAMP, +RULESBYTEARRAY BLOB, +STARTDATE TIMESTAMP default current_timestamp, +OPTLOCK INTEGER, +PRIMARY KEY (ID) +); + +CREATE TABLE if not exists sessionpersistence.WORKITEMINFO +( +WORKITEMID BIGINT NOT NULL AUTO_INCREMENT, +CREATIONDATE TIMESTAMP default current_timestamp, +`NAME` VARCHAR(500), +PROCESSINSTANCEID BIGINT, +STATE BIGINT, +OPTLOCK INTEGER, +WORKITEMBYTEARRAY BLOB, +PRIMARY KEY (WORKITEMID) +); + +CREATE TABLE IF NOT EXISTS sessionpersistence.SESSIONINFO_ID_SEQ (next_val bigint) engine=MyISAM; +INSERT INTO sessionpersistence.SESSIONINFO_ID_SEQ (next_val) SELECT 1 WHERE NOT EXISTS (SELECT * FROM sessionpersistence.SESSIONINFO_ID_SEQ); + +CREATE TABLE IF NOT EXISTS sessionpersistence.WORKITEMINFO_ID_SEQ (next_val bigint) engine=MyISAM; +INSERT INTO sessionpersistence.WORKITEMINFO_ID_SEQ (next_val) SELECT 1 WHERE NOT EXISTS (SELECT * FROM sessionpersistence.WORKITEMINFO_ID_SEQ); + +set foreign_key_checks=1; \ No newline at end of file -- cgit 1.2.3-korg