Commit Graph

384 Commits

Author SHA1 Message Date
gtully 20522394cc [AMQ-6567] ensure gc file removal/move is completed after index updates to avoid dangling index referenced on partial failure. Fix and test 2017-01-17 14:05:04 +00:00
Timothy Bish 281d600ae2 https://issues.apache.org/jira/browse/AMQ-6563
ensure that the lock is always released in the load method.
2017-01-13 11:48:19 -05:00
gtully 0ae90c0897 https://issues.apache.org/jira/browse/AMQ-6547 - add storeUsage attribute to mKahadb filtered adapter such that disk utilisation is available as a QOS 2016-12-20 14:47:22 +00:00
Christopher L. Shannon (cshannon) 5fd63a0e4e https://issues.apache.org/jira/browse/AMQ-6545
Fixing the order of locks acquired in the KahaDB journal to prevent a
deadlock during file rotation
2016-12-16 13:44:18 -05:00
Christopher L. Shannon (cshannon) 0f0bdb21ef https://issues.apache.org/jira/browse/AMQ-6524
Fixing a thread safety issue with memoryUsage when using concurrentStoreAndDispatch
that was causing memory usage to get out of sync.

The InnerFutureTask class inside KahaDB was not thread safe which was
the root cause of the problem.
2016-12-05 07:10:20 -05:00
gtully dad629e889 [AMQ-6522] - remove hardcoded 32k batch limit from recovery check of the journal, fix and test 2016-11-29 11:32:03 +00:00
gtully 0a29533ed7 [AMQ-6520] respect kahadb indexDirectory for perDestination mKahaDB - fix and test 2016-11-25 16:44:28 +00:00
Timothy Bish 2c828b23df https://issues.apache.org/jira/browse/AMQ-6504
Fix intermittent test failure
2016-11-21 12:37:52 -05:00
Timothy Bish 980162233f https://issues.apache.org/jira/browse/AMQ-6504
Round the start time value not truncate to ensure delay falls on the
correct side of the scheduling block.
2016-11-11 14:48:49 -05:00
gtully 3b7613d930 AMQ-6451 - catch errors on preallocation. allocate direct buffer on start and reuse to ensure resource availability at runtime 2016-11-08 14:05:46 +00:00
Hadrian Zbarcea e725451521 This closes #162. Minor improvement in using the Logger api 2016-11-03 17:26:00 -04:00
Hadrian Zbarcea be24a133ef This closes #88 (merged as a65ac586). More file permissions fixes. 2016-11-03 14:26:34 -04:00
Hadrian Zbarcea d5a929c0d2 This closes #205. Won't fix. (fix even more file permissions) 2016-11-03 14:11:40 -04:00
Hadrian Zbarcea d54d046b8a This closes #185. Won't fix. (fix more file permissions) 2016-11-03 11:54:33 -04:00
Timothy Bish 1a91decf9f https://issues.apache.org/jira/browse/AMQ-6483
Fix conversion from long to int and back to long again.
2016-10-26 13:27:24 -04:00
gtully 538ed74510 NO-JIRA - ensure stack trace in incuded with exception that terminates data file appender thread 2016-10-07 16:26:07 +01:00
Christopher L. Shannon (cshannon) 351faf2699 https://issues.apache.org/jira/browse/AMQ-6445
Fixing RandomAccessFile usage so that the file will be properly closed
even if there is an exception
2016-09-29 06:16:40 -04:00
Christopher L. Shannon (cshannon) a82c95cd29 https://issues.apache.org/jira/browse/AMQ-6436
The temporary store will now delete the old temp directory on start up
if lazyInit is true instead of waiting for the store to initialize to
clear up space.  This prevents space on the disk from being wasted with
old data if the temp store isn't initialized
2016-09-23 15:47:27 -04:00
Christopher L. Shannon (cshannon) 18571ce09b https://issues.apache.org/jira/browse/AMQ-6430
Modifying patch so that only stores that persist the noLocal flag will
check if this flag has changed to prevent a subscription from being
deleted by mistake
2016-09-23 10:59:32 -04:00
gtully f8bc19b96d AMQ-6413 - ensure audit update on skipped store add for kahadb concurrentStoreAndDispatch. Fix and test 2016-09-01 16:46:21 +01:00
gtully 5a874816b7 AMQ-6403 - add indexDirectory attribute to kahadb plist impl - settable via broker service tempDataStore 2016-08-24 11:39:22 +01:00
gtully b37b9eb5af fix up cancelledTaskModMetric reporting in kahadb 2016-08-19 11:48:42 +01:00
gtully 330f0ce734 AMQ-5815 ensure async write latch is released on exception 2016-08-12 16:44:23 +01:00
gtully 51166dc7af AMQ-6377 - fix deprecation java doc ref 2016-08-10 12:05:21 +01:00
gtully fcd9047b9f additional test to validate stats on missing messages and outstanding acks on recovery 2016-08-10 11:54:12 +01:00
Christopher L. Shannon (cshannon) 06a21dbbb3 [maven-release-plugin] prepare for next development iteration 2016-08-02 09:03:37 -04:00
Christopher L. Shannon (cshannon) 71cbc65283 [maven-release-plugin] prepare release activemq-5.14.0 2016-08-02 09:02:54 -04:00
Christopher L. Shannon (cshannon) 71bb54f94c https://issues.apache.org/jira/browse/AMQ-6372
Fixing test so that test DataFile is written to a temporary directory
instead of the main activemq-kahadb-store directory.  This prevents git
from picking up the test file
2016-07-30 12:59:10 -04:00
Christopher L. Shannon (cshannon) 1a598277cf https://issues.apache.org/jira/browse/AMQ-6377
Reworking patch so that a periodic disk sync uses a journal trace
command to trigger the sync so that everything is done in the same
thread for the writes
2016-07-28 10:07:10 -04:00
Christopher L. Shannon (cshannon) 498e2184be https://issues.apache.org/jira/browse/AMQ-6377
Adding new setters to KahaDBPersistenceAdapter
2016-07-27 17:33:45 -04:00
Christopher L. Shannon (cshannon) dd0ed17e59 https://issues.apache.org/jira/browse/AMQ-6377
Introducing JournalDiskSyncStrategy to allow a peridic disk sync mode
instead of always syncing after every write or never syncing.
2016-07-27 14:31:07 -04:00
gtully 822e2be90e AMQ-6378 force recovery on corrupt metadata location info, relates to AMQ-6376 2016-07-27 15:56:28 +01:00
gtully 6b8e743b08 AMQ-6372 - add IOExceptionHandler to kahadb read path to ensure fast shutdown on disk access errors 2016-07-27 11:58:22 +01:00
Christopher L. Shannon (cshannon) cf3d419528 https://issues.apache.org/jira/browse/AMQ-6375
Adding non-blocking metrics to KahaDB to track message counts and sizes
for subscriptions.  Turned off by default but can be enabled on the
KahaDBPersistenceAdapter
2016-07-26 12:02:44 -04:00
gtully d427952b19 AMQ-6372 - fix up accessor pool cleanupUnused and use the minimum number of open files for recovery 2016-07-25 13:33:24 +01:00
Timothy Bish 8cc5c56d5e https://issues.apache.org/jira/browse/AMQ-6358
Wait until recover is done before starting the checkpoint tasks.
2016-07-14 10:49:59 -04:00
Christopher L. Shannon (cshannon) a5050a8bc5 https://issues.apache.org/jira/browse/AMQ-6356
Fixing store size calculation on KahaUpdateMessageCommand processing so
that the size won't increase inadvertently if the existing location of
the command in the journal is the same as the new location
2016-07-14 09:21:23 -04:00
Christopher L. Shannon (cshannon) d635a36940 https://issues.apache.org/jira/browse/AMQ-6352
Fixing PList size tracking by moving the null assignment on removal to
after the onRemoval method is called to make sure that the decrement is
done properly.
2016-07-12 10:27:57 -04:00
gtully 4386750fdb for mkahadb populate mdc activemq.persistenceDir such that logging for a particular instance can be identified and correlated 2016-07-04 11:19:56 +01:00
Christopher L. Shannon (cshannon) 4d6cc4b460 https://issues.apache.org/jira/browse/AMQ-6303
Properly setting typeCode value for new journal files used for ack
compaction
2016-05-23 18:42:29 +00:00
Timothy Bish 15405af2e6 https://issues.apache.org/jira/browse/AMQ-6292
allow for batch writes of forwarded acks.
2016-05-13 14:56:01 -04:00
Christopher L. Shannon (cshannon) c8a6171d04 https://issues.apache.org/jira/browse/AMQ-6288
Switching the checkpoint lock to a readlock when forwarding acks to
prevent other journal updates from being blocked.
2016-05-12 14:39:12 +00:00
Christopher L. Shannon (cshannon) e53e340262 https://issues.apache.org/jira/browse/AMQ-6288
The ack compaction task now acquires the checkpoint lock while it runs
to prevent a checkpoint from running at the same time unintentionally.
Also, getJournalLocation is now protected by a try/catch to handle
errors.
2016-05-11 13:16:57 +00:00
Christopher L. Shannon (cshannon) 91213010b3 https://issues.apache.org/jira/browse/AMQ-6285
Added an extra isShutdown() failsafe check when detecting if the
checkpoint thread should start
2016-05-09 19:35:02 +00:00
Christopher L. Shannon (cshannon) 7bdcca1bda https://issues.apache.org/jira/browse/AMQ-6285
Properly nulling out the scheduler service in MessageDatabase after it
is shutdown on a store close so that if the store is restarted the
thread will properly restart.
2016-05-09 19:06:40 +00:00
Christopher L. Shannon (cshannon) db3f8b3554 Revert "https://issues.apache.org/jira/browse/AMQ-6285"
This reverts commit 60b0c4f85a.

