Commit Graph

89 Commits

Author SHA1 Message Date
Martyn Taylor 466f5f8ebe ARTEMIS-1482 Catch malformed SimpleString 2017-10-25 14:23:53 +01:00
Clebert Suconic 393cf9bfef ARTEMIS-1334 Scheduled component shouldn't be synchronized
(cherry picked from commit 8bc15b1199)
2017-08-10 14:12:13 -04:00
Clebert Suconic 25c0f93ad5 ARTEMIS-1328 Improving direct delivery check
Based on #1447 as it is not possible to cherry-pick here
2017-08-08 13:00:37 -04:00
Clebert Suconic 276319d72b ARTEMIS-1269 Fixing blocked replication
If replication blocked anything on the journal
the processing from clients would be blocked
and nothing would work.

As part of this fix I am using an executor on ServerSessionPacketHandler
which will also scale better as the reader from Netty would be feed immediately.
2017-07-07 08:56:31 -04:00
Justin Bertram 7e4de767b7 ARTEMIS-1154 isolated backup fails over
Even if there is no address/url configured for the NetworkHealthCheck
an isolated backup will still fail-over potentially causing split-brain.

(cherry picked from commit 5cb5c8a6dc)
2017-05-09 16:41:14 -04:00
Francesco Nigro 25094f2721 ARTEMIS-1151 Adapting TimedBuffer and NIO Buffer Pooling
- NIO/ASYNCIO new TimedBuffer with adapting batch window heuristic
- NIO/ASYNCIO improved TimedBuffer write monitoring with
  lightweight concurrent performance counters
- NIO/ASYNCIO journal/paging operations benefit from less buffer copy
- NIO/ASYNCIO any buffer copy is always performed with raw batch copy
  using SIMD instrinsics (System::arrayCopy) or memcpy under the hood
- NIO improved clear buffers using SIMD instrinsics (Arrays::fill) and/or memset
- NIO journal operation perform by default TLABs allocation pooling (off heap)
  retaining only the last max sized buffer
- NIO improved file copy operations using zero-copy FileChannel::transfertTo
- NIO improved zeroing using pooled single OS page buffer to clean the file
  + pwrite (on Linux)
- NIO deterministic release of unpooled direct buffers to avoid OOM errors
  due to slow GC
- Exposed OS PAGE SIZE value using Env class

(cherry picked from commit 21c9ed85cf)
2017-05-08 18:31:23 -04:00
dOkI e4c4539c8f ARTEMIS-874: ThreadGroup memory leak 2017-05-05 22:10:59 +05:00
Clebert Suconic ec9615a01a ARTEMIS-1114 Missing records after compacting
This is fixing an issue introduced on 4b47461f03 (ARTEMIS-822)
The Transactions were being looked up without the readLock and some of the controls for Read and Write lock
were broken after this.

(cherry picked from commit ddacda5062)
2017-04-14 01:24:45 -04:00
Clebert Suconic 7929fff893 ARTEMIS-1089 Fixing Replication catchup slow 2017-04-03 12:58:13 +01:00
Martyn Taylor bae011bafb ARTEMIS-1087 Make InVM buffer pooling configurable
(cherry picked from commit 8760b3ddfd)
2017-04-03 12:12:33 +01:00
Bernd Gutjahr f94f8f4718 ARTEMIS-1078 Improving ActiveMQThreadPoolExecutor
This is now considering only threads waiting for the queue to get new tasks as idle.

The thread pool maintained a counter of active threads, but that counter was increased
too late in the beforeExecute method. Submitting a task created a new thread.
If now a second task was submitter before the new thread had started to execute it's task,
the second task was queued without creating a 2nd thread. So the second task was only
executed after the first task had been completed - even if the thread pool's
maximum number of thread had not been reached.

This fix now maintains the delta between the number those threads that are currently waiting
in the queue's poll or take methods as idle threads, and the number of queued tasks.
It creates new threads unless there are enough idle threads to pick up all queued tasks.

This closes #1144

