Commit Graph

457 Commits

Author SHA1 Message Date
Michael Andre Pearce 7b40abead9 ARTEMIS-1308: Make acknowlegde in AcitveMQMessage non blocking
Allow commit within the acknowledge to be non blocking (batch) this toggles the on the existing blockonacknowlegde config.
2017-08-08 10:07:15 -04:00
Clebert Suconic f16af75354 ARTEMIS-1324 Deadlock detection and health check of critical components 2017-08-07 18:40:03 -04:00
Justin Bertram b6b8fa411f ARTEMIS-1322 ServerLocator option to ignore topology for load-balancing 2017-08-04 13:56:30 -05:00
Howard Gao 613b459c52 ARTEMIS-1315 Client disconnection may cause consumer to hang
When calling a consumer to receive message with a timeout
(receive(long timeout), if the consumer's buffer is empty, it sends
a 'forced delivery' the waiting forever, expecting the server to
send back a 'forced delivery" message if the queue is empty.

If the connection is disconnected as the arrived 'forced
delivery' message is corrupted, this 'forced delivery' message
never gets to consumer. After the session is reconnected,
the consumer never knows that and stays waiting.

To fix that we can send a 'forced delivery' to server right
after the session is reconnected.
2017-08-02 12:48:43 -04:00
Dmitrii Tikhomirov bef3864c72 [ARTEMIS-1311] Log messages without prefixed id code in artemis-core-client 2017-07-31 12:51:15 -04:00
Clebert Suconic 7bf8e4e890 ARTEMIS-1305 Server Frozen during shutdown if RA is retrying 2017-07-25 22:33:55 -04:00
Clebert Suconic fdad83be22 [maven-release-plugin] prepare for next development iteration 2017-07-24 21:21:18 -04:00
Clebert Suconic 71b1cc2a20 [maven-release-plugin] prepare release 2.2.0 2017-07-24 21:21:06 -04:00
Clebert Suconic 50a900c04b ARTEMIS-1304 Message loss on Commmit timeout during failover 2017-07-24 20:23:56 -04:00
Francesco Nigro fdbf4f450a ARTEMIS-1301 Network failures recognition on backpressure while streaming large messages 2017-07-20 10:33:04 +01:00
Martyn Taylor e742de7d6e ARTEMIS-1290 QueueQuery add prefix on address 2 2017-07-18 16:16:42 -04:00
Martyn Taylor 34df3afe0c Revert "ARTEMIS-1290 QueueQuery add prefix on address"
This reverts commit 44506f2258.
2017-07-18 16:16:42 -04:00
Andy Taylor 6f140897c6 ARTEMIS-1296 - fix quorum vote
Add a check on top of just being able to connect to a live broker

https://issues.apache.org/jira/browse/ARTEMIS-1296
2017-07-18 08:10:11 +01:00
Martyn Taylor 44506f2258 ARTEMIS-1290 QueueQuery add prefix on address 2017-07-17 10:31:20 -04:00
Clebert Suconic f18b4ee0c9 ARTEMIS-1287/ARTEMIS-1292 Complete Page on the Journal
fixing PagingTest.testDeletePhysicalPages
2017-07-14 15:04:45 -04:00
Jiri Danek 3e1237c1eb NO-JIRA fix few typos and a docstring 2017-07-11 19:34:06 -04:00
Clebert Suconic 36357e4556 ARTEMIS-1282 ClientSession.ceateQueue (String) method is using temporary queues 2017-07-11 19:24:22 -04:00
Clebert Suconic 7fd17f407f ARTEMIS-1269 Simple Actor to replace certain executions
This is replacing an executor on ServerSessionPacketHandler
by a this actor.

This is to avoid creating a new runnable per packet received.

Instead of creating new Runnable, this will use a single static runnable
and the packet will be send by a message, which will be treated by a listener.

Look at ServerSessionPacketHandler on this commit for more information on how it works.
2017-07-11 14:22:36 -04:00
Jiri Danek ad228e202f NO-JIRA: Addressing some deprecated usage on the codebase
- PROTOCOL_PROP_NAME
- ConnectionLifeCycleListener
- GENERIC_IGNORED_FILTER
- HttpHeaders.Names
- HttpHeaders.Names and similar
2017-07-10 14:06:07 -04:00
gtully d4150be0d9 ARTEMIS-1264 allow role mapping via chained login modules
Add krb5sslloginmodule that will populate userPrincipal that can be mapped to roles independently
Generalised callback handlers to take a connection and pull certs or peerprincipal based on
callback. This bubbled up into api change in securitystore and security manager
2017-07-06 23:41:02 -04:00
gtully cda1e018e1 ARTEMIS-1264 Foundation work for authentication with Kerberos using KRB_ cypher suites.
Core client with netty connector and acceptor doing kerberos
jaas.doAs around sslengine init such that the SSL handshake can do kerberos ticket
generaton and validation.
The kerberos authenticated user is then validated with the security manager before
being populated into the message userId.
The feature is enabled with the kerb5Config property. When lowercase it is the
principal. With a leading uppercase char it is the login.config entry to use.
2017-07-06 11:30:25 -04:00
Daniel Kulp faae59e6d4 [ARTEMIS-565] Remove json.org stuff from license files as we have not depended on that for almost a year 2017-07-05 15:47:06 -04:00
Clebert Suconic 387fca584e ARTEMIS-1269 replication won't finish synchronization 2017-07-01 00:48:33 -04:00
Howard Gao 06986e4ee1 ARTEMIS-1261 Adjust default confirmation-window-size for bridges
The default id-cache-size is 20000 and the default
confirmation-window-size is 1MB. It turns out the 1MB
size is too small for id-cache-size.

To fix it we adjust the confirmation-window-size to 10MB. Also
a test is added to guarantee it won't break this rule when this
default value is to be changed to any new value.
2017-06-29 12:56:16 -04:00
Francesco Nigro a8356fb057 ARTEMIS-1246 Fixing compatibility issue
It fixes compatibility issues with JMS Core clients using the old address model, allowing the client to query JMS temporary queues too.

you would eventually see this issue when using older clients:
AMQ119019: Queue already exists
2017-06-27 14:23:36 -04:00
Andy Taylor fbe27682a1 ARTEMIS-1237 - Hard coded timeout on Journal file open
Make timeout configurable

https://issues.apache.org/jira/browse/ARTEMIS-1237
2017-06-22 10:48:09 -04:00
Howard Gao 3d0896f87c ARTEMIS-1240 Disconnect at client side on decoding error
When a broken packet arrives at client side it causes decoding error.
Currently artemis doesn't handle it properly. It should catch such
errors and disconnect the underlying connection, logging a proper
warning message
2017-06-21 10:25:34 -04:00
Michael Andre Pearce 44b7e455cb ARTEMIS-1205: AMQP Shared Durable Subscriber incorrect behaviour
Use AcitveMQDestination for subscription naming, fixing and aligning queue naming in the process.

The change is behind a configuration toggle so to avoid causing any breaking changes for uses not expecting.
2017-06-19 12:44:13 +01:00
Dmitrii Tikhomirov 6ddeb96a8a [ARTEMIS-1226] Log messages without prefixed id code in artemis-jms-client 2017-06-12 12:39:33 -05:00
Clebert Suconic 6314b17667 ARTEMIS-1187 fix checkstyle 2017-05-31 20:24:02 -04:00
Tomas Hofman 8eb5ce9ebd ARTEMIS-1187 Incompatible version when recreating a session with older server 2017-05-31 11:46:35 -04:00
Michael Andre Pearce c65ea783ea ARTEMIS-1189 - Fix checkstyle violations post checkstyle upgrade
After upgrade of checkstyle, resolve violations

remove checkstyle override added as temp measure at point of upgrade forced by sevntu
2017-05-30 13:40:00 -04:00
Justin Bertram 5a9830af17 Revert "[ARTEMIS-1171] Improve log readability around clustering"
This reverts commit 744221dcb5.

Broke o.a.a.a.t.i.m.QueueControlUsingCoreTest.testListDeliveringMessages
2017-05-25 10:53:42 -04:00
Clebert Suconic 15bb4d2c61 ARTEMIS-1176 Fixing reading from JMS Messages as core messages 2017-05-24 18:37:46 -04:00
Ingo Weiss 744221dcb5 [ARTEMIS-1171] Improve log readability around clustering
Issue: https://issues.apache.org/jira/browse/ARTEMIS-1171
2017-05-17 14:11:08 -04:00
Clebert Suconic dc26ac96b4 ARTEMIS-1156: moving our collections on its own package 2017-05-12 10:06:05 -04:00
Clebert Suconic 02dcfe0468 ARTEMIS-1158 exposing Netty.channelID properly 2017-05-10 21:50:19 -04:00
Clebert Suconic ce61d20f5a [maven-release-plugin] prepare for next development iteration 2017-05-08 15:20:12 -04:00
Clebert Suconic 64e8f015ee [maven-release-plugin] prepare release 2.1.0 2017-05-08 15:20:01 -04:00
Clebert Suconic 36c9659279 [maven-release-plugin] prepare for next development iteration 2017-05-05 22:11:09 -04:00
Clebert Suconic 7b5082639f [maven-release-plugin] prepare release 2.1.0 2017-05-05 22:10:58 -04:00
Bernd Gutjahr 6017e305d9 ARTEMIS-1112: Added wait-for-activation option to shared-store-master config
Added a wait-for-activation option to shared-store master HA policies.
This option is enabled by default to ensure unchanged server startup behavior.

If this option is enabled, ActiveMQServer.start() with a shared-store master server will not return
before the server has been activated.
If this options is disabled, start() will return after a background activation thread has been started.
The caller can use waitForActivation() to wait until server is activated, or just check the current activation status.
2017-05-03 16:40:15 -04:00
Jeff Mesnil 15b913333f [ARTEMIS-1043] Support IPv6 in NettyConnector
Wrap the host added to the HTTP request headers with IPV6Util.encloseHost
to ensure that load balancers that reads the header will have a valid
IPv6 address.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1043
2017-05-03 12:31:00 -04:00
Aditya Sharad 52a5b85557 ARTEMIS-1135: Prevent overflow in `DayCounter`
Use `long` array for hourly counters instead of `int` array.
Prevents overflow when the number of new messages (a `long`) is added.
Fixes one of the "Implicit narrowing conversion in compound assignment"
alerts on https://lgtm.com/projects/g/apache/activemq-artemis/alerts.
2017-05-02 13:00:46 -04:00
Zoran Regvart 6db0c50272
Removes deprecated use and raw types
This cleans up the Netty implementation by replacing deprecated usage
and adds type parameters to raw types used.
2017-05-02 11:00:56 +02:00
Justin Bertram 7e0fedf52e ARTEMIS-590 connector option to use default SSL context 2017-04-28 10:14:09 +01:00
Francesco Nigro 258d595972 ARTEMIS-1124 JDBC Network Timeout configuration 2017-04-20 19:43:10 +01:00
Clebert Suconic c82ac631b8 NO-JIRA fixing NettySecurityClientTest 2017-04-18 15:14:21 -04:00
Clebert Suconic cc22a0286b ARTEMIS-1101 Fixing JMSFilter on AMQP 2017-04-11 16:07:33 -04:00
Francesco Nigro da6b851c60 ARTEMIS-1098 Improve flow control while streaming large messages 2017-04-10 13:58:33 -04:00
Clebert Suconic dbe1976b47 NO-JIRA: Using Env as the source of isTestEnv 2017-04-07 10:31:03 -04:00
Francesco Nigro a0f369af05 ARTEMIS-1099 Force Netty EPOLL to be available only on Linux 64bit platforms 2017-04-07 10:28:22 -04:00
Clebert Suconic 911888e8d1 ARTEMIS-1089 Improving flow control on replication 2017-04-06 21:45:31 -04:00
Jeff Mesnil ee50ce4042 [ARTEMIS-1043] Support IPv6 in NettyConnector
Call IPV6Util.encloseHost when creating the uri used to send the HTTP
ugrade request to ensure that IPv6 address are properly enclosed.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1043
2017-04-06 19:57:21 -05:00
Clebert Suconic cbe3621431 ARTEMIS-1096 Changing Global Max Size's default 2017-04-06 19:55:09 -05:00
Francesco Nigro 41a069a346 NO-JIRA Fixed log level test on NettyConnection 2017-04-06 13:23:49 -04:00
Clebert Suconic f88311b04b ARTEMIS-1025 small tweak on logs 2017-04-06 11:40:10 -04:00
Francesco Nigro 27cfb2d902 ARTEMIS-1025 Improve flow control on NettyConnection 2017-04-06 17:22:05 +02:00
Francesco Nigro f53449b945 ARTEMIS-1095 Netty's WriteBufferWaterMark configuration via TransportConstants 2017-04-06 15:26:13 +02:00
Justin Bertram 073a280629 ARTEMIS-1092 Validated user + AMQP fix
When populate-validated-user = true AMQP messages can cause exceptions.
This feature isn't particularly applicable to AMQP so this commit
eliminates the exception and leaves the AMQP messages untouched
even if populate-validated-user = true. In other words,
populate-validated-user + AMQP is not supported.
2017-04-04 14:46:22 -05:00
Clebert Suconic 9bef242b74 ARTEMIS-1056 Adjusting Acceptor values
I have been doing tests with quiver at large message sizes
the tests would work really slowly without these fixes
2017-03-30 09:54:26 +01:00
Howard Gao 82c720bdfb ARTEMIS-1071 Invalid Type exception handling improvements
If broker fails to decode any packets from buffer, it should
treat it as a critical bug and disconnect immediately.
Currently broker only logs an error message.
2017-03-29 09:19:52 -04:00
Justin Bertram ce3adf6fa8 ARTEMIS-1065 get queue names by routing type 2017-03-29 09:18:16 -04:00
Clebert Suconic 1f4473e8d7 ARTEMIS-1081 Implementing AMQP UndeliverableHere 2017-03-28 20:32:28 -05:00
Justin Bertram b7e11f92b6 ARTEMIS-1064 AddressControl routingType fix 2017-03-28 15:30:52 -05:00
Armand Roelens 3ceb332866 ARTEMIS-1074 Acceptors/Connectors now start up when configured to use SSL and a password codec 2017-03-28 15:10:33 -05:00
Clebert Suconic b395504e15 ARTEMIS-1077 Fixing Pool usage on InVM and RemotingConnection 2017-03-28 09:19:57 -05:00
Andy Taylor ec7e6d7ea7 ARTEMIS-1075 - Add Routing Type to QueueControl management API
https://issues.apache.org/jira/browse/ARTEMIS-1075
2017-03-28 10:40:52 +01:00
Justin Bertram 427039ef38 ARTEMIS-1068 routingType + AMQP fixes 2017-03-24 15:15:10 -05:00
Clebert Suconic 096556f346 ARTEMIS-994 Tidy up on epoll
- improved logging
- renamed properties and tidy up on configurations
2017-03-23 18:16:48 -05:00
Michael André Pearce a610748c09 ARTEMIS-994 Support Netty Native Epoll on Linux
The following changes are made to support Epoll.

Refactored SharedNioEventLoopGroup into renamed SharedEventLoopGroup to be generic (as so we can re-use for both Nio and Epoll)

Add support and toggles for Epoll in NettyAcceptor and NettyConnector (with fall back to NIO if cannot load Epoll)

Removal from code of PartialPooledByteBufAllocator, caused bad address when doing native, and no longer needed - see jira discussion

New Connector Properties:

useEpoll - toggles to use epoll or not, default true (but we failback to nio gracefully)
remotingThreads = same behaviour as nioRemotingThreads. Previous property is depreated.
useGlobalWorkerPool = same behaviour as useNioGlobalWorkerPool. Old property is deprecated.

New Acceptor Properties:

useEpoll - toggles to use epoll or not, default true (but we failback to nio gracefully)
useGlobalWorkerPool = same behaviour as useNioGlobalWorkerPool but for Epoll.

This closes #1093
2017-03-23 18:16:48 -05:00
Clebert Suconic 2c9b02806d ARTEMIS-1056 Removing PartialPooledByteBufAllocator 2017-03-23 18:16:48 -05:00
Francesco Nigro 759d3b78d9 ARTEMIS-1036 Streaming huge messages would cause OME 2017-03-23 10:42:44 -04:00
Jeff Mesnil bbba5617d6 [ARTEMIS-1057] Log AMQ214023 at DEBUG level
JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1057
2017-03-22 09:55:40 -05:00
Clebert Suconic 0bfb39bfb5 ARTEMIS-1056 Performance improvements on AMQP 2017-03-22 09:55:02 -05:00
Clebert Suconic 65ac7f700b ARTEMIS-1052 Proper Expiry over AMQP 2017-03-20 18:33:31 -04:00
Andy Taylor c6f73b0c0a ARTEMIS-1042 - support amqp failover list
https://issues.apache.org/jira/browse/ARTEMIS-1042
2017-03-17 15:08:58 -04:00
Martyn Taylor c40823e5ec [maven-release-plugin] prepare for next development iteration 2017-03-10 14:54:33 +00:00
Martyn Taylor 70e319d6e3 [maven-release-plugin] prepare release 2.0.0 2017-03-10 14:52:26 +00:00
Martyn Taylor f1a5f1caf9 Revert "[maven-release-plugin] prepare release 2.0.0"
This reverts commit 057047499b.
2017-03-10 14:45:29 +00:00
Martyn Taylor 1964abe567 Revert "[maven-release-plugin] prepare for next development iteration"
This reverts commit 9a52f51c9f.
2017-03-10 14:44:58 +00:00
Martyn Taylor 9a52f51c9f [maven-release-plugin] prepare for next development iteration 2017-03-10 11:36:36 +00:00
Martyn Taylor 057047499b [maven-release-plugin] prepare release 2.0.0 2017-03-10 11:25:47 +00:00
Clebert Suconic a41a1930ef ARTEMIS-1009 AMQP shouldn't use application properties
As part of my refactoring on AMQP, the broker shouldn't rely on Application properties
for any broker semantic changes on delivery.

I am removing any access to those now, so we can properly deal with this post 2.0.0.
2017-03-09 12:27:39 -05:00
Clebert Suconic c369084381 ARTEMIS-1009 Tight up on AMQP
avoiding application properties even further
fixing nolocal
2017-03-09 08:12:42 -06:00
Clebert Suconic 94b47e370b ARTEMIS-1009 Fixing compatibility
there was an issue with running older clients
Found by this testsuite:

https://github.com/clebertsuconic/messaging-versioning

this will fix further compatibility issues
2017-03-06 22:09:41 -05:00
Clebert Suconic fe0ca4d84f ARTEMIS-1009 Pure Message Encoding.
with this we could send and receive message in their raw format,
without requiring conversions to Core.

- MessageImpl and ServerMessage are removed as part of this
- AMQPMessage and CoreMessage will have the specialized message format for each protocol
- The protocol manager is now responsible to send the message
- The message will provide an encoder for journal and paging
2017-03-05 23:08:53 -05:00
Howard Gao 392fd08614 ARTEMIS-1007 Missing management annotations
There are some operations in ActiveMQServerControl that don't have
@Parameter annotations. That will make clients like JBoss Jon failed
to invoke those operations.
Also in AddressControl there is a typo in sendMessage. The second
parameter's name should be 'type' not 'headers'.
2017-03-01 08:30:11 -06:00
Martyn Taylor dc40f60e6b ARTEMIS-1002 Use default PooledBufferAllocator in ActiveMQBuffers 2017-02-27 14:23:29 -05:00
Justin Bertram 16285ba548 ARTEMIS-993 removing unreachable code 2017-02-24 13:36:23 -06:00
Jiri Danek a7a0535afa NO-JIRA Fixing typos in log messages, test names and comments
Related to ARTEMIS-387 (fowardingAddress)
2017-02-20 20:54:45 -05:00
Clebert Suconic 41737c8f3c Revert "NO-JIRA Remove Property shouldn't invalidate buffer if not found"
This reverts commit cf71b7292a.
2017-02-17 11:52:07 -05:00
Clebert Suconic cf71b7292a NO-JIRA Remove Property shouldn't invalidate buffer if not found 2017-02-16 21:03:38 -05:00
Clebert Suconic f38d5c7dbc ARTEMIS-969 Unecessary buffer expansion on message delivery 2017-02-15 13:49:00 -05:00
Justin Bertram 168ea70149 ARTEMIS-953 small syntax error 2017-02-14 20:20:11 -05:00
Jeff Mesnil 992dc2bc1b [ARTEMIS-963] Prevent ClassCastException in ActiveMQChannelHandler
When HTTP Upgrade is enabled, update Netty's pipeline only after the
HTTP Upgrade handshake is successful *and* the trailing
EMPTY_LAST_CONTENT is received.
Otherwise, this EMPTY_LAST_CONTENT is handled by
ActiveMQChannelHandler which is only expected to handle ByteBuf

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-963
2017-02-14 11:45:26 -06:00
Justin Bertram ff3e75d148 NO-JIRA move RoutingType to different package 2017-02-13 09:50:41 -06:00
Clebert Suconic 452330153e NO-JIRA: MessageImpl::forceCopy is no longer used 2017-02-09 19:39:54 -05:00
Justin Bertram 2bda3b2b4f ARTEMIS-953 Refactor JMX ObjectNames 2017-02-08 15:00:20 -06:00
Andy Taylor 43a9276484 ARTEMIS-866 - replication improvements
add functionality to allow live to vote for quorum on failure

Also allow the quorum size to be configurable.

https://issues.apache.org/jira/browse/ARTEMIS-866
2017-02-07 13:47:03 +00:00