The current version of CXF uses a Derby database when Reliable messaging is turned on. However, we required use of ORACLE.
I had to make the following changes to to make the code database agnostic in RMTxStore: from "CUR_MSG_NO DECIMAL(31, 0) NOT NULL DEFAULT 1, " to "CUR_MSG_NO DECIMAL(31, 0) DEFAULT 1 NOT NULL, " Derby doesn't care about the order of NOT NULL / DEFAULT, Oracle does from "EXPIRY BIGINT, " to "EXPIRY DECIMAL(31, 0), " Oracle doesn't have BIGINT. DECIMAL is the one data type that seems to work across different DBs. from "X0Y32".equals(ex.getSQLState()) to "X0Y32".equals(ex.getSQLState()) || 955 == ex.getErrorCode() When checking for table creation (955 is the Oracle error code if the table already exists). Is this something that should be committed into the repository?