Commit Graph

135 Commits

Author SHA1 Message Date
Alexander Schwab bf8e075ee7
ARTEMIS-3830 add index on filename to large_messages 2022-05-23 11:53:44 -05:00
franz1981 101c0d2cd0 ARTEMIS-3679 Brokers shutdown after daylight saving fall back 2022-02-23 06:53:49 +01:00
franz1981 a4c311f368 ARTEMIS-3449 Speedup AMQP large message streamig 2021-09-08 15:22:22 -04:00
Justin Bertram a4c1155a01 ARTEMIS-3341 update checkstyle to latest + update code
As a follow-up to #3618/dc7de893747b90b627d729f9f18a758bb4dad9d5 update
checkstyle to the latest version, restoring the originally intended
"RightCurly" style, and updating all the code to properly adhere to the
style as enforced by the new checkstyle version.

The version of checkstyle we used before the aforementioned commit had
a bug which didn't properly enforced our intended "RightCurly" style
(see https://github.com/checkstyle/checkstyle/issues/6345). That commit
changed the style to accommodate the handful of unintended style
violations. This commit reverts that change for 2 main reasons:
 - The style was always intended to use `alone` for both `METHOD_DEF`
and `CTOR_DEF`.
 - There are over 1,000 existing uses of the intended style and around
30 violations of this style which were unintentionally allowed.

Reverting the style back to the original and cleaning up the unintented
violations makes the code more consistent and prevents further style
inconsistencies in the future.

There were a handful of other changes related to checkstyle bugs which
allowed unintended style violations. These were related to indentation
levels.

This closes #3619
(with some minor changes from Robbie to fix remaining violations)
2021-06-11 12:16:04 +01:00
Clebert Suconic 05498c350e ARTEMIS-3261 Remove need to lookup replaceableRecords on the hot path
We known it's a replaceable record as part of the logic, no need to lookup the record type unless it's a reload from the system.
2021-06-09 14:52:06 -04:00
Clebert Suconic cfd032799c ARTEMIS-3327 removing unecessary blocking operations on update and delete records 2021-06-03 10:37:16 -04:00
Clebert Suconic 27c343913f ARTEMIS-3297 Journal Retention Feature 2021-05-18 16:29:18 -04:00
Clebert Suconic 67d47274a1 NO-JIRA removing runDirectJournalBlast 2021-05-12 09:51:56 -04:00
Clebert Suconic 62395dcd44 ARTEMIS-3261 Fixing tests and allowing configuration to reload data files on start 2021-04-24 21:30:56 -04:00
Justin Bertram 9bdd271092 ARTEMIS-3176 don't log JDBC datasource 'password' property 2021-03-17 09:50:58 -05:00
Justin Bertram b4f8aada3c ARTEMIS-3092 inconsistent JDBC config logging 2021-02-04 15:32:51 -05:00
Clebert Suconic c019218c4e ARTEMIS-3084 Eliminate Block on moving to next file on libaio 2021-01-28 11:10:40 -05:00
franz1981 769101ac69 ARTEMIS-2955 commons-dbcp2 performance issue with Derby Embedded DBMS
This commit is fixing:
- a missing commit that can make leak a connection
- restricting default specific commons-dbcp2 to the default data source
- setting poolPreparedStatements true by default
- configured embedded Derby to be in-memory to speedup tests
2020-10-20 10:48:12 +02:00
franz1981 b4532d944d ARTEMIS-2823 Use datasource with JDBC store db connections fixes
It add additional required fixes:
- Fixed uncommitted deleted tx records
- Fixed JDBC authorization on test
- Using property-based version for commons-dbcp2
- stopping thread pool after activation to allow JDBC lease locks to release the lock
- centralize JDBC network timeout configuration and save repeating it
- adding dbcp2 as the default pooled DataSource to be used
2020-10-06 10:19:06 +02:00
Mikko Uoti 2faafec737 ARTEMIS-2823 Use datasource with JDBC store db connections
Replaces direct jdbc connections with dbcp2 datasource. Adds
configuration options to use alternative datasources and to alter the
parameters. While adding slight overhead, this vastly improves the
management and pooling capabilities with db connections.
2020-10-06 08:32:58 +03:00
Justin Bertram aaba435cae ARTEMIS-2924 prevent NPE 2020-09-30 17:56:36 +02:00
franz1981 27a085fb49 ARTEMIS-2914 MariaDB SQL isn't correctly recognized 2020-09-24 12:47:33 -04:00
franz1981 fddb210277 ARTEMIS-2911 DB2 isn't replacing Blob data 2020-09-24 12:30:37 +02:00
Emmanuel Hugonnet 38cb05c079 [ARTEMIS-2814]: java.sql.SQLException: Couldn't access
org.postgresql.largeobject.LargeObject.

 * Fixing reflection code

Issue: https://issues.apache.org/jira/browse/ARTEMIS-2814
2020-06-22 14:14:32 -04:00
Robbie Gemmell d2c46762e8 ARTEMIS-2109: fix javadoc errors, remove doclint config for JDK8, remove superfluous plugin versions, update to 3.0.1 javadoc plugin
Using 3.0.1 like the current apache parent pom [not being used], and also as newer ones break build.
2020-06-11 18:50:01 +01:00
Francesco Nigro 4cf8f43e46 ARTEMIS-2729 JdbcLeaseLock won't work on SQL Server 2020-04-21 15:45:21 -04:00
Clebert Suconic af796d5ce4 ARTEMIS-2701 Improving DLQ/check over previously removed records 2020-04-06 12:25:35 -04:00
Benjamin Graf 4b49b3f371 ARTEMIS-975: Add transactional records to deletedRecords to check for committed transactions that also hold references to 2020-03-24 09:32:47 -05:00
Benjamin Graf f0b6e51959 ARTEMIS-2668: Fix several format String definitions 2020-03-23 14:09:35 -05:00
Benjamin Graf 127173b5d9 ARTEMIS-2647: Fix append-to-file for mysql 2020-03-10 10:33:34 -04:00
Clebert Suconic ddd8ed4402 ARTEMIS-1975 Real Large Message support into AMQP
This is a Large commit where I am refactoring largeMessage Body out of CoreMessage
which is now reused with AMQP.

I had also to fix Reference Counting to fix how Large Messages are Acked

And I also had to make sure Large Messages are transversing correctly when in cluster.
2020-02-25 15:25:01 +01:00
Emmanuel Hugonnet ac98cda224
[ARTEMIS-2626]: Postgresql Journal implementation requires direct access to PostgeSQL driver internal classes.
Issue: The BLOB manipulation is done using PostgreSQL internal classes starting from PGConnection.
This leads to ClasCastExceptions if the connection is wrapped in a pool or if the driver is in a different classloader (WildFly).

Fix: unwrap the connection and if the PostgreSQL classes are not directly available uses reflection to manipulate the BLOBs.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-2626
2020-02-20 19:01:38 +01:00
Francesco Nigro fa0c187ae6 ARTEMIS-2602 Reduce number of copies for non JDBC Journal 2020-01-18 18:45:12 +01:00
Francesco Nigro b10d765139 ARTEMIS-2602 load surviving records into SparseArrayLinkedList 2020-01-17 14:31:52 -05:00
Clebert Suconic f43b9c395f NO-JIRA Fixing memory leak on testsuite
AbstractJDBCDriver would hold an instance to AbstractJDBCDriver through an innner class,
that would hold an ActiveMQServerImpl.

That means Servers would be leaking for the entire duration of the testsuite when using JDBC.
2019-12-09 17:34:05 -05:00
Francesco Nigro fb01bc5644 ARTEMIS-2465 [JDBC-STORE] Adding index on txId 2019-09-06 14:27:00 -04:00
Andy 3fe2194139 ARTEMIS-2358 - Add user and pass to database store to allow encryption
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-05-29 11:30:35 -05:00
Jiri Danek 83f0ef2878 ARTEMIS-2320 Stream API call chain can be simplified 2019-04-29 11:28:10 +01:00
Justin Bertram b4ce3305bf ARTEMIS-2296 PgResultSet.updateBlob not implemented
There is no test for this as we don't have a way to embed/test Postgres.
It will need to be verified externally. However, given the exception the
fix looks solid.
2019-04-24 14:44:16 -04:00
Justin Bertram 57aacf784c NO-JIRA fix lgtm.com warnings
Warnings enumerated at
https://lgtm.com/projects/g/apache/activemq-artemis/alerts/?mode=tree&severity=warning
2019-01-17 22:30:28 +00:00
Francesco Nigro 158227fcf3 ARTEMIS-2202 Improve MSSQL support for JDBC storage 2018-12-13 13:54:13 -06:00
Francesco Nigro 46542fb230 ARTEMIS-1980 Warn on failed check of table existence should be info
DB2 metadata checks should erroneously report stale table existence on
not existing/just deleted table, making the subsequent warning logs
of failed SELECT COUNT useless and scaring: should be better to let
them lowered to INFO level
2018-11-02 10:19:35 -04:00
Francesco Nigro 2967df6a99 ARTEMIS-1996 MappedSequentialFileFactory may cause DirectByteBuffer off-heap memory leaks
Compaction is now reusing direct ByteBuffers on both
reading and writing with explicit and deterministic
release to avoid high peak of native memory utilisation
after compaction.
2018-10-22 09:16:15 +02:00
yang wei 8f4bd7c621 ARTEMIS-2102 delete paging directory or table if address is removed 2018-10-10 18:50:11 -04:00
gtully 30c88fc679 ARTEMIS-2110 allow a lease renew without update to the expiry timestamp. Fix intermittent failure of org.apache.activemq.artemis.core.server.impl.jdbc.JdbcLeaseLockTest#shouldRenewAcquiredLock 2018-10-10 18:44:46 -04:00
Francesco Nigro cfa3290209 ARTEMIS-2090 JDBC Journal is not deleting TX records
JDBCJournalImpl::cleanupTxRecords is not committing
the deleteJournalTxRecords statement leaving the
TX records into the journal
2018-09-19 15:32:03 -04:00
Francesco Nigro ead9b00757 ARTEMIS-2089 DB2 sending larger message (1MB) crashes the whole server
It declares JDBC journal Blobs for IBM DB2 DBMS matching max-blob-size
in order to allow to store data with size > 1 MB ie the default BLOB
capacity
2018-09-18 11:46:47 +01:00
Justin Bertram 41b094df2b ARTEMIS-2051 add trace logging for JDBC
Activate by enabling TRACE logging for:
org.apache.activemq.artemis.jdbc.store.drivers.AbstractJDBCDriver
This doesn't log *all* JDBC operations, just those that are used by the
JDBC store.
2018-08-28 11:28:18 -04:00
Martyn Taylor b36a1058d4 ARTEMIS-2056 Set write position on JDBCFile copy 2018-08-27 12:57:04 +01:00
Clebert Suconic 63e6cd98f8 ARTEMIS-2046 Fixing issues with JournalStorageManager.stop in replication, JDBC and shared storage 2018-08-20 21:25:57 -04:00
Martyn Taylor af90bc5f43 Make OpenFile Thread Safe 2018-08-10 13:35:23 +01:00
Martyn Taylor 06f6892454 ARTEMIS-1992 Make JDBC File Lock map thread safe 2018-07-31 14:22:58 -04:00
Francesco Nigro bdcef5a68f ARTEMIS-1981 JDBCJournalImpl constructor isn't using tableName parameter
Removed the unused/redundant constructor parameter tableName
2018-07-12 12:40:42 -04:00
Francesco Nigro 79ff3432d5 ARTEMIS-1979 Table names with DB2 should be upper-cases
DB2 JDBC driver fail to retrieve metadata information
if table names are lower-cases: similarly to Oracle, better
force any table name to be upper-cases to avoid broker being
unable to restart when lower-cases table names are used
2018-07-12 14:48:39 +02:00
Francesco Nigro fdb63df392 ARTEMIS-1784 JDBC NodeManager should just use DMBS clock
It avoid using the system clock to perform the locks logic
by using the DBMS time.
It contains several improvements on the JDBC error handling
and an improved observability thanks to debug logs.
2018-04-18 09:54:34 -04:00