Commit Graph

313 Commits

Author SHA1 Message Date
PascalSchumacher 3b450d9778 KahaDBStore: Fix typo in comment and remove duplicate semicolon 2024-06-24 19:39:58 +02:00
Christopher L. Shannon ddfb36515c AMQ-9504 - Prevent registering duplicate mKahadb adapters
This fixes an issue on start up of a broker that is configured with
multiple mKahaDB filtered adapters and one is configured with
perDestination=true. Before this fix a duplicate persistence adapter
could be created because the filter did not check for existing matches.

Patch applied with thanks to Ritesh Adval
2024-05-22 09:22:01 -04:00
Shikhar Gupta f8bbeeee22 AMQ-9166: Add destination to scheduler job 2024-03-02 13:56:55 +01:00
Christopher L. Shannon 10d94bd165 AMQ-9435 - Ensure orderIndex next id is rolled back on duplicates
This commit fixes a bug in KahaDB that caused gaps in sequence ack
tracking for durables that would lead to the appearance of stuck
messages on durable subs if duplicate messages were detected. The
sequence is now correctly rolled back so that there is no gap if the
message is not added to the order index
2024-02-15 09:39:48 -05:00
Christopher L. Shannon (cshannon) a0b8a1fe55 revert unnecessary change 2024-01-23 10:19:04 -05:00
Christopher L. Shannon (cshannon) f73cf2aaab AMQ-9420 - Don't decrement KahaDB durable sub metrics on duplicate ack
This adds a check in case a duplicate ack is passed to the store to make
sure that the subscription statistics (if enabled) for a durable sub do
not have the metrics decremented a second time
2024-01-23 10:02:19 -05:00
JB Onofré dc4b584c7e
Merge pull request #237 from sigee/cleaning
Remove unnecessary boxing / unboxing
2023-10-19 16:03:52 +02:00
Christopher L. Shannon (cshannon) c3bef84be5 AMQ-9343 - Reduce memory used for in flight transactions
This commit will reduce the memory required in KahaDB for long running
transactions and transactions with a lot of pending message sends by
clearing out the message memory when no longer needed instead of keeping
it tracked in the pending map
2023-10-18 11:11:24 -04:00
Matt Pavlovich 976db65c58 [AMQ-9239] jakarta.jms - activemq-kahadb-store changes 2023-08-24 09:45:31 -05:00
sigee 3ba93ed957 Remove unnecessary boxing / unboxing 2023-07-23 12:08:23 +02:00
Matt Pavlovich cfbea60d6d
[AMQ-9258] Update kahadb corruption test to account for new fix from AMQ-9254 (#1007) 2023-05-18 11:29:01 -05:00
Matt Pavlovich 0a042964c8
[AMQ-9258] Add NPE guards to kahadb test that intermittently fails on slower CI servers (#1006) 2023-05-17 10:27:31 -05:00
Christopher L. Shannon (cshannon) bcc74f93fe AMQ-9254 - Rework data file size validation and add unit test
This isolates the validation on data file length on read and adds unit
tests to verify we properly fallback to the real file length on initial
size check failure
2023-05-03 06:03:00 -04:00
Matt Pavlovich 3e61a200d0 [#9254] DataFile readRecord fallback to OS file.length in rare edge case 2023-05-01 20:09:22 -05:00
JB Onofré c86cd20029
Merge pull request #957 from mjanczykowski/bugfix/AMQ-9199
[AMQ-9199] Fixed race condition in creating store directory
2023-02-02 14:43:40 +01:00
Christopher L. Shannon (cshannon) ed924cddac AMQ-9202 - Make sure Reentrant locks are acquired outside a try block
This is best practice and will prevent unlock from being attempted
inside of a finally block when the thread doesn't actually own the
lock which can happen when the lock attempt throws an exception
such as calling lockInterruptibly()
2023-02-01 11:19:24 -05:00
Michał Janczykowski 13ec5d5b7a [AMQ-9199] reordered imports 2023-01-17 12:26:21 +01:00
Michał Janczykowski 7de7ba2aa9 [AMQ-9199] Fixed race condition in creating store directory
A store directory is created by MessageDatabase#getPageFile which
is called in two cases:
1. KahaDBStore.start() when creating a queue
2. KahaDBStore.size() which is performed when sending any persistent message

If both methods are called concurrently it's possible to get an IOException
thrown from the IOHelper.mkdirs method.
2023-01-17 12:20:53 +01:00
Dmytro Chebotarskyi dc55028c00 Added additional logging on BrokerService startup 2022-11-29 07:51:20 +01:00
Dmytro Chebotarskyi 73f827f9a6 [NO JIRA] Removing unused concurrentStoreAndDispatchTransactions variable from KahaDBStore. Cleaning up related unused code. 2022-09-06 12:18:40 -07:00
jbonofre 472dcf8497 [AMQ-7426] Upgrade to log4j2 2022-02-24 15:20:51 +01:00
Lucas Tétreault 60859b0b7f Use B+ Tree iterator instead of DFS to find scheduled jobs to be executed 2021-11-24 01:06:47 -08:00
Matt Pavlovich c0d5399635
[AMQ-8285] Add 'slow' metrics to PersistenceAdapterStatistics (#664) 2021-06-04 06:19:54 +02:00
Jean-Baptiste Onofré ae777e9571
Merge pull request #665 from mattrpav/AMQ-8282
[AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstr…
2021-06-04 06:18:27 +02:00
Colm O hEigeartaigh 7ca7118a95 AMQ-8117 - Allow java.util arrays for deserialization 2021-06-03 14:42:42 +01:00
Matt Pavlovich 950a140455 [AMQ-8282] Migrate from deprecated .newInstance() calls to .getConstructors().newInstance 2021-06-02 08:30:36 -05:00
Matt Pavlovich 2cc17a2fa0 [AMQ-8279] Compiler warning cleanups
- Remove unsused imports (exept for generated classes)
 - Convert to T.valueOf on boxed primitives from new T()
2021-05-25 09:34:35 -05:00
Jonathan Gallimore edd0515d90 AMQ-8201 Forward commit commands for local transactions as well as XA transactions during ACK compaction 2021-03-25 11:02:53 +00:00
gtully 09389d1ef3 AMQ-8202 - fix concurrency issue on tracking stores in mKahaDB, exposed by virtual topic concurrentSend 2021-03-24 15:55:44 +00:00
jbonofre cbc1baa07a [AMQ-8097] Deal with deserialization with xstream unmarshal poison ack 2021-01-13 16:13:25 +01:00
jbonofre 43af228f2a Improve stability of KahaDB tests 2020-11-18 09:02:25 +01:00
gtully 72146d2dae AMQ-8040 - ensure state relating to diskbound tmp file pages is preserved on next update, fix and test 2020-09-11 17:04:15 +01:00
Pascal Schumacher efcca7d062 Fix javadoc warnings related to non-existing parameter names. 2020-05-22 10:49:39 +02:00
gtully cedac472a1 [AMQ-7488] mkahadb - detect txStore corruption and suspend recovery, auto recover if no outcomes pending 2020-05-20 12:43:37 +01:00
Pascal Schumacher 67e06c82f7 Fix some javadoc warnings releated to non-existing parameter names. 2020-05-17 11:38:05 +02:00
Jean-Baptiste Onofré 0444dd96b2
Merge pull request #505 from PascalSchumacher/potential_overflow_in_int_multiplication
Avoid potential overflow in int multiplication before it is converted…
2020-05-16 07:17:13 +02:00
Pascal Schumacher b43f5b8cf2 Avoid potential overflow in int multiplication before it is converted to long. 2020-03-08 11:50:21 +01:00
Colm O hEigeartaigh a73a85e6c2 AMQ-7438 - Harden deserialization 2020-03-06 17:22:07 +00:00
gtully 5d03224880 no jira - additional trace logging to kahadb cleanup/gc to identify datafile for durable sub command and pending count by sub key 2020-02-28 09:47:02 +00:00
jbonofre 927e01f0c8 Flexible AMQ7086Test on KahaDB for Jenkins 2020-02-26 08:22:19 +01:00
Daniel Trebbien 3faad9b357 Use simpler SLF4J API functions
Eliminates the need to construct a new (temporary) Object array object.

These changes were suggested by SLF4J Helper for NetBeans IDE:
http://plugins.netbeans.org/plugin/72557/
2020-02-19 07:54:25 +00:00
Daniel Trebbien 6d36c490e5 Fix inconsistent 'info'-level logger calls
Some calls to info() were guarded by checks that logging at the trace
level is enabled.

These issues were found by SLF4J Helper for NetBeans IDE:
http://plugins.netbeans.org/plugin/72557/
2020-02-19 07:41:31 +00:00
Pascal Schumacher 5356893fac AMQ-7402: Inconsistent synchronization of getters/setters of some classes
Make synchronization consistent or remove it and declare the field volatile.
2020-02-12 17:48:34 +01:00
Colm O hEigeartaigh 675fb7bcae AMQ-7376 - Use correct type for collections retrieval 2020-01-20 18:35:01 +00:00
Jean-Baptiste Onofré a0531943a4
Merge pull request #348 from nguyenhoan/patch-1
close DataByteArrayOutputStream buff of WriteBatch
2019-11-17 06:46:01 +01:00
gtully ed5edb03d7 AMQ-7311 - track recovered prepared ack locations on a per subscriber basis, fix and test 2019-09-26 15:54:57 +01:00
gtully 289750d7c9 AMQ-7308 - ensure kahadb message add does not auto create the message store in error, expect an existing store. fix and test 2019-09-20 10:22:56 +01:00
gtully 4d5e41ca28 AMQ-7227 - ensure db.free file is moved in scheduler store upgrade process 2019-06-14 10:01:57 +01:00
Christopher L. Shannon (cshannon) ac01af8dec Merge branch 'AMQ-7221'
This closes #364

Thanks to Alan Protasio for the patch
2019-06-11 07:51:33 -04:00
gtully 28a0cc6e5a AMQ-7225 - fix intermittent failure, avoid gc of partial tx pending commit 2019-06-11 12:36:02 +01:00