Inadvertantly commited a bunch of changes by mistake
2016-05-09 19:05:52 +00:00
Christopher L. Shannon (cshannon) 60b0c4f85a https://issues.apache.org/jira/browse/AMQ-6285
Properly nulling out the scheduler service in MessageDatabase after it
is shutdown on a store close so that if the store is restarted the thread will
properly restart.
2016-05-09 19:03:38 +00:00
gtully 65cef69130 https://issues.apache.org/jira/browse/AMQ-5603 - reverting default preallocatonScope to entire_journal b/c async only really works for ssd 2016-05-05 13:06:42 +01:00
gtully 1c4108545c https://issues.apache.org/jira/browse/AMQ-6277 - journal getNextLocation needs too passes to skip past if target is not initialized 2016-05-04 22:09:06 +01:00
gtully 555cd2b6bb https://issues.apache.org/jira/browse/AMQ-5603 - catch interrupted on chunked zeros case 2016-05-03 17:25:14 +01:00
gtully ba77b9f55a https://issues.apache.org/jira/browse/AMQ-6277 - tidy up logic that determines recovery location so that we don't recovery from the end of the journal in error on normal restart. This avoids suprious recovery logging 2016-05-03 12:47:49 +01:00
gtully 62bdbb0db5 https://issues.apache.org/jira/browse/AMQ-5603 - add preallocationScope=full_journal_async that will preallocate a journal in advance or use to avoid latency jitter on journal rotation. Added none option to disable preallocation 2016-04-29 16:57:28 +01:00
gtully 43d8205cf0 reduce the throughput for ci 2016-04-22 14:53:14 +01:00
gtully 930a74c696 https://issues.apache.org/jira/browse/AMQ-5578 - enable org.apache.activemq.kahaDB.files.skipMetadataUpdate for tests to validate. remove some redundant call to limit and add latencey test to validate the need for outof band or pool allocation of journals 2016-04-22 12:29:31 +01:00
Christopher L. Shannon (cshannon) 11622b3af3 https://issues.apache.org/jira/browse/AMQ-6256
Moving beforeMarshall back to the store implementations because we don't
want all store implementations to marshall (such as memory store)