(cherry picked from commit 5a31e70353)
2017-03-31 19:02:24 -04:00
Armand Roelens 9330fc8546 ARTEMIS-1074 Acceptors/Connectors now start up when configured to use SSL and a password codec
(cherry picked from commit 3ceb332866)
2017-03-28 17:40:35 -07:00
Martyn Taylor fbdac0c97d ARTEMIS-1002 Use default PooledBufferAllocator in ActiveMQBuffers
(cherry picked from commit dc40f60e6b)
2017-02-27 14:24:04 -05:00
Erich Duda a4b33bb33a ARTEMIS-995 Bulk of test fixes
This commit fixes tests:
 ActiveMQScheduledComponentTest.testAccumulationOwnPool
 PendingDeliveriesTest.testWithtReconnect
 ReceiveTest.testReceiveImmediate
 ActiveMQProducerResourceTest.testSendString
 EmbeddedActiveMQResourceTest.testSendString
 MultipleEmbeddedActiveMQResourcesTest.testMultipleServers
 MultipleEmbeddedJMSResourcesTest.testMultipleServers
 ActiveMQDynamicProducerResourceWithoutAddressTest.testSendString
 ActiveMQDynamicProducerResourceWithoutAddressExceptionTest.testSendBytesToDefaultAddress
 ActiveMQDynamicProducerResourceTest.testSendString
 ActiveMQServerControlTest.testTotalMessageCount
 EmbeddedActiveMQResourceCustomConfigurationTest.testCustomConfiguration
 EmbeddedJMSResourceMultipleFileConfigurationTest.testConfiguration
 EmbeddedJMSResourceQueueTest.testPushObjectMessage
 EmbeddedJMSResourceSingleFileConfigurationTest.testConfiguration
 EmbeddedActiveMQResourceFileConfigurationTest.testConfiguredQueue
 EmbeddedJMSResourceTopicTest.testPushObjectMessage
 LargeMessageFailoverTest.testTimeoutOnFailoverTransactionCommit

(cherry picked from commit 0c64cbfa4e)
2017-02-24 17:17:21 +01:00
Justin Bertram 9b3cc8c329 ARTEMIS-873 support byte notation in XML config
(cherry picked from commit 113b28577c)
2017-01-19 10:33:54 -05:00
Will Reichert 036933a4a4 ARTEMIS-928 Changing Netty and InVM to copy buffers, and retain them on the Netty Polls.
(cherry picked from commit 3347a4fd27)
2017-01-18 17:04:32 -05:00
Clebert Suconic aaf09262ff ARTEMIS-962 Adding test for CME when parsing system properties and a few tweaks
(cherry picked from commit 7a7f335271)
2017-01-18 16:21:14 -05:00
Clebert Suconic 43634c098b ARTEMIS-863 parsing spaces properly on network health addresses and avoiding loopback on configuration 2016-11-29 15:24:06 -05:00
Dmitrii Tikhomirov 3995319dca ARTEMIS-865 Remove e.printStackTrace() from code 2016-11-23 11:15:54 -05:00
Clebert Suconic 402f25be7d ARTEMIS-473/ARTEMIS-863 Detect network failures 2016-11-23 10:14:14 -06:00
Francesco Nigro 3281698f9f ARTEMIS-841 Hash Processors lock free lazy singleton instantiation 2016-11-07 13:47:22 -05:00
Clebert Suconic 5965a45894 ARTEMIS-786 Using RandomUtil instead of SecureRandom..
This was introducing several performance hits. I was running the examples and they were not completing at all on my environment.
2016-11-02 19:00:13 -04:00
Howard Gao cd7b838952 ARTEMIS-786 Store user's password in hash form by default
- user passwords for PropertiesLoginModule stored using PBKDF2 algothrim
    by default
  - implements cli user command to help create and manage user/roles
  - adds a mask cli command to mask passwords
2016-11-02 14:59:00 -04:00
Clebert Suconic 8b25f09c3b ARTEMIS-835 speed up test 2016-11-02 13:43:51 -04:00
Howard Gao 8c1ec12b33 ARTEMIS-835 Quick restart of broker will leave tmp dir dirty
- Added a timeout wait on each web context's tmp dir in
    WebServerComponent.stop() method.
2016-11-02 13:43:51 -04:00
barreiro 4b47461f03 ARTEMIS-822 Add executor service to JournalImpl for append operations and remove synchronization
https://issues.apache.org/jira/browse/ARTEMIS-822
2016-10-28 16:54:59 -04:00
Clebert Suconic ec48f9ed00 ARTEMIS-765 Improve Checkstyle 2016-09-30 11:12:09 -04:00
Clebert Suconic a838bf0479 ARTEMIS-751 Simplification of the AMQP implementation
Since we don't need client implementations any longer, given the maturity level of
qpid jms, these classes can go, as a result a lot of the interfaces can be removed.

