diff --git a/database/pom.xml b/database/pom.xml
index 5333f8f6b10..631cec78107 100644
--- a/database/pom.xml
+++ b/database/pom.xml
@@ -31,6 +31,7 @@
10.5.0.5
${version.db2-10.5}
9.4.1212
+ 4.10
@@ -92,6 +93,11 @@
postgresql
${version.postgresql}
+
+ com.ibm.informix.jdbc
+ ifxjdbc
+ ${version.informix}
+
@@ -557,6 +563,40 @@
+
+
+ informix
+
+ informix
+ com.informix.jdbc.IfxDriver
+ com.informix.jdbcx.IfxDataSource
+
+
+
+
+ com.ibm.informix.jdbc
+ ifxjdbc
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ sql-maven-plugin
+
+
+ com.ibm.informix.jdbc
+ ifxjdbc
+ ${version.informix}
+
+
+
+
+
+
+
diff --git a/distro/sql-script/pom.xml b/distro/sql-script/pom.xml
index 18d6e33ec0b..8ae9cb01492 100644
--- a/distro/sql-script/pom.xml
+++ b/distro/sql-script/pom.xml
@@ -174,6 +174,10 @@
+
+
+
+
@@ -220,6 +224,10 @@
+
+
+
+
diff --git a/distro/wildfly/modules/pom.xml b/distro/wildfly/modules/pom.xml
index f3ab7d6d5ab..d98504ac1f4 100644
--- a/distro/wildfly/modules/pom.xml
+++ b/distro/wildfly/modules/pom.xml
@@ -78,6 +78,12 @@
camunda-connect-soap-http-client
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ ${version.jackson}
+
+
org.codehaus.groovy
diff --git a/distro/wildfly/modules/src/main/modules/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.7/module.xml b/distro/wildfly/modules/src/main/modules/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.7/module.xml
new file mode 100644
index 00000000000..2fcee3fb3e6
--- /dev/null
+++ b/distro/wildfly/modules/src/main/modules/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.7/module.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/distro/wildfly/modules/src/main/modules/org/camunda/spin/camunda-spin-dataformat-json-jackson/main/module.xml b/distro/wildfly/modules/src/main/modules/org/camunda/spin/camunda-spin-dataformat-json-jackson/main/module.xml
index 914bfdf760f..af34667855f 100644
--- a/distro/wildfly/modules/src/main/modules/org/camunda/spin/camunda-spin-dataformat-json-jackson/main/module.xml
+++ b/distro/wildfly/modules/src/main/modules/org/camunda/spin/camunda-spin-dataformat-json-jackson/main/module.xml
@@ -12,6 +12,7 @@
+
diff --git a/engine/src/main/java/org/camunda/bpm/engine/impl/cfg/ProcessEngineConfigurationImpl.java b/engine/src/main/java/org/camunda/bpm/engine/impl/cfg/ProcessEngineConfigurationImpl.java
index 4a74aa62910..d4af49d2d5b 100644
--- a/engine/src/main/java/org/camunda/bpm/engine/impl/cfg/ProcessEngineConfigurationImpl.java
+++ b/engine/src/main/java/org/camunda/bpm/engine/impl/cfg/ProcessEngineConfigurationImpl.java
@@ -1561,6 +1561,7 @@ protected static Properties getDefaultDatabaseTypeMappings() {
databaseTypeMappings.setProperty("DB2/SUN64", "db2");
databaseTypeMappings.setProperty("DB2/PTX", "db2");
databaseTypeMappings.setProperty("DB2/2", "db2");
+ databaseTypeMappings.setProperty("Informix Dynamic Server", "informix");
return databaseTypeMappings;
}
diff --git a/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java b/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java
index b4198cf5fef..da15536f2d9 100644
--- a/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java
+++ b/engine/src/main/java/org/camunda/bpm/engine/impl/db/sql/DbSqlSessionFactory.java
@@ -43,7 +43,8 @@ public class DbSqlSessionFactory implements SessionFactory {
public static final String POSTGRES = "postgres";
public static final String MARIADB = "mariadb";
public static final String CRDB = "cockroachdb";
- public static final String[] SUPPORTED_DATABASES = {MSSQL, DB2, ORACLE, H2, MYSQL, POSTGRES, MARIADB, CRDB};
+ public static final String INFORMIX = "informix";
+ public static final String[] SUPPORTED_DATABASES = {MSSQL, DB2, ORACLE, H2, MYSQL, POSTGRES, MARIADB, INFORMIX};
protected static final Map> databaseSpecificStatements = new HashMap<>();
@@ -653,6 +654,67 @@ public class DbSqlSessionFactory implements SessionFactory {
constants.put("constant.integer.cast", "NULL");
constants.put("constant.null.reporter", "NULL AS REPORTER_");
dbSpecificConstants.put(MSSQL, constants);
+
+ // informix
+ databaseSpecificLimitBeforeStatements.put(INFORMIX, "SELECT SKIP ${firstResult} FIRST ${maxResults} * FROM (");
+ optimizeDatabaseSpecificLimitBeforeWithoutOffsetStatements.put(INFORMIX, "");
+ databaseSpecificLimitAfterStatements.put(INFORMIX, ")");
+ databaseSpecificInnerLimitAfterStatements.put(INFORMIX, databaseSpecificLimitAfterStatements.get(INFORMIX));
+ optimizeDatabaseSpecificLimitAfterWithoutOffsetStatements.put(INFORMIX, "");
+ databaseSpecificLimitBetweenStatements.put(INFORMIX, "");
+ databaseSpecificLimitBetweenFilterStatements.put(INFORMIX, "");
+ databaseSpecificLimitBeforeWithoutOffsetStatements.put(INFORMIX, "FIRST ${maxResults}");
+ databaseSpecificLimitAfterWithoutOffsetStatements.put(INFORMIX, "");
+ databaseSpecificOrderByStatements.put(INFORMIX, defaultOrderBy);
+ databaseSpecificLimitBeforeNativeQueryStatements.put(INFORMIX, "");
+ databaseSpecificDistinct.put(INFORMIX, "distinct");
+
+ databaseSpecificEscapeChar.put(INFORMIX, defaultEscapeChar);
+
+ databaseSpecificBitAnd1.put(INFORMIX, "BITAND(");
+ databaseSpecificBitAnd2.put(INFORMIX, ",");
+ databaseSpecificBitAnd3.put(INFORMIX, ")");
+ databaseSpecificDatepart1.put(INFORMIX, "");
+ databaseSpecificDatepart2.put(INFORMIX, "(");
+ databaseSpecificDatepart3.put(INFORMIX, ")");
+ databaseSpecificDummyTable.put(INFORMIX, "FROM SYSMASTER:SYSDUAL");
+ databaseSpecificTrueConstant.put(INFORMIX, "'t'");
+ databaseSpecificFalseConstant.put(INFORMIX, "'f'");
+ databaseSpecificIfNull.put(INFORMIX, "NVL");
+
+ databaseSpecificDaysComparator.put(INFORMIX, "DATE(${date}) + ${days} <= #{currentTimestamp}");
+
+ addDatabaseSpecificStatement(INFORMIX, "selectFilterByQueryCriteria", "selectFilterByQueryCriteria_oracleDb2");
+
+ addDatabaseSpecificStatement(INFORMIX, "deleteAttachmentsByRemovalTime", "deleteAttachmentsByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteCommentsByRemovalTime", "deleteCommentsByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricActivityInstancesByRemovalTime", "deleteHistoricActivityInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionInputInstancesByRemovalTime", "deleteHistoricDecisionInputInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionInstancesByRemovalTime", "deleteHistoricDecisionInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDecisionOutputInstancesByRemovalTime", "deleteHistoricDecisionOutputInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricDetailsByRemovalTime", "deleteHistoricDetailsByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteExternalTaskLogByRemovalTime", "deleteExternalTaskLogByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricIdentityLinkLogByRemovalTime", "deleteHistoricIdentityLinkLogByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricIncidentsByRemovalTime", "deleteHistoricIncidentsByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteJobLogByRemovalTime", "deleteJobLogByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricProcessInstancesByRemovalTime", "deleteHistoricProcessInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricTaskInstancesByRemovalTime", "deleteHistoricTaskInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricVariableInstancesByRemovalTime", "deleteHistoricVariableInstancesByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteUserOperationLogByRemovalTime", "deleteUserOperationLogByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteByteArraysByRemovalTime", "deleteByteArraysByRemovalTime_informix");
+ addDatabaseSpecificStatement(INFORMIX, "deleteHistoricBatchesByRemovalTime", "deleteHistoricBatchesByRemovalTime_informix");
+
+ constants = new HashMap();
+ constants.put("constant.event", "'event'");
+ constants.put("constant.op_message", "NEW_VALUE_ || '_|_' || PROPERTY_");
+ constants.put("constant_for_update", "for update");
+ constants.put("constant.datepart.quarter", "QUARTER");
+ constants.put("constant.datepart.month", "MONTH");
+ constants.put("constant.datepart.minute", "MINUTE");
+ constants.put("constant.null.startTime", "CAST(NULL AS DATETIME) AS START_TIME_");
+ constants.put("constant.varchar.cast", "'${key}'");
+ constants.put("constant.null.reporter", "CAST(NULL AS VARCHAR(255)) AS REPORTER_");
+ dbSpecificConstants.put(INFORMIX, constants);
}
protected String databaseType;
diff --git a/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java b/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java
index c4180a55d88..2c97ab6c335 100644
--- a/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java
+++ b/engine/src/main/java/org/camunda/bpm/engine/impl/util/ExceptionUtil.java
@@ -133,8 +133,11 @@ public static boolean checkForeignKeyConstraintViolation(Throwable cause) {
List relatedSqlExceptions = findRelatedSqlExceptions(cause);
for (SQLException exception : relatedSqlExceptions) {
+ // Exception.message can be null on Informix
+ if (exception.getMessage() == null) {
+ return false;
// PostgreSQL doesn't allow for a proper check
- if ("23503".equals(exception.getSQLState()) && exception.getErrorCode() == 0) {
+ } else if ("23503".equals(exception.getSQLState()) && exception.getErrorCode() == 0) {
return false;
} else if (
// SqlServer
@@ -154,6 +157,9 @@ public static boolean checkForeignKeyConstraintViolation(Throwable cause) {
|| (exception.getMessage().toLowerCase().contains("sqlstate=23503") && exception.getMessage().toLowerCase().contains("sqlcode=-530"))
// DB2 zOS
|| ("23503".equals(exception.getSQLState()) && exception.getErrorCode() == -530)
+ // Informix
+ || (exception.getMessage().toLowerCase().contains("referential constraint")
+ || ("23000".equals(exception.getSQLState()) && exception.getErrorCode() == -691))
) {
return true;
@@ -167,7 +173,10 @@ public static boolean checkVariableIntegrityViolation(Throwable cause) {
List relatedSqlExceptions = findRelatedSqlExceptions(cause);
for (SQLException exception : relatedSqlExceptions) {
- if (
+ // Exception.message can be null on Informix
+ if (exception.getMessage() == null) {
+ return false;
+ } else if (
// MySQL & MariaDB
(exception.getMessage().toLowerCase().contains("act_uniq_variable") && "23000".equals(exception.getSQLState()) && exception.getErrorCode() == 1062)
// PostgreSQL
@@ -177,7 +186,9 @@ public static boolean checkVariableIntegrityViolation(Throwable cause) {
// Oracle
|| (exception.getMessage().toLowerCase().contains("act_uniq_variable") && "23000".equals(exception.getSQLState()) && exception.getErrorCode() == 1)
// H2
- || (exception.getMessage().toLowerCase().contains("act_uniq_variable") && "23505".equals(exception.getSQLState()) && exception.getErrorCode() == 23505)
+ || (exception.getMessage().toLowerCase().contains("act_uniq_variable_index_c") && "23505".equals(exception.getSQLState()) && exception.getErrorCode() == 23505)
+ // Informix
+ || (exception.getMessage().toLowerCase().contains("act_uniq_variable") && "23000".equals(exception.getSQLState()) && exception.getErrorCode() == -239)
) {
return true;
}
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql
new file mode 100644
index 00000000000..13164111f0a
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.engine.sql
@@ -0,0 +1,137 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+-- create case definition table --
+
+create table ACT_RE_CASE_DEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ lvarchar(4000),
+ DGRM_RESOURCE_NAME_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ HISTORY_TTL_ integer,
+ primary key (ID_)
+);
+
+-- create case execution table --
+
+create table ACT_RU_CASE_EXECUTION (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CASE_INST_ID_ varchar(64),
+ SUPER_CASE_EXEC_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ PREV_STATE_ integer,
+ CURRENT_STATE_ integer,
+ REQUIRED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+-- create case sentry part table --
+
+create table ACT_RU_CASE_SENTRY_PART (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CASE_INST_ID_ varchar(64),
+ CASE_EXEC_ID_ varchar(64),
+ SENTRY_ID_ varchar(255),
+ TYPE_ varchar(255),
+ SOURCE_CASE_EXEC_ID_ varchar(64),
+ STANDARD_EVENT_ varchar(255),
+ SOURCE_ varchar(255),
+ VARIABLE_EVENT_ varchar(255),
+ VARIABLE_NAME_ varchar(255),
+ SATISFIED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+-- create index on business key --
+create index ACT_IDX_CASE_EXEC_BUSKEY on ACT_RU_CASE_EXECUTION(BUSINESS_KEY_);
+
+-- https://app.camunda.com/jira/browse/CAM-9165
+create index ACT_IDX_CASE_EXE_CASE_INST on ACT_RU_CASE_EXECUTION(CASE_INST_ID_);
+
+-- create foreign key constraints on ACT_RU_CASE_EXECUTION --
+alter table ACT_RU_CASE_EXECUTION
+ add constraint foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_CASE_EXE_CASE_INST;
+
+alter table ACT_RU_CASE_EXECUTION
+ add constraint foreign key (PARENT_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_CASE_EXE_PARENT;
+
+alter table ACT_RU_CASE_EXECUTION
+ add constraint foreign key (CASE_DEF_ID_)
+ references ACT_RE_CASE_DEF(ID_)
+ constraint ACT_FK_CASE_EXE_CASE_DEF;
+
+alter table ACT_RU_VARIABLE
+ add constraint foreign key (CASE_EXECUTION_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_VAR_CASE_EXE;
+
+alter table ACT_RU_VARIABLE
+ add constraint foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_VAR_CASE_INST;
+
+alter table ACT_RU_TASK
+ add constraint foreign key (CASE_EXECUTION_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_TASK_CASE_EXE;
+
+alter table ACT_RU_TASK
+ add constraint foreign key (CASE_DEF_ID_)
+ references ACT_RE_CASE_DEF(ID_)
+ constraint ACT_FK_TASK_CASE_DEF;
+
+alter table ACT_RU_CASE_SENTRY_PART
+ add constraint foreign key (CASE_INST_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_CASE_SENTRY_CASE_INST;
+
+alter table ACT_RU_CASE_SENTRY_PART
+ add constraint foreign key (CASE_EXEC_ID_)
+ references ACT_RU_CASE_EXECUTION(ID_)
+ constraint ACT_FK_CASE_SENTRY_CASE_EXEC;
+
+-- indexes for concurrency problems - https://app.camunda.com/jira/browse/CAM-1646 --
+-- create index ACT_IDX_CASE_EXEC_CASE on ACT_RU_CASE_EXECUTION(CASE_DEF_ID_);
+-- create index ACT_IDX_CASE_EXEC_PARENT on ACT_RU_CASE_EXECUTION(PARENT_ID_);
+-- create index ACT_IDX_VARIABLE_CASE_EXEC on ACT_RU_VARIABLE(CASE_EXECUTION_ID_);
+-- create index ACT_IDX_VARIABLE_CASE_INST on ACT_RU_VARIABLE(CASE_INST_ID_);
+-- create index ACT_IDX_TASK_CASE_EXEC on ACT_RU_TASK(CASE_EXECUTION_ID_);
+-- create index ACT_IDX_TASK_CASE_DEF_ID on ACT_RU_TASK(CASE_DEF_ID_);
+
+-- add indexes for ACT_RU_CASE_SENTRY_PART --
+-- create index ACT_IDX_CASE_SENTRY_CASE_INST on ACT_RU_CASE_SENTRY_PART(CASE_INST_ID_);
+-- create index ACT_IDX_CASE_SENTRY_CASE_EXEC on ACT_RU_CASE_SENTRY_PART(CASE_EXEC_ID_);
+
+create index ACT_IDX_CASE_DEF_TENANT_ID on ACT_RE_CASE_DEF(TENANT_ID_);
+create index ACT_IDX_CASE_EXEC_TENANT_ID on ACT_RU_CASE_EXECUTION(TENANT_ID_);
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql
new file mode 100644
index 00000000000..cece3e02032
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.case.history.sql
@@ -0,0 +1,61 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+create table ACT_HI_CASEINST (
+ ID_ varchar(64) not null,
+ CASE_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64) not null,
+ CREATE_TIME_ datetime year to fraction(5) not null,
+ CLOSE_TIME_ datetime year to fraction(5),
+ DURATION_ bigint,
+ STATE_ integer,
+ CREATE_USER_ID_ varchar(255),
+ SUPER_CASE_INSTANCE_ID_ varchar(64),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+alter table ACT_HI_CASEINST add constraint unique(CASE_INST_ID_) constraint CASE_INST_ID_;
+
+create table ACT_HI_CASEACTINST (
+ ID_ varchar(64) not null,
+ PARENT_ACT_INST_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64) not null,
+ CASE_INST_ID_ varchar(64) not null,
+ CASE_ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ CALL_CASE_INST_ID_ varchar(64),
+ CASE_ACT_NAME_ varchar(255),
+ CASE_ACT_TYPE_ varchar(255),
+ CREATE_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ DURATION_ bigint,
+ STATE_ integer,
+ REQUIRED_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_CAS_I_CLOSE on ACT_HI_CASEINST(CLOSE_TIME_);
+create index ACT_IDX_HI_CAS_I_BUSKEY on ACT_HI_CASEINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_CAS_I_TENANT_ID on ACT_HI_CASEINST(TENANT_ID_);
+create index ACT_IDX_HI_CAS_A_I_CREATE on ACT_HI_CASEACTINST(CREATE_TIME_);
+create index ACT_IDX_HI_CAS_A_I_END on ACT_HI_CASEACTINST(END_TIME_);
+create index ACT_IDX_HI_CAS_A_I_COMP on ACT_HI_CASEACTINST(CASE_ACT_ID_, END_TIME_, ID_);
+create index ACT_IDX_HI_CAS_A_I_TENANT_ID on ACT_HI_CASEACTINST(TENANT_ID_);
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql
new file mode 100644
index 00000000000..54a66294ff3
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.engine.sql
@@ -0,0 +1,58 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+-- create decision definition table --
+create table ACT_RE_DECISION_DEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ lvarchar(4000),
+ DGRM_RESOURCE_NAME_ lvarchar(4000),
+ DEC_REQ_ID_ varchar(64),
+ DEC_REQ_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ HISTORY_TTL_ integer,
+ VERSION_TAG_ varchar(64),
+ primary key(ID_)
+);
+
+-- create decision requirements definition table --
+create table ACT_RE_DECISION_REQ_DEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ lvarchar(4000),
+ DGRM_RESOURCE_NAME_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+alter table ACT_RE_DECISION_DEF
+ add constraint foreign key (DEC_REQ_ID_)
+ references ACT_RE_DECISION_REQ_DEF(ID_)
+ constraint ACT_FK_DEC_REQ;
+
+create index ACT_IDX_DEC_DEF_TENANT_ID on ACT_RE_DECISION_DEF(TENANT_ID_);
+-- create index ACT_IDX_DEC_DEF_REQ_ID on ACT_RE_DECISION_DEF(DEC_REQ_ID_);
+create index ACT_IDX_DEC_REQ_DEF_TENANT_ID on ACT_RE_DECISION_REQ_DEF(TENANT_ID_);
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql
new file mode 100644
index 00000000000..c2490424b38
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.decision.history.sql
@@ -0,0 +1,107 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+-- create history decision instance table --
+create table ACT_HI_DECINST (
+ ID_ varchar(64) not null,
+ DEC_DEF_ID_ varchar(64) not null,
+ DEC_DEF_KEY_ varchar(255) not null,
+ DEC_DEF_NAME_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ EVAL_TIME_ datetime year to fraction(5) not null,
+ REMOVAL_TIME_ datetime year to fraction(5),
+ COLLECT_VALUE_ double precision,
+ USER_ID_ varchar(255),
+ ROOT_DEC_INST_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ DEC_REQ_ID_ varchar(64),
+ DEC_REQ_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+-- create history decision input table --
+create table ACT_HI_DEC_IN (
+ ID_ varchar(64) not null,
+ DEC_INST_ID_ varchar(64) not null,
+ CLAUSE_ID_ varchar(64),
+ CLAUSE_NAME_ varchar(255),
+ VAR_TYPE_ varchar(100),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double precision,
+ LONG_ bigint,
+ TEXT_ lvarchar(4000),
+ TEXT2_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ CREATE_TIME_ datetime year to fraction(5),
+ ROOT_PROC_INST_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+-- create history decision output table --
+create table ACT_HI_DEC_OUT (
+ ID_ varchar(64) not null,
+ DEC_INST_ID_ varchar(64) not null,
+ CLAUSE_ID_ varchar(64),
+ CLAUSE_NAME_ varchar(255),
+ RULE_ID_ varchar(64),
+ RULE_ORDER_ integer,
+ VAR_NAME_ varchar(255),
+ VAR_TYPE_ varchar(100),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double precision,
+ LONG_ bigint,
+ TEXT_ lvarchar(4000),
+ TEXT2_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ CREATE_TIME_ datetime year to fraction(5),
+ ROOT_PROC_INST_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+
+create index ACT_IDX_HI_DEC_INST_ID on ACT_HI_DECINST(DEC_DEF_ID_);
+create index ACT_IDX_HI_DEC_INST_KEY on ACT_HI_DECINST(DEC_DEF_KEY_);
+create index ACT_IDX_HI_DEC_INST_PI on ACT_HI_DECINST(PROC_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_CI on ACT_HI_DECINST(CASE_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_ACT on ACT_HI_DECINST(ACT_ID_);
+create index ACT_IDX_HI_DEC_INST_ACT_INST on ACT_HI_DECINST(ACT_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_TIME on ACT_HI_DECINST(EVAL_TIME_);
+create index ACT_IDX_HI_DEC_INST_TENANT_ID on ACT_HI_DECINST(TENANT_ID_);
+create index ACT_IDX_HI_DEC_INST_ROOT_ID on ACT_HI_DECINST(ROOT_DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_REQ_ID on ACT_HI_DECINST(DEC_REQ_ID_);
+create index ACT_IDX_HI_DEC_INST_REQ_KEY on ACT_HI_DECINST(DEC_REQ_KEY_);
+create index ACT_IDX_HI_DEC_INST_ROOT_PI on ACT_HI_DECINST(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_DEC_INST_RM_TIME on ACT_HI_DECINST(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_DEC_IN_INST on ACT_HI_DEC_IN(DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_IN_CLAUSE on ACT_HI_DEC_IN(DEC_INST_ID_, CLAUSE_ID_);
+create index ACT_IDX_HI_DEC_IN_ROOT_PI on ACT_HI_DEC_IN(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_DEC_IN_RM_TIME on ACT_HI_DEC_IN(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_DEC_OUT_INST on ACT_HI_DEC_OUT(DEC_INST_ID_);
+create index ACT_IDX_HI_DEC_OUT_RULE on ACT_HI_DEC_OUT(RULE_ORDER_, CLAUSE_ID_);
+create index ACT_IDX_HI_DEC_OUT_ROOT_PI on ACT_HI_DEC_OUT(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_DEC_OUT_RM_TIME on ACT_HI_DEC_OUT(REMOVAL_TIME_);
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql
new file mode 100644
index 00000000000..9fce7b041ae
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.engine.sql
@@ -0,0 +1,529 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+create table ACT_GE_PROPERTY (
+ NAME_ varchar(64) not null,
+ VALUE_ varchar(255),
+ REV_ integer,
+ primary key (NAME_)
+);
+
+insert into ACT_GE_PROPERTY
+values ('schema.version', 'fox', 1);
+
+insert into ACT_GE_PROPERTY
+values ('schema.history', 'create(fox)', 1);
+
+insert into ACT_GE_PROPERTY
+values ('next.dbid', '1', 1);
+
+insert into ACT_GE_PROPERTY
+values ('deployment.lock', '0', 1);
+
+insert into ACT_GE_PROPERTY
+values ('history.cleanup.job.lock', '0', 1);
+
+insert into ACT_GE_PROPERTY
+values ('startup.lock', '0', 1);
+
+create table ACT_GE_BYTEARRAY (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ NAME_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ BYTES_ byte,
+ GENERATED_ boolean,
+ TENANT_ID_ varchar(64),
+ TYPE_ integer,
+ CREATE_TIME_ datetime year to fraction(5),
+ ROOT_PROC_INST_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_RE_DEPLOYMENT (
+ ID_ varchar(64) not null,
+ NAME_ varchar(255),
+ DEPLOY_TIME_ datetime year to fraction(5),
+ SOURCE_ varchar(255),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_EXECUTION (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ BUSINESS_KEY_ varchar(255),
+ PARENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ SUPER_EXEC_ varchar(64),
+ SUPER_CASE_EXEC_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ IS_ACTIVE_ boolean,
+ IS_CONCURRENT_ boolean,
+ IS_SCOPE_ boolean,
+ IS_EVENT_SCOPE_ boolean,
+ SUSPENSION_STATE_ integer,
+ CACHED_ENT_STATE_ integer,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_JOB (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(255) not null,
+ LOCK_EXP_TIME_ datetime year to fraction(5),
+ LOCK_OWNER_ varchar(255),
+ EXCLUSIVE_ boolean,
+ EXECUTION_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROCESS_DEF_ID_ varchar(64),
+ PROCESS_DEF_KEY_ varchar(255),
+ RETRIES_ integer,
+ EXCEPTION_STACK_ID_ varchar(64),
+ EXCEPTION_MSG_ lvarchar(4000),
+ DUEDATE_ datetime year to fraction(5),
+ REPEAT_ varchar(255),
+ HANDLER_TYPE_ varchar(255),
+ HANDLER_CFG_ lvarchar(4000),
+ DEPLOYMENT_ID_ varchar(64),
+ SUSPENSION_STATE_ integer not null default 1,
+ JOB_DEF_ID_ varchar(64),
+ PRIORITY_ bigint not null default 0,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ CREATE_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_RU_JOBDEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ ACT_ID_ varchar(255),
+ JOB_TYPE_ varchar(255) not null,
+ JOB_CONFIGURATION_ varchar(255),
+ SUSPENSION_STATE_ integer,
+ JOB_PRIORITY_ bigint,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RE_PROCDEF (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ CATEGORY_ varchar(255),
+ NAME_ varchar(255),
+ KEY_ varchar(255) not null,
+ VERSION_ integer not null,
+ DEPLOYMENT_ID_ varchar(64),
+ RESOURCE_NAME_ lvarchar(4000),
+ DGRM_RESOURCE_NAME_ lvarchar(4000),
+ HAS_START_FORM_KEY_ boolean,
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ VERSION_TAG_ varchar(64),
+ HISTORY_TTL_ integer,
+ STARTABLE_ boolean not null default 't',
+ primary key (ID_)
+);
+
+create table ACT_RU_TASK (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ lvarchar(4000),
+ TASK_DEF_KEY_ varchar(255),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ DELEGATION_ varchar(64),
+ PRIORITY_ integer,
+ CREATE_TIME_ datetime year to fraction(5),
+ DUE_DATE_ datetime year to fraction(5),
+ FOLLOW_UP_DATE_ datetime year to fraction(5),
+ SUSPENSION_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_IDENTITYLINK (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ GROUP_ID_ varchar(255),
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_VARIABLE (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double precision,
+ LONG_ bigint,
+ TEXT_ lvarchar(4000),
+ TEXT2_ lvarchar(4000),
+ VAR_SCOPE_ varchar(64) not null,
+ SEQUENCE_COUNTER_ bigint,
+ IS_CONCURRENT_LOCAL_ boolean,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_EVENT_SUBSCR (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ EVENT_TYPE_ varchar(255) not null,
+ EVENT_NAME_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(255),
+ CONFIGURATION_ varchar(255),
+ CREATED_ datetime year to fraction(5) not null,
+ TENANT_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_INCIDENT (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ INCIDENT_TIMESTAMP_ datetime year to fraction(5) not null,
+ INCIDENT_MSG_ lvarchar(4000),
+ INCIDENT_TYPE_ varchar(255) not null,
+ EXECUTION_ID_ varchar(64),
+ ACTIVITY_ID_ varchar(255),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ CAUSE_INCIDENT_ID_ varchar(64),
+ ROOT_CAUSE_INCIDENT_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ TENANT_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_RU_AUTHORIZATION (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ TYPE_ integer not null,
+ GROUP_ID_ varchar(255),
+ USER_ID_ varchar(255),
+ RESOURCE_TYPE_ integer not null,
+ RESOURCE_ID_ varchar(255),
+ PERMS_ integer,
+ primary key (ID_)
+);
+
+create table ACT_RU_FILTER (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ RESOURCE_TYPE_ varchar(255) not null,
+ NAME_ varchar(255) not null,
+ OWNER_ varchar(255),
+ QUERY_ text not null,
+ PROPERTIES_ text,
+ primary key (ID_)
+);
+
+create table ACT_RU_METER_LOG (
+ ID_ varchar(64) not null,
+ NAME_ varchar(64) not null,
+ REPORTER_ varchar(255),
+ VALUE_ bigint,
+ TIMESTAMP_ datetime year to fraction(5),
+ MILLISECONDS_ bigint default 0,
+ primary key (ID_)
+);
+
+create table ACT_RU_EXT_TASK (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ WORKER_ID_ varchar(255),
+ TOPIC_NAME_ varchar(255),
+ RETRIES_ integer,
+ ERROR_MSG_ lvarchar(4000),
+ ERROR_DETAILS_ID_ varchar(64),
+ LOCK_EXP_TIME_ datetime year to fraction(5),
+ SUSPENSION_STATE_ integer,
+ EXECUTION_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ ACT_ID_ varchar(255),
+ ACT_INST_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ PRIORITY_ bigint not null default 0,
+ primary key (ID_)
+);
+
+create table ACT_RU_BATCH (
+ ID_ varchar(64) not null,
+ REV_ integer not null,
+ TYPE_ varchar(255),
+ TOTAL_JOBS_ integer,
+ JOBS_CREATED_ integer,
+ JOBS_PER_SEED_ integer,
+ INVOCATIONS_PER_JOB_ integer,
+ SEED_JOB_DEF_ID_ varchar(64),
+ BATCH_JOB_DEF_ID_ varchar(64),
+ MONITOR_JOB_DEF_ID_ varchar(64),
+ SUSPENSION_STATE_ integer,
+ CONFIGURATION_ varchar(255),
+ TENANT_ID_ varchar(64),
+ CREATE_USER_ID_ varchar(255),
+ primary key (ID_)
+);
+
+create index ACT_IDX_EXECUTION_ROOT_PI on ACT_RU_EXECUTION(ROOT_PROC_INST_ID_);
+create index ACT_IDX_EXEC_BUSKEY on ACT_RU_EXECUTION(BUSINESS_KEY_);
+create index ACT_IDX_EXEC_TENANT_ID on ACT_RU_EXECUTION(TENANT_ID_);
+create index ACT_IDX_TASK_CREATE on ACT_RU_TASK(CREATE_TIME_);
+create index ACT_IDX_TASK_ASSIGNEE on ACT_RU_TASK(ASSIGNEE_);
+create index ACT_IDX_TASK_TENANT_ID on ACT_RU_TASK(TENANT_ID_);
+create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_EVENT_SUBSCR_CONFIG_ on ACT_RU_EVENT_SUBSCR(CONFIGURATION_);
+create index ACT_IDX_EVENT_SUBSCR_TENANT_ID on ACT_RU_EVENT_SUBSCR(TENANT_ID_);
+create index ACT_IDX_VARIABLE_TASK_ID on ACT_RU_VARIABLE(TASK_ID_);
+create index ACT_IDX_VARIABLE_TENANT_ID on ACT_RU_VARIABLE(TENANT_ID_);
+create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK(PROC_DEF_ID_);
+create index ACT_IDX_INC_CONFIGURATION on ACT_RU_INCIDENT(CONFIGURATION_);
+create index ACT_IDX_INC_TENANT_ID on ACT_RU_INCIDENT(TENANT_ID_);
+-- CAM-5914
+create index ACT_IDX_JOB_EXECUTION_ID on ACT_RU_JOB(EXECUTION_ID_);
+-- create index ACT_IDX_JOB_HANDLER on ACT_RU_JOB(HANDLER_TYPE_,HANDLER_CFG_);
+create index ACT_IDX_JOB_PROCINST on ACT_RU_JOB(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_JOB_TENANT_ID on ACT_RU_JOB(TENANT_ID_);
+create index ACT_IDX_JOBDEF_TENANT_ID on ACT_RU_JOBDEF(TENANT_ID_);
+create index ACT_IDX_JOB_JOB_DEF_ID on ACT_RU_JOB(JOB_DEF_ID_);
+
+-- new metric milliseconds column
+create index ACT_IDX_METER_LOG_MS on ACT_RU_METER_LOG(MILLISECONDS_);
+create index ACT_IDX_METER_LOG_NAME_MS on ACT_RU_METER_LOG(NAME_, MILLISECONDS_);
+create index ACT_IDX_METER_LOG_REPORT on ACT_RU_METER_LOG(NAME_, REPORTER_, MILLISECONDS_);
+
+-- old metric timestamp column
+create index ACT_IDX_METER_LOG_TIME on ACT_RU_METER_LOG(TIMESTAMP_);
+create index ACT_IDX_METER_LOG on ACT_RU_METER_LOG(NAME_, TIMESTAMP_);
+
+create index ACT_IDX_EXT_TASK_TOPIC on ACT_RU_EXT_TASK(TOPIC_NAME_);
+create index ACT_IDX_EXT_TASK_TENANT_ID on ACT_RU_EXT_TASK(TENANT_ID_);
+create index ACT_IDX_EXT_TASK_PRIORITY on ACT_RU_EXT_TASK(PRIORITY_);
+create index ACT_IDX_EXT_TASK_ERR_DETAILS on ACT_RU_EXT_TASK(ERROR_DETAILS_ID_);
+create index ACT_IDX_AUTH_GROUP_ID on ACT_RU_AUTHORIZATION(GROUP_ID_);
+
+create function ACT_FCT_USER_ID_OR_ID_(USER_ID_ varchar(255),ID_ varchar(64)) returning varchar(255) with (not variant); return nvl(USER_ID_,ID_); end function;
+create function ACT_FCT_GROUP_ID_OR_ID_(GROUP_ID_ varchar(255),ID_ varchar(64)) returning varchar(255) with (not variant); return nvl(GROUP_ID_,ID_); end function;
+create function ACT_FCT_RESOURCE_ID_OR_ID_(RESOURCE_ID_ varchar(64),ID_ varchar(64)) returning varchar(64) with (not variant); return nvl(RESOURCE_ID_,ID_); end function;
+
+create unique index ACT_UNIQ_AUTH_USER on ACT_RU_AUTHORIZATION(TYPE_,ACT_FCT_USER_ID_OR_ID_(USER_ID_,ID_),RESOURCE_TYPE_,ACT_FCT_RESOURCE_ID_OR_ID_(RESOURCE_ID_,ID_));
+create unique index ACT_UNIQ_AUTH_GROUP on ACT_RU_AUTHORIZATION(TYPE_,ACT_FCT_GROUP_ID_OR_ID_(GROUP_ID_,ID_),RESOURCE_TYPE_,ACT_FCT_RESOURCE_ID_OR_ID_(RESOURCE_ID_,ID_));
+create unique index ACT_UNIQ_VARIABLE on ACT_RU_VARIABLE(VAR_SCOPE_,NAME_);
+
+alter table ACT_GE_BYTEARRAY
+ add constraint foreign key (DEPLOYMENT_ID_)
+ references ACT_RE_DEPLOYMENT (ID_)
+ constraint ACT_FK_BYTEARR_DEPL;
+
+alter table ACT_RU_EXECUTION
+ add constraint foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_EXE_PROCINST;
+
+alter table ACT_RU_EXECUTION
+ add constraint foreign key (PARENT_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_EXE_PARENT;
+
+alter table ACT_RU_EXECUTION
+ add constraint foreign key (SUPER_EXEC_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_EXE_SUPER;
+
+alter table ACT_RU_EXECUTION
+ add constraint foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_)
+ constraint ACT_FK_EXE_PROCDEF;
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint foreign key (TASK_ID_)
+ references ACT_RU_TASK (ID_)
+ constraint ACT_FK_TSKASS_TASK;
+
+alter table ACT_RU_IDENTITYLINK
+ add constraint foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_)
+ constraint ACT_FK_ATHRZ_PROCEDEF;
+
+alter table ACT_RU_TASK
+ add constraint foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_TASK_EXE;
+
+alter table ACT_RU_TASK
+ add constraint foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_TASK_PROCINST;
+
+alter table ACT_RU_TASK
+ add constraint foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_)
+ constraint ACT_FK_TASK_PROCDEF;
+
+alter table ACT_RU_VARIABLE
+ add constraint foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_VAR_EXE;
+
+alter table ACT_RU_VARIABLE
+ add constraint foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION(ID_)
+ constraint ACT_FK_VAR_PROCINST;
+
+alter table ACT_RU_VARIABLE
+ add constraint foreign key (BYTEARRAY_ID_)
+ references ACT_GE_BYTEARRAY (ID_)
+ constraint ACT_FK_VAR_BYTEARRAY;
+
+alter table ACT_RU_JOB
+ add constraint foreign key (EXCEPTION_STACK_ID_)
+ references ACT_GE_BYTEARRAY (ID_)
+ constraint ACT_FK_JOB_EXCEPTION;
+
+alter table ACT_RU_EVENT_SUBSCR
+ add constraint foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION(ID_)
+ constraint ACT_FK_EVENT_EXEC;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_INC_EXE;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (PROC_INST_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_INC_PROCINST;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (PROC_DEF_ID_)
+ references ACT_RE_PROCDEF (ID_)
+ constraint ACT_FK_INC_PROCDEF;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (CAUSE_INCIDENT_ID_)
+ references ACT_RU_INCIDENT (ID_)
+ constraint ACT_FK_INC_CAUSE;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (ROOT_CAUSE_INCIDENT_ID_)
+ references ACT_RU_INCIDENT (ID_)
+ constraint ACT_FK_INC_RCAUSE;
+
+alter table ACT_RU_INCIDENT
+ add constraint foreign key (JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_)
+ constraint ACT_FK_INC_JOB_DEF;
+
+alter table ACT_RU_EXT_TASK
+ add constraint foreign key (EXECUTION_ID_)
+ references ACT_RU_EXECUTION (ID_)
+ constraint ACT_FK_EXT_TASK_EXE;
+
+alter table ACT_RU_EXT_TASK
+ add constraint foreign key (ERROR_DETAILS_ID_)
+ references ACT_GE_BYTEARRAY (ID_)
+ constraint ACT_FK_EXT_TASK_ERROR_DETAILS;
+
+alter table ACT_RU_BATCH
+ add constraint foreign key (SEED_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_)
+ constraint ACT_FK_BATCH_SEED_JOB_DEF;
+
+alter table ACT_RU_BATCH
+ add constraint foreign key (MONITOR_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_)
+ constraint ACT_FK_BATCH_MONITOR_JOB_DEF;
+
+alter table ACT_RU_BATCH
+ add constraint foreign key (BATCH_JOB_DEF_ID_)
+ references ACT_RU_JOBDEF (ID_)
+ constraint ACT_FK_BATCH_JOB_DEF;
+
+-- indexes for concurrency problems - https://app.camunda.com/jira/browse/CAM-1646 --
+-- create index ACT_IDX_EXECUTION_PROC on ACT_RU_EXECUTION(PROC_DEF_ID_);
+-- create index ACT_IDX_EXECUTION_PARENT on ACT_RU_EXECUTION(PARENT_ID_);
+-- create index ACT_IDX_EXECUTION_SUPER on ACT_RU_EXECUTION(SUPER_EXEC_);
+-- create index ACT_IDX_EXECUTION_PROCINST on ACT_RU_EXECUTION(PROC_INST_ID_);
+-- create index ACT_IDX_EVENT_SUBSCR_EXEC on ACT_RU_EVENT_SUBSCR(EXECUTION_ID_);
+-- create index ACT_IDX_BA_DEPLOYMENT on ACT_GE_BYTEARRAY(DEPLOYMENT_ID_);
+-- create index ACT_IDX_IDENT_LNK_TASK on ACT_RU_IDENTITYLINK(TASK_ID_);
+-- create index ACT_IDX_INCIDENT_EXEC on ACT_RU_INCIDENT(EXECUTION_ID_);
+-- create index ACT_IDX_INCIDENT_PROCINST on ACT_RU_INCIDENT(PROC_INST_ID_);
+-- create index ACT_IDX_INCIDENT_PROC_DEF_ID on ACT_RU_INCIDENT(PROC_DEF_ID_);
+-- create index ACT_IDX_INCIDENT_CAUSE on ACT_RU_INCIDENT(CAUSE_INCIDENT_ID_);
+-- create index ACT_IDX_INCIDENT_ROOT_CAUSE on ACT_RU_INCIDENT(ROOT_CAUSE_INCIDENT_ID_);
+-- create index ACT_IDX_JOB_EXCEPTION_STACK on ACT_RU_JOB(EXCEPTION_STACK_ID_);
+-- create index ACT_IDX_VARIABLE_BA on ACT_RU_VARIABLE(BYTEARRAY_ID_);
+-- create index ACT_IDX_VARIABLE_EXEC on ACT_RU_VARIABLE(EXECUTION_ID_);
+-- create index ACT_IDX_VARIABLE_PROCINST on ACT_RU_VARIABLE(PROC_INST_ID_);
+-- create index ACT_IDX_TASK_EXEC on ACT_RU_TASK(EXECUTION_ID_);
+-- create index ACT_IDX_TASK_PROCINST on ACT_RU_TASK(PROC_INST_ID_);
+-- create index ACT_IDX_TASK_PROC_DEF_ID on ACT_RU_TASK(PROC_DEF_ID_);
+-- index for deadlock problem - https://app.camunda.com/jira/browse/CAM-4440 --
+create index ACT_IDX_AUTH_RESOURCE_ID on ACT_RU_AUTHORIZATION(RESOURCE_ID_);
+-- index to prevent deadlock on fk constraint - https://app.camunda.com/jira/browse/CAM-5440 --
+-- create index ACT_IDX_EXT_TASK_EXEC on ACT_RU_EXT_TASK(EXECUTION_ID_);
+
+
+-- indexes to improve deployment
+create index ACT_IDX_BYTEARRAY_ROOT_PI on ACT_GE_BYTEARRAY(ROOT_PROC_INST_ID_);
+create index ACT_IDX_BYTEARRAY_RM_TIME on ACT_GE_BYTEARRAY(REMOVAL_TIME_);
+create index ACT_IDX_BYTEARRAY_NAME on ACT_GE_BYTEARRAY(NAME_);
+create index ACT_IDX_DEPLOYMENT_NAME on ACT_RE_DEPLOYMENT(NAME_);
+create index ACT_IDX_DEPLOYMENT_TENANT_ID on ACT_RE_DEPLOYMENT(TENANT_ID_);
+create index ACT_IDX_JOBDEF_PROC_DEF_ID on ACT_RU_JOBDEF(PROC_DEF_ID_);
+create index ACT_IDX_JOB_HANDLER_TYPE on ACT_RU_JOB(HANDLER_TYPE_);
+create index ACT_IDX_EVENT_SUBSCR_EVT_NAME on ACT_RU_EVENT_SUBSCR(EVENT_NAME_);
+create index ACT_IDX_PROCDEF_DEPLOYMENT_ID on ACT_RE_PROCDEF(DEPLOYMENT_ID_);
+create index ACT_IDX_PROCDEF_TENANT_ID on ACT_RE_PROCDEF(TENANT_ID_);
+create index ACT_IDX_PROCDEF_VER_TAG on ACT_RE_PROCDEF(VERSION_TAG_);
+
+create function MINUTE ( param1 datetime year to fraction ) returning integer; define rv integer; select to_char(param1, "%M" )::int into rv from sysmaster:sysdual; return rv; end function;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql
new file mode 100644
index 00000000000..5c46616eb13
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.history.sql
@@ -0,0 +1,424 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+create table ACT_HI_PROCINST (
+ ID_ varchar(64) not null,
+ PROC_INST_ID_ varchar(64) not null,
+ BUSINESS_KEY_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ START_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ DURATION_ bigint,
+ START_USER_ID_ varchar(255),
+ START_ACT_ID_ varchar(255),
+ END_ACT_ID_ varchar(255),
+ SUPER_PROCESS_INSTANCE_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ SUPER_CASE_INSTANCE_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ DELETE_REASON_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ STATE_ varchar(255),
+ primary key (ID_)
+);
+
+alter table ACT_HI_PROCINST add constraint unique(PROC_INST_ID_) constraint PROC_INST_ID_;
+
+create table ACT_HI_ACTINST (
+ ID_ varchar(64) not null,
+ PARENT_ACT_INST_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64) not null,
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64) not null,
+ EXECUTION_ID_ varchar(64) not null,
+ ACT_ID_ varchar(255) not null,
+ TASK_ID_ varchar(64),
+ CALL_PROC_INST_ID_ varchar(64),
+ CALL_CASE_INST_ID_ varchar(64),
+ ACT_NAME_ varchar(255),
+ ACT_TYPE_ varchar(255) not null,
+ ASSIGNEE_ varchar(64),
+ START_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ DURATION_ bigint,
+ ACT_INST_STATE_ integer,
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_TASKINST (
+ ID_ varchar(64) not null,
+ TASK_DEF_KEY_ varchar(255),
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ NAME_ varchar(255),
+ PARENT_TASK_ID_ varchar(64),
+ DESCRIPTION_ lvarchar(4000),
+ OWNER_ varchar(255),
+ ASSIGNEE_ varchar(255),
+ START_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ DURATION_ bigint,
+ DELETE_REASON_ lvarchar(4000),
+ PRIORITY_ integer,
+ DUE_DATE_ datetime year to fraction(5),
+ FOLLOW_UP_DATE_ datetime year to fraction(5),
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_VARINST (
+ ID_ varchar(64) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(100),
+ CREATE_TIME_ datetime year to fraction(5),
+ REV_ integer,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double precision,
+ LONG_ bigint,
+ TEXT_ lvarchar(4000),
+ TEXT2_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ STATE_ varchar(20),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_DETAIL (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_KEY_ varchar(255),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ ACT_INST_ID_ varchar(64),
+ VAR_INST_ID_ varchar(64),
+ NAME_ varchar(255) not null,
+ VAR_TYPE_ varchar(255),
+ REV_ integer,
+ TIME_ datetime year to fraction(5) not null,
+ BYTEARRAY_ID_ varchar(64),
+ DOUBLE_ double precision,
+ LONG_ bigint,
+ TEXT_ lvarchar(4000),
+ TEXT2_ lvarchar(4000),
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ OPERATION_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_IDENTITYLINK (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ datetime year to fraction(5) not null,
+ TYPE_ varchar(255),
+ USER_ID_ varchar(255),
+ GROUP_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ OPERATION_TYPE_ varchar(64),
+ ASSIGNER_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_COMMENT (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TIME_ datetime year to fraction(5) not null,
+ USER_ID_ varchar(255),
+ TASK_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ ACTION_ varchar(255),
+ MESSAGE_ lvarchar(4000),
+ FULL_MSG_ byte,
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_ATTACHMENT (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ USER_ID_ varchar(255),
+ NAME_ varchar(255),
+ DESCRIPTION_ lvarchar(4000),
+ TYPE_ varchar(255),
+ TASK_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ URL_ lvarchar(4000),
+ CONTENT_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ CREATE_TIME_ datetime year to fraction(5),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_OP_LOG (
+ ID_ varchar(64) not null,
+ DEPLOYMENT_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CASE_DEF_ID_ varchar(64),
+ CASE_INST_ID_ varchar(64),
+ CASE_EXECUTION_ID_ varchar(64),
+ TASK_ID_ varchar(64),
+ JOB_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ BATCH_ID_ varchar(64),
+ USER_ID_ varchar(255),
+ TIMESTAMP_ datetime year to fraction(5) not null,
+ OPERATION_TYPE_ varchar(255),
+ OPERATION_ID_ varchar(64),
+ ENTITY_TYPE_ varchar(30),
+ PROPERTY_ varchar(64),
+ ORG_VALUE_ lvarchar(4000),
+ NEW_VALUE_ lvarchar(4000),
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_INCIDENT (
+ ID_ varchar(64) not null,
+ PROC_DEF_KEY_ varchar(255),
+ PROC_DEF_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ CREATE_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ INCIDENT_MSG_ lvarchar(4000),
+ INCIDENT_TYPE_ varchar(255) not null,
+ ACTIVITY_ID_ varchar(255),
+ CAUSE_INCIDENT_ID_ varchar(64),
+ ROOT_CAUSE_INCIDENT_ID_ varchar(64),
+ CONFIGURATION_ varchar(255),
+ INCIDENT_STATE_ integer,
+ TENANT_ID_ varchar(64),
+ JOB_DEF_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_JOB_LOG (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ datetime year to fraction(5) not null,
+ JOB_ID_ varchar(64) not null,
+ JOB_DUEDATE_ datetime year to fraction(5),
+ JOB_RETRIES_ integer,
+ JOB_PRIORITY_ bigint not null default 0,
+ JOB_EXCEPTION_MSG_ lvarchar(4000),
+ JOB_EXCEPTION_STACK_ID_ varchar(64),
+ JOB_STATE_ integer,
+ JOB_DEF_ID_ varchar(64),
+ JOB_DEF_TYPE_ varchar(255),
+ JOB_DEF_CONFIGURATION_ varchar(255),
+ ACT_ID_ varchar(255),
+ EXECUTION_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROCESS_INSTANCE_ID_ varchar(64),
+ PROCESS_DEF_ID_ varchar(64),
+ PROCESS_DEF_KEY_ varchar(255),
+ DEPLOYMENT_ID_ varchar(64),
+ SEQUENCE_COUNTER_ bigint,
+ TENANT_ID_ varchar(64),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_BATCH (
+ ID_ varchar(64) not null,
+ TYPE_ varchar(255),
+ TOTAL_JOBS_ integer,
+ JOBS_PER_SEED_ integer,
+ INVOCATIONS_PER_JOB_ integer,
+ SEED_JOB_DEF_ID_ varchar(64),
+ MONITOR_JOB_DEF_ID_ varchar(64),
+ BATCH_JOB_DEF_ID_ varchar(64),
+ TENANT_ID_ varchar(64),
+ CREATE_USER_ID_ varchar(255),
+ START_TIME_ datetime year to fraction(5) not null,
+ END_TIME_ datetime year to fraction(5),
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create table ACT_HI_EXT_TASK_LOG (
+ ID_ varchar(64) not null,
+ TIMESTAMP_ datetime year to fraction(5) not null,
+ EXT_TASK_ID_ varchar(64) not null,
+ RETRIES_ integer,
+ TOPIC_NAME_ varchar(255),
+ WORKER_ID_ varchar(255),
+ PRIORITY_ bigint not null default 0,
+ ERROR_MSG_ lvarchar(4000),
+ ERROR_DETAILS_ID_ varchar(64),
+ ACT_ID_ varchar(255),
+ ACT_INST_ID_ varchar(64),
+ EXECUTION_ID_ varchar(64),
+ ROOT_PROC_INST_ID_ varchar(64),
+ PROC_INST_ID_ varchar(64),
+ PROC_DEF_ID_ varchar(64),
+ PROC_DEF_KEY_ varchar(255),
+ TENANT_ID_ varchar(64),
+ STATE_ integer,
+ REMOVAL_TIME_ datetime year to fraction(5),
+ primary key (ID_)
+);
+
+create index ACT_IDX_HI_PRO_INST_END on ACT_HI_PROCINST(END_TIME_);
+create index ACT_IDX_HI_PRO_I_BUSKEY on ACT_HI_PROCINST(BUSINESS_KEY_);
+create index ACT_IDX_HI_PRO_INST_TENANT_ID on ACT_HI_PROCINST(TENANT_ID_);
+create index ACT_IDX_HI_PRO_INST_PROC_DEF_KEY on ACT_HI_PROCINST(PROC_DEF_KEY_);
+create index ACT_IDX_HI_PRO_INST_PROC_TIME on ACT_HI_PROCINST(START_TIME_, END_TIME_);
+create index ACT_IDX_HI_PI_PDEFID_END_TIME on ACT_HI_PROCINST(PROC_DEF_ID_, END_TIME_);
+create index ACT_IDX_HI_PRO_INST_ROOT_PI on ACT_HI_PROCINST(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_PRO_INST_RM_TIME on ACT_HI_PROCINST(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_ACTINST_ROOT_PI on ACT_HI_ACTINST(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_ACT_INST_START on ACT_HI_ACTINST(START_TIME_);
+create index ACT_IDX_HI_ACT_INST_END on ACT_HI_ACTINST(END_TIME_);
+create index ACT_IDX_HI_ACT_INST_PROCINST on ACT_HI_ACTINST(PROC_INST_ID_, ACT_ID_);
+create index ACT_IDX_HI_ACT_INST_COMP on ACT_HI_ACTINST(EXECUTION_ID_, ACT_ID_, END_TIME_); --, ID_);
+create index ACT_IDX_HI_ACT_INST_STATS on ACT_HI_ACTINST(PROC_DEF_ID_, PROC_INST_ID_, ACT_ID_); --, END_TIME_, ACT_INST_STATE_);
+create index ACT_IDX_HI_ACT_INST_TENANT_ID on ACT_HI_ACTINST(TENANT_ID_);
+create index ACT_IDX_HI_ACT_INST_PROC_DEF_KEY on ACT_HI_ACTINST(PROC_DEF_KEY_);
+create index ACT_IDX_HI_AI_PDEFID_END_TIME on ACT_HI_ACTINST(PROC_DEF_ID_, END_TIME_);
+create index ACT_IDX_HI_ACT_INST_RM_TIME on ACT_HI_ACTINST(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_TASKINST_ROOT_PI on ACT_HI_TASKINST(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_TASK_INST_TENANT_ID on ACT_HI_TASKINST(TENANT_ID_);
+create index ACT_IDX_HI_TASK_INST_PROC_DEF_KEY on ACT_HI_TASKINST(PROC_DEF_KEY_);
+create index ACT_IDX_HI_TASKINST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
+create index ACT_IDX_HI_TASKINSTID_PROCINST on ACT_HI_TASKINST(ID_,PROC_INST_ID_);
+create index ACT_IDX_HI_TASK_INST_RM_TIME on ACT_HI_TASKINST(REMOVAL_TIME_);
+create index ACT_IDX_HI_TASK_INST_START on ACT_HI_TASKINST(START_TIME_);
+create index ACT_IDX_HI_TASK_INST_END on ACT_HI_TASKINST(END_TIME_);
+
+create index ACT_IDX_HI_DETAIL_ROOT_PI on ACT_HI_DETAIL(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_PROC_INST on ACT_HI_DETAIL(PROC_INST_ID_);
+create index ACT_IDX_HI_DETAIL_ACT_INST on ACT_HI_DETAIL(ACT_INST_ID_);
+create index ACT_IDX_HI_DETAIL_CASE_INST on ACT_HI_DETAIL(CASE_INST_ID_);
+create index ACT_IDX_HI_DETAIL_CASE_EXEC on ACT_HI_DETAIL(CASE_EXECUTION_ID_);
+create index ACT_IDX_HI_DETAIL_TIME on ACT_HI_DETAIL(TIME_);
+create index ACT_IDX_HI_DETAIL_NAME on ACT_HI_DETAIL(NAME_);
+create index ACT_IDX_HI_DETAIL_TASK_ID on ACT_HI_DETAIL(TASK_ID_);
+create index ACT_IDX_HI_DETAIL_TENANT_ID on ACT_HI_DETAIL(TENANT_ID_);
+create index ACT_IDX_HI_DETAIL_PROC_DEF_KEY on ACT_HI_DETAIL(PROC_DEF_KEY_);
+create index ACT_IDX_HI_DETAIL_BYTEAR on ACT_HI_DETAIL(BYTEARRAY_ID_);
+create index ACT_IDX_HI_DETAIL_RM_TIME on ACT_HI_DETAIL(REMOVAL_TIME_);
+create index ACT_IDX_HI_DETAIL_TASK_BYTEAR on ACT_HI_DETAIL(BYTEARRAY_ID_, TASK_ID_);
+
+create index ACT_IDX_HI_IDENT_LNK_ROOT_PI on ACT_HI_IDENTITYLINK(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_IDENT_LNK_USER on ACT_HI_IDENTITYLINK(USER_ID_);
+create index ACT_IDX_HI_IDENT_LNK_GROUP on ACT_HI_IDENTITYLINK(GROUP_ID_);
+create index ACT_IDX_HI_IDENT_LNK_TENANT_ID on ACT_HI_IDENTITYLINK(TENANT_ID_);
+create index ACT_IDX_HI_IDENT_LNK_PROC_DEF_KEY on ACT_HI_IDENTITYLINK(PROC_DEF_KEY_);
+create index ACT_IDX_HI_IDENT_LINK_TASK on ACT_HI_IDENTITYLINK(TASK_ID_);
+create index ACT_IDX_HI_IDENT_LINK_RM_TIME on ACT_HI_IDENTITYLINK(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_VARINST_ROOT_PI on ACT_HI_VARINST(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_PROC_INST on ACT_HI_VARINST(PROC_INST_ID_);
+create index ACT_IDX_HI_PROCVAR_NAME_TYPE on ACT_HI_VARINST(NAME_, VAR_TYPE_);
+create index ACT_IDX_HI_CASEVAR_CASE_INST on ACT_HI_VARINST(CASE_INST_ID_);
+create index ACT_IDX_HI_VAR_INST_TENANT_ID on ACT_HI_VARINST(TENANT_ID_);
+create index ACT_IDX_HI_VAR_INST_PROC_DEF_KEY on ACT_HI_VARINST(PROC_DEF_KEY_);
+create index ACT_IDX_HI_VARINST_BYTEAR on ACT_HI_VARINST(BYTEARRAY_ID_);
+create index ACT_IDX_HI_VARINST_RM_TIME on ACT_HI_VARINST(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_INCIDENT_TENANT_ID on ACT_HI_INCIDENT(TENANT_ID_);
+create index ACT_IDX_HI_INCIDENT_PROC_DEF_KEY on ACT_HI_INCIDENT(PROC_DEF_KEY_);
+create index ACT_IDX_HI_INCIDENT_ROOT_PI on ACT_HI_INCIDENT(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_INCIDENT_PROCINST on ACT_HI_INCIDENT(PROC_INST_ID_);
+create index ACT_IDX_HI_INCIDENT_RM_TIME on ACT_HI_INCIDENT(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_JOB_LOG_ROOT_PI on ACT_HI_JOB_LOG(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_JOB_LOG_PROCINST on ACT_HI_JOB_LOG(PROCESS_INSTANCE_ID_);
+create index ACT_IDX_HI_JOB_LOG_PROCDEF on ACT_HI_JOB_LOG(PROCESS_DEF_ID_);
+create index ACT_IDX_HI_JOB_LOG_TENANT_ID on ACT_HI_JOB_LOG(TENANT_ID_);
+create index ACT_IDX_HI_JOB_LOG_JOB_DEF_ID on ACT_HI_JOB_LOG(JOB_DEF_ID_);
+create index ACT_IDX_HI_JOB_LOG_PROC_DEF_KEY on ACT_HI_JOB_LOG(PROCESS_DEF_KEY_);
+create index ACT_IDX_HI_JOB_LOG_EX_STACK on ACT_HI_JOB_LOG(JOB_EXCEPTION_STACK_ID_);
+create index ACT_IDX_HI_JOB_LOG_RM_TIME on ACT_HI_JOB_LOG(REMOVAL_TIME_);
+
+create index ACT_HI_BAT_RM_TIME on ACT_HI_BATCH(REMOVAL_TIME_);
+
+create index ACT_HI_EXT_TASK_LOG_ROOT_PI on ACT_HI_EXT_TASK_LOG(ROOT_PROC_INST_ID_);
+create index ACT_HI_EXT_TASK_LOG_PROCINST on ACT_HI_EXT_TASK_LOG(PROC_INST_ID_);
+create index ACT_HI_EXT_TASK_LOG_PROCDEF on ACT_HI_EXT_TASK_LOG(PROC_DEF_ID_);
+create index ACT_HI_EXT_TASK_LOG_PROC_DEF_KEY on ACT_HI_EXT_TASK_LOG(PROC_DEF_KEY_);
+create index ACT_HI_EXT_TASK_LOG_TENANT_ID on ACT_HI_EXT_TASK_LOG(TENANT_ID_);
+create index ACT_IDX_HI_EXTTASKLOG_ERRORDET on ACT_HI_EXT_TASK_LOG(ERROR_DETAILS_ID_);
+create index ACT_HI_EXT_TASK_LOG_RM_TIME on ACT_HI_EXT_TASK_LOG(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_OP_LOG_ROOT_PI on ACT_HI_OP_LOG(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_OP_LOG_PROCINST on ACT_HI_OP_LOG(PROC_INST_ID_);
+create index ACT_IDX_HI_OP_LOG_PROCDEF on ACT_HI_OP_LOG(PROC_DEF_ID_);
+create index ACT_IDX_HI_OP_LOG_TASK on ACT_HI_OP_LOG(TASK_ID_);
+create index ACT_IDX_HI_OP_LOG_RM_TIME on ACT_HI_OP_LOG(REMOVAL_TIME_);
+create index ACT_IDX_HI_OP_LOG_TIMESTAMP on ACT_HI_OP_LOG(TIMESTAMP_);
+
+create index ACT_IDX_HI_ATTACHMENT_CONTENT on ACT_HI_ATTACHMENT(CONTENT_ID_);
+create index ACT_IDX_HI_COMMENT_ROOT_PI on ACT_HI_COMMENT(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_ATTACHMENT_PROCINST on ACT_HI_ATTACHMENT(PROC_INST_ID_);
+create index ACT_IDX_HI_ATTACHMENT_TASK on ACT_HI_ATTACHMENT(TASK_ID_);
+create index ACT_IDX_HI_ATTACHMENT_RM_TIME on ACT_HI_ATTACHMENT(REMOVAL_TIME_);
+
+create index ACT_IDX_HI_COMMENT_TASK on ACT_HI_COMMENT(TASK_ID_);
+create index ACT_IDX_HI_ATTACHMENT_ROOT_PI on ACT_HI_ATTACHMENT(ROOT_PROC_INST_ID_);
+create index ACT_IDX_HI_COMMENT_PROCINST on ACT_HI_COMMENT(PROC_INST_ID_);
+create index ACT_IDX_HI_COMMENT_RM_TIME on ACT_HI_COMMENT(REMOVAL_TIME_);
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql
new file mode 100644
index 00000000000..9eaf5a4bd10
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/create/activiti.informix.create.identity.sql
@@ -0,0 +1,98 @@
+--
+-- Copyright © 2012 - 2018 camunda services GmbH and various authors (info@camunda.com)
+--
+-- 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.
+--
+
+create table ACT_ID_GROUP (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ NAME_ varchar(255),
+ TYPE_ varchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_MEMBERSHIP (
+ USER_ID_ varchar(64) not null,
+ GROUP_ID_ varchar(64) not null,
+ primary key (USER_ID_, GROUP_ID_)
+);
+
+create table ACT_ID_USER (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ FIRST_ varchar(255),
+ LAST_ varchar(255),
+ EMAIL_ varchar(255),
+ PWD_ varchar(255),
+ SALT_ varchar(255),
+ LOCK_EXP_TIME_ datetime year to fraction(5),
+ ATTEMPTS_ integer,
+ PICTURE_ID_ varchar(64),
+ primary key (ID_)
+);
+
+create table ACT_ID_INFO (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ USER_ID_ varchar(64),
+ TYPE_ varchar(64),
+ KEY_ varchar(255),
+ VALUE_ varchar(255),
+ PASSWORD_ byte,
+ PARENT_ID_ varchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_TENANT (
+ ID_ varchar(64) not null,
+ REV_ integer,
+ NAME_ varchar(255),
+ primary key (ID_)
+);
+
+create table ACT_ID_TENANT_MEMBER (
+ ID_ varchar(64) not null,
+ TENANT_ID_ varchar(64) not null,
+ USER_ID_ varchar(64),
+ GROUP_ID_ varchar(64),
+ primary key (ID_)
+);
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint foreign key (GROUP_ID_)
+ references ACT_ID_GROUP(ID_)
+ constraint ACT_FK_MEMB_GROUP;
+
+alter table ACT_ID_MEMBERSHIP
+ add constraint foreign key (USER_ID_)
+ references ACT_ID_USER(ID_)
+ constraint ACT_FK_MEMB_USER;
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint foreign key (TENANT_ID_)
+ references ACT_ID_TENANT
+ constraint ACT_FK_TENANT_MEMB;
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint foreign key (USER_ID_)
+ references ACT_ID_USER
+ constraint ACT_FK_TENANT_MEMB_USER;
+
+alter table ACT_ID_TENANT_MEMBER
+ add constraint foreign key (GROUP_ID_)
+ references ACT_ID_GROUP
+ constraint ACT_FK_TENANT_MEMB_GROUP;
+
+create unique index ACT_UNIQ_TENANT_MEMB_USER on ACT_ID_TENANT_MEMBER(TENANT_ID_,ACT_FCT_USER_ID_OR_ID_(USER_ID_,ID_));
+create unique index ACT_UNIQ_TENANT_MEMB_GROUP on ACT_ID_TENANT_MEMBER(TENANT_ID_,ACT_FCT_GROUP_ID_OR_ID_(GROUP_ID_,ID_));
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.engine.sql
new file mode 100644
index 00000000000..c2f8508784b
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.engine.sql
@@ -0,0 +1,3 @@
+drop table ACT_RE_CASE_DEF;
+drop table ACT_RU_CASE_EXECUTION;
+drop table ACT_RU_CASE_SENTRY_PART;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.history.sql
new file mode 100644
index 00000000000..83d304362d6
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.case.history.sql
@@ -0,0 +1,2 @@
+drop table ACT_HI_CASEINST;
+drop table ACT_HI_CASEACTINST;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.engine.sql
new file mode 100644
index 00000000000..4694ce56d5b
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.engine.sql
@@ -0,0 +1,2 @@
+drop table ACT_RE_DECISION_DEF;
+drop table ACT_RE_DECISION_REQ_DEF;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.history.sql
new file mode 100644
index 00000000000..39f831b5ddd
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.decision.history.sql
@@ -0,0 +1,3 @@
+drop table ACT_HI_DECINST;
+drop table ACT_HI_DEC_IN;
+drop table ACT_HI_DEC_OUT;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.engine.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.engine.sql
new file mode 100644
index 00000000000..e4705af2f85
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.engine.sql
@@ -0,0 +1,20 @@
+drop table ACT_GE_PROPERTY;
+drop table ACT_GE_BYTEARRAY;
+drop table ACT_RE_DEPLOYMENT;
+drop table ACT_RE_PROCDEF;
+drop table ACT_RU_IDENTITYLINK;
+drop table ACT_RU_VARIABLE;
+drop table ACT_RU_TASK;
+drop table ACT_RU_EXECUTION;
+drop table ACT_RU_JOB;
+drop table ACT_RU_JOBDEF;
+drop table ACT_RU_EVENT_SUBSCR;
+drop table ACT_RU_INCIDENT;
+drop table ACT_RU_AUTHORIZATION;
+drop table ACT_RU_FILTER;
+drop table ACT_RU_METER_LOG;
+drop table ACT_RU_EXT_TASK;
+drop table ACT_RU_BATCH;
+
+drop function ACT_FCT_RESOURCE_ID_OR_ID_;
+drop function MINUTE;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.history.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.history.sql
new file mode 100644
index 00000000000..5f0916d6a71
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.history.sql
@@ -0,0 +1,13 @@
+drop table ACT_HI_PROCINST;
+drop table ACT_HI_ACTINST;
+drop table ACT_HI_VARINST;
+drop table ACT_HI_TASKINST;
+drop table ACT_HI_DETAIL;
+drop table ACT_HI_IDENTITYLINK;
+drop table ACT_HI_COMMENT;
+drop table ACT_HI_ATTACHMENT;
+drop table ACT_HI_OP_LOG;
+drop table ACT_HI_INCIDENT;
+drop table ACT_HI_JOB_LOG;
+drop table ACT_HI_BATCH;
+drop table ACT_HI_EXT_TASK_LOG;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.identity.sql b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.identity.sql
new file mode 100644
index 00000000000..991d6f10f75
--- /dev/null
+++ b/engine/src/main/resources/org/camunda/bpm/engine/db/drop/activiti.informix.drop.identity.sql
@@ -0,0 +1,9 @@
+drop table ACT_ID_TENANT_MEMBER;
+drop table ACT_ID_TENANT;
+drop table ACT_ID_INFO;
+drop table ACT_ID_GROUP;
+drop table ACT_ID_MEMBERSHIP;
+drop table ACT_ID_USER;
+
+drop function ACT_FCT_USER_ID_OR_ID_;
+drop function ACT_FCT_GROUP_ID_OR_ID_;
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml
index 060ce172990..6a8470e7eb8 100644
--- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml
+++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Attachment.xml
@@ -187,6 +187,15 @@
${limitAfterWithoutOffset})
+
+
+
+ delete from ${prefix}ACT_HI_ATTACHMENT
+ where REMOVAL_TIME_ <= #{parameter.removalTime}
+
+
+
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml
index 36c29f129a9..be660714cde 100644
--- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml
+++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Authorization.xml
@@ -297,7 +297,7 @@
and RES.RESOURCE_ID_ = #{resourceId}
- and ${bitand1}RES.PERMS_${bitand2}#{permission}${bitand3} = #{permission}
+ and ${bitand1}RES.PERMS_${bitand2}#{permission}${bitand3} = #{permission}
diff --git a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml
index b7ba6bd9d44..a4e31a4dea9 100644
--- a/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml
+++ b/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping/entity/Comment.xml
@@ -207,6 +207,15 @@
${limitAfterWithoutOffset})
+
+
+
+ com.ibm.informix.jdbc
+ ifxjdbc
+ runtime
+
org.python
diff --git a/qa/wildfly-runtime/src/main/common/modules/com/ibm/informix/jdbc/ifxjdbc/main/module.xml b/qa/wildfly-runtime/src/main/common/modules/com/ibm/informix/jdbc/ifxjdbc/main/module.xml
new file mode 100644
index 00000000000..74620fe9747
--- /dev/null
+++ b/qa/wildfly-runtime/src/main/common/modules/com/ibm/informix/jdbc/ifxjdbc/main/module.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/qa/wildfly-runtime/src/main/common/standalone/deployments/informix-xa-ds.xml b/qa/wildfly-runtime/src/main/common/standalone/deployments/informix-xa-ds.xml
new file mode 100644
index 00000000000..f45a3101389
--- /dev/null
+++ b/qa/wildfly-runtime/src/main/common/standalone/deployments/informix-xa-ds.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
+ h2
+
+ sa
+ sa
+
+
+
+
+ com.ibm.informix.jdbc
+ ${database.host}
+ ${database.port}
+ ${database.name}
+ ${database.server}
+ -1
+ 2U
+ 10
+ en_us.utf8
+ en_us.utf8
+
+ ${database.username}
+ ${database.password}
+
+
+ false
+ true
+
+
+ true
+ select 1 from sysmaster:sysdual
+
+
+
+ 128
+
+
+
diff --git a/qa/wildfly-runtime/src/main/wildfly/standalone/configuration/standalone.xml b/qa/wildfly-runtime/src/main/wildfly/standalone/configuration/standalone.xml
index 44e6b8da15e..9b2cb335850 100644
--- a/qa/wildfly-runtime/src/main/wildfly/standalone/configuration/standalone.xml
+++ b/qa/wildfly-runtime/src/main/wildfly/standalone/configuration/standalone.xml
@@ -161,6 +161,9 @@
org.postgresql.xa.PGXADataSource
+
+ com.informix.jdbcx.IfxXADataSource
+
diff --git a/webapps/pom.xml b/webapps/pom.xml
index 69112299eaf..02d962ff66b 100644
--- a/webapps/pom.xml
+++ b/webapps/pom.xml
@@ -331,7 +331,7 @@
org.codehaus.mojo
license-maven-plugin
- 1.14
+ 2.0.0
test