This reverts commit b9b98a45ce.
2016-04-18 12:34:25 +00:00
Christopher L. Shannon (cshannon) 1ffac14f6e https://issues.apache.org/jira/browse/AMQ-6256
cleanup imports
2016-04-15 14:23:54 +00:00
Christopher L. Shannon (cshannon) b9b98a45ce https://issues.apache.org/jira/browse/AMQ-6256
Moving beforeMarshall call out of the store and into the actual
destination
2016-04-15 14:17:00 +00:00
Christopher L. Shannon (cshannon) b9f9f03829 https://issues.apache.org/jira/browse/AMQ-6256
Calling beforeMarshall on messages when they async stored before the
store task is run and before consumer dispatch to prevent two threads
from trying to mutate the message state at the same time.
2016-04-15 13:01:21 +00:00
Christopher L. Shannon (cshannon) 092c56d70c https://issues.apache.org/jira/browse/AMQ-6250
Checking for null before closing the journal in
MultiKahaDBPersistentAdapter.  Also protecting against multiple calls to
start and stop.
2016-04-14 18:39:14 +00:00
Christopher L. Shannon (cshannon) cbad8babe5 https://issues.apache.org/jira/browse/AMQ-6203
Adding a flag to enable or disable Ack Compaction
Currently defaults to enabled for 5.14.0 and above
2016-04-12 13:30:10 +00:00
Timothy Bish a9521dcebf https://issues.apache.org/jira/browse/AMQ-6203
Expose configuration on the persistence adapter level.
Double the test timeout and increase the compaction frequency to account
for very slow CI boxes.
2016-03-15 12:02:40 -04:00
Timothy Bish 946e62d702 https://issues.apache.org/jira/browse/AMQ-6203
Rewrite older acks that can be preventing GC of log files.
2016-03-14 11:04:57 -04:00
Timothy Bish b39ab7867c https://issues.apache.org/jira/browse/AMQ-6207
Perform writes / sync in predicatable order first to the recovery file
and then into the main index file.
2016-03-11 09:59:07 -05:00
gtully 13ec994939 Revert "https://issues.apache.org/jira/browse/AMQ-4495 - revisit. Reinstate check for space on pagein, so that highWaterMark is respected and full state is not reached, hense pfc is not triggered in error"
This reverts commit d8cf54b0a9.
2016-03-07 16:26:25 +00:00
Timothy Bish 5e0f49332b https://issues.apache.org/jira/browse/AMQ-5578
Remove unnecessary buffer initialization after confirmation that it is
not needed.
2016-03-03 17:35:21 -05:00
Timothy Bish edfc23ee9d https://issues.apache.org/jira/browse/AMQ-5578
Add additional preallocation strategy [CHUNKED contributed by user
jtahlborn.
2016-03-03 17:34:07 -05:00
Timothy Bish be4ad3d1c8 https://issues.apache.org/jira/browse/AMQ-5578
Replace system.out with a trace log.
2016-03-03 17:00:11 -05:00
Timothy Bish e8f44a29dd https://issues.apache.org/jira/browse/AMQ-5578
Revert to previous behavior of explicit init.
2016-03-02 17:18:30 -05:00
Timothy Bish e89b7a57f1 https://issues.apache.org/jira/browse/AMQ-5578
Remove unnecessary zero init block as the java spec requires the
allocations to do this already.  Fix some warnings.
2016-03-02 16:17:43 -05:00
gtully d8cf54b0a9 https://issues.apache.org/jira/browse/AMQ-4495 - revisit. Reinstate check for space on pagein, so that highWaterMark is respected and full state is not reached, hense pfc is not triggered in error 2016-03-01 11:44:41 +00:00
gtully 499e39e52c https://issues.apache.org/jira/browse/AMQ-6164 - allow journal write batching on a single destination 2016-02-09 12:50:27 +00:00
Christopher L. Shannon (cshannon) 25ff5699f1 https://issues.apache.org/jira/browse/AMQ-6158
Computing messageSize for a durable subscription in KahaDB now runs much
faster (n vs n^2) which is noticable when there are a large number of
pending messages for a durable subscription.
2016-02-04 15:17:49 +00:00
Timothy Bish 8c4b5f485d https://issues.apache.org/jira/browse/AMQ-6152
Ensure that when add / remove commands are colocated they don't prevent
the log from being GC'd once it is unreferenced.
2016-02-02 20:28:24 -05:00
Timothy Bish 4ecff14030 NO-JIRA Update master version to 5.14.0-SNAPSHOT to match the eventual
release version.
2016-01-20 12:40:20 -05:00
Christopher L. Shannon (cshannon) b4aa53d806 https://issues.apache.org/jira/browse/AMQ-6133
Fixing the processing of KahaUpdateMessageCommand to add the message to
the store if it doesn't exist, instead of ignoring it.  This will
prevent message loss in certain cases when the KahaDB index has to be
rebuilt.
2016-01-20 16:59:07 +00:00
Timothy Bish 193f6be687 https://issues.apache.org/jira/browse/AMQ-6131
Fix check for durable sub with no pending messages during checkpoint
cleanup.
2016-01-18 17:43:18 -05:00
Christopher L. Shannon (cshannon) 507d40a79f https://issues.apache.org/jira/browse/AMQ-6097
Fixing JournalCorruptionEofIndexRecoveryTest class

Because of the size being stored in the message order index, the test
testRecoveryAftercorruptionCheckSumExistingIndex was no longer passing
as that test was corrupting the size value in the journal, but not the
size value in the index.  The test now corrupts both values so that the
expect exception occurs again.
2015-12-21 16:46:47 +00:00
Christopher L. Shannon (cshannon) 246ccb8e04 https://issues.apache.org/jira/browse/AMQ-6097
Fixing KahaDB so that the correct marshaller is used for the message
keys inside of the message order index.  This will ensure that message
size metrics are accurate.
2015-12-18 19:26:24 +00:00
gtully 31d99b6aa9 https://issues.apache.org/jira/browse/AMQ-6083 - resolve some test regressions - AMQ2149Test - fail to start with missing data file. Ensure ack map is always saved on modification 2015-12-11 13:30:55 +00:00
gtully 768fa17085 https://issues.apache.org/jira/browse/AMQ-6005 - have plist whack it existing state on start. Start the temp store after the primary persistence adapter which does the locking 2015-12-10 14:24:03 +00:00
gtully 5db5f3e39a https://issues.apache.org/jira/browse/AMQ-6083 - ignoreMissingJournalfiles false - check for missing acks and corruption anywhere and error out so that corruption does not go unnoticed - fix and test 2015-12-09 12:30:29 +00:00
Christopher L. Shannon (cshannon) 7a7c70ad75 https://issues.apache.org/jira/browse/AMQ-6082
Propertly re-setting the storeOpenWireVersion from the BrokerService
on the KahaDB Metadata if a corrupted index is detected and the
Metadata has to be recreated.
2015-12-08 20:10:11 +00:00
Torsten Mielke 66c348b1b8 https://issues.apache.org/jira/browse/AMQ-6071 - Log info about corrupted journal records at WARN level 2015-12-04 11:29:55 +00:00
Christopher L. Shannon (cshannon) cfb4ca9f54 [maven-release-plugin] prepare for next development iteration 2015-11-30 13:48:58 +00:00
Christopher L. Shannon (cshannon) abfe038ddf [maven-release-plugin] prepare release activemq-5.13.0 2015-11-30 13:48:11 +00:00
Christopher L. Shannon (cshannon) 8f30866fdf https://issues.apache.org/jira/browse/AMQ-6063
Fixing potential NullPointerException during KahaDB index recovery.
2015-11-25 16:02:52 +00:00
Christopher L. Shannon (cshannon) e07809dec6 NO JIRA - Clear journalSize counter
The journalSize counter should be set to 0 after KahaDB is shut down.
Usually, a store is not restarted again after stopping, but if it ever
was the value would be wrong since it wasn't reset back to 0.
2015-11-24 17:53:34 +00:00
gtully fd0f71a4c8 https://issues.apache.org/jira/browse/AMQ-6033 - fix shadowing error, additional test 2015-11-02 15:08:22 +00:00
gtully dc06c8dc75 https://issues.apache.org/jira/browse/AMQ-5994 https://issues.apache.org/jira/browse/AMQ-4000 - proper fix for duplicate sub info from the store on recovery failure from AMQ2149Test. Additional test from Christopher L 2015-10-06 12:01:24 +01:00
gtully f6e1054a4b https://issues.apache.org/jira/browse/AMQ-5984 - fix sync on get for access ordered LinkedHashMap 2015-09-28 14:20:45 +01:00
gtully fcabcd282d https://issues.apache.org/jira/browse/AMQ-5960 - rework fix to reset the next sequence so that the next ack position and message reference gets cleared up in normal operation 2015-09-23 13:15:29 +01:00
Dejan Bosanac ee4672baaf https://issues.apache.org/jira/browse/AMQ-5972 - wildcard policy entries not applied in correct order 2015-09-17 11:08:21 +02:00
Dejan Bosanac f4a2543def https://issues.apache.org/jira/browse/AMQ-5960 - durable sub pendingQueueSize after force shutdown - fix npe test failure 2015-09-10 14:13:45 +02:00
Christopher L. Shannon (cshannon) d1dface01a https://issues.apache.org/jira/browse/AMQ-5923
Adding a null pointer check in PListImpl to prevent a null
pointer exception on remove
2015-09-10 11:23:27 +00:00
Dejan Bosanac 4ab55f13ae https://issues.apache.org/jira/browse/AMQ-5960 - durable sub pendingQueueSize after force shutdown 2015-09-10 11:10:37 +02:00
Christopher L. Shannon (cshannon) 734fb7dda3 https://issues.apache.org/jira/browse/AMQ-5923
Adding metrics to track the pending message size for a queue and for
subscribers.  This is useful so that not only the pending count is
known but also the total message size left to consume. Also improving
the message size store tests as well.
2015-09-09 18:12:15 +00:00
Christopher L. Shannon (cshannon) 04ee70a161 https://issues.apache.org/jira/browse/AMQ-5889
Adding support for auto detection of wire protocols over a transport.
OpenWire, AMQP, STOMP, and MQTT can all be detected and the broker
will properly handle each one over a given Transport.  Currently
auto TCP, NIO, SSL, and NIO+SSL transports can handle auto-detection
of the wire format and client but support could be added in the
future for other transports like websockets.
2015-08-11 19:39:29 +00:00
Timothy Bish 6cdd750ddc [maven-release-plugin] prepare for next development iteration 2015-08-10 11:04:26 -04:00
Timothy Bish a9eeb03520 [maven-release-plugin] prepare release activemq-5.12.0 2015-08-10 11:04:17 -04:00
Christopher L. Shannon c6542a921b AMQ-5748 - Cleanup and clearing cache on shutdown 2015-08-09 09:39:14 -04:00
Christopher L. Shannon (cshannon) b52796f794 AMQ-5748 - replace Map with ConcurrentMap for JDK7 2015-08-07 17:54:35 +00:00
Christopher L. Shannon (cshannon) de24980a62 AMQ-5748 - Fixing MessageStore cache
This fixes KahaDBStore to properly check for an existing MessageStore
in the cache before creating a new one.  This will prevent potential
issues with metrics.
2015-08-07 17:23:25 +00:00
Christopher L. Shannon (cshannon) 457dbd8b64 https://issues.apache.org/jira/browse/AMQ-5919
Converting printStackTrace statements to slf4j so that exceptions
are logged properly
2015-08-05 16:29:29 +00:00
gtully a05a9a2129 https://issues.apache.org/jira/browse/AMQ-5552 - added profile for activemq.tests=smoke to run a fast subset of tests that gives a fast verification of a full build 2015-07-09 14:10:38 +01:00
gtully 3985e7225f https://issues.apache.org/jira/browse/AMQ-5853 - fix cacheEnabled case - additional test and fix for both jdbc and kahadb stores 2015-07-09 10:30:54 +01:00
Timothy Bish 13044decce https://issues.apache.org/jira/browse/AMQ-5848
Use the latest openwire version marshallers in the KahaDB store when
starting from a clean install, drop back to the version used in the
existing store if one is found.
2015-07-08 17:29:32 -04:00
Christopher L. Shannon (cshannon) 73d1bcd7ac https://issues.apache.org/jira/browse/AMQ-5875
Resolves an issue when using mKahaDB that caused a MessageStore
being used by more than one destination to be deleted even though
there was still at least 1 other destination using the store.
2015-07-08 18:32:15 +00:00
Christopher L. Shannon (cshannon) 8871b0e496 https://issues.apache.org/jira/browse/AMQ-5748
Fixing an issue that prevented old versions of KahaDB from being
upgraded to the newest version 6
2015-07-08 16:10:11 +00:00
Christopher L. Shannon (cshannon) 785b16bf9e https://issues.apache.org/jira/browse/AMQ-5748
Added a getMessageSize method to MessageStore to support retrieving the
total message size of all stored messages for a destination.  Added a
new storeMessageSize statistic to DestinationStatistics.
2015-07-07 18:03:27 +00:00
Timothy Bish 455f1ca475 https://issues.apache.org/jira/browse/AMQ-5872
The code that adds subscriptions for retroactive subscribers did not
account for the case where the last ack position in the ackLocations
table is used as a placeholder for the next incoming message and there
may not be an element in the messageReference tracker for that index
especially after restart when the index is reloaded.  The code needed to
check this when it iterates of the existing message references to add a
value so to avoid the NPE.  

Also cleaned up the MQTT tests such that they place their data dir in
./target so that old stores get removed on 'mvn clean'
2015-07-02 17:04:35 -04:00
Christopher L. Shannon (cshannon) 12b26b641b https://issues.apache.org/jira/browse/AMQ-5745
This commit is based off a patch submitted by admin@int3solutions.com.
It fixes several locations in the code where there are potential resource leaks.
2015-06-30 13:41:48 -04:00
gtully 2c53dbcc63 https://issues.apache.org/jira/browse/AMQ-5864 - fix and test. A replayed update command did not check if already updated 2015-06-25 15:53:45 +01:00
gtully b6fea83126 https://issues.apache.org/jira/browse/AMQ-5863 - fix and test - sequenceId state in messageid needs to be cleared before doing a store 2015-06-25 12:49:52 +01:00
gtully 0a21c5f8ff better deal with journal corruption for scheduler store to report error location - intermittent failure of KahaDBSchedulerIndexRebuildTest 2015-05-27 12:26:06 +01:00
gtully 9ae5b4147b fix formatting 2015-05-20 12:50:33 +01:00
gtully 3fdf9861b2 https://issues.apache.org/jira/browse/AMQ-5783 - properly remove free topic from the store when there are no remaining subs. Issue: release of the index but remaining metadata refs to the old state. Mbean was also left dangling. test thanks to pat fox 2015-05-20 09:57:05 +01:00
gtully 27e11a388e reduce test duration for ci 2015-05-20 09:57:04 +01:00
Timothy Bish c5a1b86062 https://issues.apache.org/jira/browse/AMQ-5762
Fix for potential memory leak from creation of KahaDBTopicMessageStore.
2015-05-14 16:57:06 -04:00
Timothy Bish 9ef4259297 https://issues.apache.org/jira/browse/AMQ-5616
Use ConcurrentMap in declarations
2015-04-28 11:15:08 -04:00
gtully 4a821186a4 https://issues.apache.org/jira/browse/AMQ-5578 - preallocation could ocurr after a restart over an existing journal file! - fix and test 2015-04-20 16:04:01 +01:00
gtully 73db4d2bfd https://issues.apache.org/jira/browse/AMQ-5703 - further tests and fixes. Ensure early eof can be identified when checking for corruption and skip corruption on replay when the checksum is invalid 2015-04-16 15:25:58 +01:00
gtully a7178a46b7 https://issues.apache.org/jira/browse/AMQ-5703 - fix and test. We now skip past known corruption on a journal replay 2015-04-01 14:59:15 +01:00
Christian Posta 8e551b4c3b removed logging that snuck in there for https://issues.apache.org/jira/browse/AMQ-5578 2015-03-05 15:53:44 -07:00
gtully ecebd2413b https://issues.apache.org/jira/browse/AMQ-5626 - fix and test. on restart, next index needs to ingore priority to find the last used entry 2015-03-02 14:44:58 +00:00
gtully 260e28ecad https://issues.apache.org/jira/browse/AMQ-5620 - avoid potential deadlock on shutdown - waiting on connections to stop before stopping the pa would be an alternative but may block for ever, auto rollback ensures there is no need 2015-03-02 14:44:58 +00:00
Christian Posta 2c92c34132 Fix for https://issues.apache.org/jira/browse/AMQ-5551 The DiskBenchmark util doesn't sync (fsync) to disk for sync writes 2015-02-20 09:23:12 -07:00
gtully 2949e8dbf7 https://issues.apache.org/jira/browse/AMQ-5578 - remove timing deps from the test 2015-02-20 12:03:12 +00:00
Christian Posta 023b2ac045 Updated for https://issues.apache.org/jira/browse/AMQ-5578 adds unit tests, logging, and removes the preallocated batch stuff that snuck in there with commit 45e59e6e83 which was by accident. 2015-02-19 16:34:32 -07:00
Christian Posta 45e59e6e83 adding options for https://issues.apache.org/jira/browse/AMQ-5578 to
allow configuring the allocation strategy at finer grained controls
including zeroing out, OS copying, or sparse file
2015-02-19 10:49:40 -07:00
Timothy Bish 2b17fd8050 https://issues.apache.org/jira/browse/AMQ-5580
Use a CopyOnWriteArrayList to ensure that traversals of the adapters
list do not generate ConcurrentModificationException if a new adapter is
added during that time.
2015-02-11 17:22:26 -05:00
gtully 95f7262cb1 https://issues.apache.org/jira/browse/AMQ-5578 - implement for kahadb 2015-02-11 13:37:32 +00:00
gtully b0a1bd833c https://issues.apache.org/jira/browse/AMQ-5542 fix (via revert below) and test case applied with thanks.
Revert "resolve https://issues.apache.org/activemq/browse/AMQ-2736, logic issue in code that keeps data files with acks around pending message file gc. thanks jgenender - test case to follow"

This reverts commit dd68c61e65.

resolves: https://issues.apache.org/jira/browse/AMQ-5542 and applies test case that nicely demonstrates the defect, thanks
2015-02-02 11:34:06 +00:00
gtully ae595c95b1 [maven-release-plugin] prepare for next development iteration 2015-01-30 12:46:19 +00:00
gtully 4ba1a1689f [maven-release-plugin] prepare release activemq-5.11.0 2015-01-30 12:46:08 +00:00
gtully bf5a2997c7 [maven-release-plugin] prepare for next development iteration 2015-01-26 16:48:46 +00:00
gtully eec2955bde [maven-release-plugin] prepare release activemq-5.11.0 2015-01-26 16:48:37 +00:00
gtully 64fa706d54 Revert "[maven-release-plugin] prepare release activemq-5.11.0"
This reverts commit f47fbe4b89.
2015-01-26 16:39:35 +00:00
gtully f47fbe4b89 [maven-release-plugin] prepare release activemq-5.11.0 2015-01-26 16:17:43 +00:00
Hadrian Zbarcea aedcae139b Revert "[maven-release-plugin] prepare release activemq-5.11.0"
This reverts commit 48b0cf396c.
2015-01-05 12:25:58 -05:00
Hadrian Zbarcea 89995f4723 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 7b285c6f52.
2015-01-05 12:25:47 -05:00
Dejan Bosanac 7b285c6f52 [maven-release-plugin] prepare for next development iteration 2014-12-29 12:44:32 +01:00
Dejan Bosanac 48b0cf396c [maven-release-plugin] prepare release activemq-5.11.0 2014-12-29 12:44:20 +01:00
Dejan Bosanac 9f53e2bcae adding missing licences 2014-12-29 12:25:04 +01:00
gtully 02d974c409 https://issues.apache.org/jira/browse/AMQ-5493 - apply patch from pedro with thanks - prevent spurious thread start on shutdown 2014-12-22 12:44:41 +00:00
Dejan Bosanac 802e527ea4 https://issues.apache.org/jira/browse/AMQ-5438 - improve kahadb archive logs. This closes #50 2014-12-04 14:04:23 +01:00
Timothy Bish 4141d6a223 https://issues.apache.org/jira/browse/AMQ-5444
fix missed sync of recovery file
2014-11-25 18:49:55 -05:00
gtully 135226533f https://issues.apache.org/jira/browse/AMQ-5394 - applied patch for kahadb lastUpdate tracking from Jesse Fugitt with thanks 2014-10-24 14:42:25 +01:00
gtully 67ead201e1 https://issues.apache.org/jira/browse/AMQ-5266 https://issues.apache.org/jira/browse/AMQ-4485 - single dest test with low limit exposed ignored setbatch in kahadb when sequence was not found in the index due to acking - resolved and validated with test that verifies dlq is empty 2014-10-21 16:05:46 +01:00
gtully 1d39f08c12 https://issues.apache.org/jira/browse/AMQ-5266 https://issues.apache.org/jira/browse/AMQ-4485 - fix warn logging from kahadb on set batch when message already consumed using seq from messageId, additional single dest test that hammers this case 2014-10-17 16:55:23 +01:00
gtully 9c2b1d2572 https://issues.apache.org/jira/browse/AMQ-5266 https://issues.apache.org/jira/browse/AMQ-4485 - store has messages must be aware of pending also kahadb setBatch for async sends. additional tests and tidy up of cusror sync with store to reflect async/sync additions 2014-10-16 23:35:18 +01:00
gtully 97c127d2d4 https://issues.apache.org/jira/browse/AMQ-4485 - fix test regression with browse test - AMQ4595Test - reduce replay window when sync and asnyc cursor updates flip message order - concurrentStoreAndDispatch=true - https://issues.apache.org/jira/browse/AMQ-5266 - increse default audit depth to match async jobs for concurrent store 2014-10-09 13:47:31 +01:00
gtully 140ce1bc8f https://issues.apache.org/jira/browse/AMQ-4485 - reenable test. concurrentStoreandDispatch case cannot be reconciled via setBatch, best we can do is trap duplicates from inflight messages as they occur. tagged async stores to support this. the revert of serialization with tx and non aysnc send brings perf back to where it was. https://issues.apache.org/jira/browse/AMQ-5266 2014-10-07 14:50:41 +01:00
gtully a0c42a61dd https://issues.apache.org/jira/browse/AMQ-5354 - patch applied with thanks 2014-09-15 15:59:00 +01:00
gtully 8cdb5c2c1d https://issues.apache.org/jira/browse/AMQ-5266 - remove err message print on iterator limit 2014-09-11 17:07:35 +01:00
gtully 54e2e3bef2 rework cursor store sync w.r.t to index order. resolve issues with skipped dispatch and duplicate dispatch. https://issues.apache.org/jira/browse/AMQ-4485 https://issues.apache.org/jira/browse/AMQ-5266 2014-08-30 00:51:21 +01:00
Timothy Bish 582fc08019 https://issues.apache.org/jira/browse/AMQ-5072
Add accessors to the persitence adapter class and a test to validate.
2014-08-14 11:14:59 -04:00
Daniel Kulp 06bb7a2716 Update poms to fully load into M2E 2014-07-10 13:47:55 -04:00
Timothy Bish 74846bb2b4 https://issues.apache.org/jira/browse/AMQ-3758
Refactor the scheduler store into a more KahaDB style store that can
recover from various problems like missing journal files or corruption
as well as rebuild its index when needed.  Move the scheduler store into
a more configurable style that allows for users to plug in their own
implementations.  Store update from legacy versions is automatic.
2014-07-07 12:28:11 -04:00
gtully 27b3a7c344 https://issues.apache.org/jira/browse/AMQ-5212 - ensure uncontented access to concurrent destination map avoides deadlock, rerework https://issues.apache.org/jira/browse/AMQ-4952 to differenciate duplicates from send and recovered messages from the store. https://issues.apache.org/jira/browse/AMQ-3454 benefits from getDestinationMap(destination) to get direct access to the map to determine existance. Additional test 2014-06-09 12:32:33 +01:00
Dejan Bosanac fa086396a7 [maven-release-plugin] prepare for next development iteration 2014-06-05 11:59:29 +02:00
Dejan Bosanac 58dd93e42e [maven-release-plugin] prepare release activemq-5.10.0 2014-06-05 11:59:17 +02:00
Dejan Bosanac c2cf78542f [maven-release-plugin] prepare for next development iteration 2014-06-04 11:33:17 +02:00
Dejan Bosanac 5bc741f227 [maven-release-plugin] prepare release activemq-5.10.0 2014-06-04 11:33:03 +02:00
Timothy Bish bfb1778211 https://issues.apache.org/jira/browse/AMQ-5166
Apply fix for tracker settings.
2014-05-06 16:31:27 -04:00
gtully ad1f751a41 https://issues.apache.org/jira/browse/AMQ-5077 - reduce reader thread work when client uses async send; async store updates can now queue up to the destination memory limit b/c they don't block the send thread. Pending store writes are now tracked in memory usage. This allows a client to quickly provide a burst of messages to fill the destination cache bounded only by network bandwidth 2014-04-30 16:13:18 +01:00
Hadrian Zbarcea 3f32507f78 Use autocrlf consistently for line endings 2014-04-29 14:18:37 -04:00
gtully 79ba2a79c1 have kahadb journal transaction commands respect enableJournalDiskSyncs - so consistent with leveldbstore - syncs off breaks the jms durability guarantee across the board - no good reason to distinguish transactional from non transaction ops; the server qos can override the client 2014-03-26 16:37:23 +00:00
gtully 266d23ef79 revisit https://issues.apache.org/jira/browse/AMQ-3519 with more durable solution https://issues.apache.org/jira/browse/AMQ-5068 - JMSRedelivered header now persisted before dispatch so that it is a reliable indication of a possible duplicate delivery. The option is enabled via destination policy persistJMSRedelivered 2014-03-26 11:16:42 +00:00
gtully cfe099d1cc rework https://issues.apache.org/jira/browse/AMQ-3305 in the context of https://issues.apache.org/jira/browse/AMQ-4952 dlq processing of duplicates, also possible missed dispatch with interleaved xa completion and new messages - recovered transactions are now individually tracked by the store and replayed in the next batch, which negates the need to flush the cursor and avoids duplicates 2014-03-05 14:51:05 +00:00
gtully ab01ae3818 fix build revert extras in MessageDatabase from https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=commit;h=69c0d399 - sorry 2014-03-03 16:20:21 +00:00
gtully 69c0d399fb make perpared xa transactions visible in kahadb persistenceadapter view mbean 2014-03-03 13:55:27 +00:00
Hiram Chirino 232b8c51e9 Implements AMQ-5072: Support configuring a different directory for the KahaDB index files. 2014-02-21 11:08:27 -05:00
Hadrian Zbarcea 7b555c2898 AMQ-5047. Fix packaging issues related to maven version 2014-02-15 16:15:04 -05:00
Kevin Earls c027552035 Upgraded surefire plugin to 2.16. AMQ-5006 2014-01-30 14:22:44 +01:00
Timothy Bish dd0c9c4144 https://issues.apache.org/jira/browse/AMQ-4988 2014-01-22 10:09:38 -05:00
Timothy Bish 11ae61f539 https://issues.apache.org/jira/browse/AMQ-4969 2014-01-14 18:48:40 -05:00
Timothy Bish ef619b6a9b https://issues.apache.org/jira/browse/AMQ-4947
Updated fix for this issue allows for enabling non-forced metadata
updates to the file channel via FileChannel#force(false)

enable this by defining
"org.apache.activemq.kahaDB.files.skipMetadataUpdate=true"
2014-01-09 17:21:56 -05:00
gtully f92d45bec1 https://issues.apache.org/jira/browse/AMQ-4952 - deal with duplicates by redirecting to dlq when they are detected by the cursors such that they don't linger for redispatch after a restart. Networks are the main culprit for such duplicates b/c the producer audit traps regular failover resends 2014-01-07 16:52:39 +00:00
Timothy Bish 97b12c7245 Revert "Fix for: https://issues.apache.org/jira/browse/AMQ-4947"
This reverts commit c50b6c39ba.
2014-01-06 09:32:46 -05:00
Timothy Bish 7db0fe6a38 https://issues.apache.org/jira/browse/AMQ-4819 2013-12-20 17:29:31 -05:00
Timothy Bish 44b25cb7a1 https://issues.apache.org/jira/browse/AMQ-4819
Slightly modified version of the patch since it was not against latest
code.  Trimmed down the changes by breaking out the logging checks into
a separate method.
2013-12-20 15:56:24 -05:00
Timothy Bish c50b6c39ba Fix for: https://issues.apache.org/jira/browse/AMQ-4947 2013-12-19 18:36:05 -05:00
gtully 06f24e2e0b https://issues.apache.org/jira/browse/AMQ-4907 - sanity check on the index when checkForCorruptJournalFiles - test and check that validates the orderindex makes sense 2013-11-28 21:14:24 +00:00
Claus Ibsen c0090f6f0c AMQ-4885: Renamed some API methods in MessageStore due typos. 2013-11-22 11:21:42 +01:00
gtully ff593bf3dd add debug logging for mkaha destination to persistence adapter mapping 2013-11-15 11:29:15 +00:00
Dejan Bosanac 5dacae368b https://issues.apache.org/jira/browse/AMQ-3725 - close delegated file only if not null 2013-11-01 14:03:20 +01:00
Dejan Bosanac 582af3e74a https://issues.apache.org/jira/browse/AMQ-3725 - allow kahadb to recover from failed file system 2013-10-31 17:58:52 +01:00
gtully 864aa6798f [maven-release-plugin] prepare for next development iteration 2013-10-14 23:38:35 +01:00
gtully 87c9bbebac [maven-release-plugin] prepare release activemq-5.9.0 2013-10-14 23:38:22 +01:00
gtully ee0933c71e [maven-release-plugin] prepare for next development iteration 2013-10-11 14:51:36 +01:00
gtully b276006911 [maven-release-plugin] prepare release activemq-5.9.0 2013-10-11 14:51:24 +01:00
Hiram Chirino 28163a4065 Don't assume all persistence store use the same default directory. 2013-09-27 05:10:30 -04:00
Hiram Chirino 70c698f988 Fixes NPE that was occurring. 2013-09-27 04:51:11 -04:00
Hiram Chirino 21fe8cac7d Make the mKahaDB store agnostic to the nested persistence adapter type. 2013-09-27 04:26:17 -04:00
gtully 0f90695db7 https://issues.apache.org/jira/browse/AMQ-4729 - add lockableSupport to mKahaDb to isolate it from dynamically created filtered kahadb locks, nested locks are disabled when top level lock is in place. default to a sharedfile locker 2013-09-19 21:58:43 +01:00
Timothy Bish d1446c3bca fix and tests for: https://issues.apache.org/jira/browse/AMQ-4073 2013-09-05 15:59:01 -04:00
Timothy A. Bish 2d861dae65 fix for: https://issues.apache.org/jira/browse/AMQ-4683
Make scheduler job dispatching start more deterministic

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1516912 13f79535-47bb-0310-9956-ffa450edef68
2013-08-23 16:01:12 +00:00
Timothy A. Bish 85bb229aa7 fix for: https://issues.apache.org/jira/browse/AMQ-4683
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1516561 13f79535-47bb-0310-9956-ffa450edef68
2013-08-22 19:45:22 +00:00
Gary Tully 90d6c2042d https://issues.apache.org/jira/browse/AMQ-4212 - fix auto upgrade from ver 1 and 2 to 5 - regression in KahaDBVersionTest
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1511711 13f79535-47bb-0310-9956-ffa450edef68
2013-08-08 11:51:29 +00:00
Gary Tully 0061f6f755 https://issues.apache.org/jira/browse/AMQ-4000 - tracking subscription commands causes a problem with replay outside of activate - can reset a sub ack locations - regression in AMQ2149Test. Fixed by ignoring sub add during recovery replay
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1511306 13f79535-47bb-0310-9956-ffa450edef68
2013-08-07 13:38:53 +00:00