As part of this I am removing proton-plug, and reorganizing the packages in a way I think it
makes more sense and easier to other developers to understand and maintain it.

https://issues.apache.org/jira/browse/ARTEMIS-751
2016-09-27 09:29:40 -04:00
Ville Skyttä 1a4fe92802 Fix WaitNotInLoop issues flagged by new Error Prone 2016-09-27 14:28:29 +03:00
Ville Skyttä 02a7ac2949 Add missing @Overrides 2016-09-21 16:31:14 -04:00
Clebert Suconic 9cea1598d6 Improving ScheduledComponent to avoid bursts after long waits 2016-09-15 16:02:49 +01:00
Ville Skyttä 7bff07d5b1 Add missing @Overrides 2016-09-14 13:22:20 +03:00
Clebert Suconic f8278ec99c ARTEMIS-727 Improving Thread usage on JDBC
https://issues.apache.org/jira/browse/ARTEMIS-727
2016-09-12 14:32:40 -04:00
Martin Styk d5eaccf3ba ARTEMIS-709 Possible NPE on UUIDGenerator.getAllNetworkInterfaces() 2016-08-31 13:41:47 +02:00
Ville Skyttä d5242978d5 for and while loop to foreach conversions 2016-08-25 14:22:32 -04:00
Clebert Suconic 92c5d5cd50 ARTEMIS-684 Random is not equaly distributed among different VMs 2016-08-23 19:36:54 -04:00
Clebert Suconic ad21b5b70b ARTEMIS-591 Fixing typos 2016-08-15 22:04:38 -04:00
Clebert Suconic 18563e4539 ARTEMIS-591 Improvement on Timeout check 2016-08-15 14:09:37 -04:00
Ville Skyttä 330c65ba35 Remove unnecessary @SuppressWarnings("unchecked") 2016-08-09 11:24:22 +01:00
Clebert Suconic 579d6226aa ARTEMIS-671 Returning messages after connection killed, and validating usage of reconnect 2016-08-09 11:23:46 +01:00
Martyn Taylor 06fb4a1234 ARTEMIS-667 Make AMQP Exceptions extend ActiveMQException 2016-08-05 15:29:01 +01:00
Ville Skyttä f981dbd7cf Avoid NPE if deleteDirectory fails to list files to clean up 2016-07-28 15:25:45 -04:00
John D. Ament d0ecf0f3a5 ARTEMIS-565 Replace json.org with javax.json
Javax.json is a newer JSR, but has an ASF compliant version, is pretty close to the original JSON.org API and will support a standard annotation based JSON-B solution at some point soon.
Updated integration tests and removed JSON.org from license.
2016-07-25 21:44:57 -04:00
jbertram 577620533d Fix ByteBuffer regression from Netty upgrade
Using array() is a bit dangerous as it's an optional part of any
ByteBuffer implementation. This new method will deal with various
ByteBuffer implementations appropriately.
2016-07-25 16:26:21 +01:00
Ville Skyttä 33a51223b0 Remove redundant type arguments 2016-06-14 20:50:21 -04:00
Ville Skyttä 3923ae45f4 Fix checkstyle redundant modifier violations 2016-06-13 20:03:54 +03:00
Ville Skyttä e493748040 Fix checkstyle curly brace violations 2016-06-13 18:21:43 +03:00
Clebert Suconic 10dfe97ec0 Adding JORAM Tests for AMQP with a few fixes around the protocol manager for JMS 2016-05-25 09:41:40 -04:00
Erich Duda a622fa7443 ARTEMIS-518 - Improvement of default thread factory 2016-05-09 14:33:41 -04:00
Bernd Gutjahr 1591d25692 ARTEMIS-507 New thread pool for client threads
- Added a thread pool executor, that combines cached and fixed size thread pooling.
  It behaves like a cached thread pool in that it reuses exising threads and removes
  idle threads after a timeout, limits the maximum number of threads in the pool, but
  queue additional request instead of rejecting them.
- changed existing code to use the new thread pool instead of a fixed-size thread pool in
  all places that are configured with a client thread pool size.
2016-04-27 11:03:32 +01:00