462 Commits

Author SHA1 Message Date
Howard Gao
7b1a1b058a ARTEMIS-1221 Duplicated ID causes LargeMessage lost at backup
When a large message is replicated to backup, a pendingID is generated
when the large message is finished. This pendingID is generated by a
BatchingIDGenerator at backup.

It is possible that a pendingID generated at backup may be a duplicate
to an ID generated at live server.

This can cause a problem when a large message with a messageID that is
the same as another largemessage's pendingID is replicated and stored
in the backup's journal, and then a deleteRecord for the pendingID
is appended. If backup becomes live and loads the journal, it will
drop the large message add record because there is a deleteRecord of
the same ID (even though it is a pendingID of another message).
As a result the expecting client will never get this large message.

So in summary, the root cause is that the pendingIDs for large
messages are generated at backup while backup is not alive.

The solution to this is that instead of the backup generating
the pendingID, we make them all be generated in advance
at live server and let them replicated to backup whereever needed.
The ID generater at backup only works when backup becomes live
(when it is properly initialized from journal).

(cherry picked from commit d50f577cd50df37634f592db65200861fe3e13d3)
2017-09-26 14:28:05 -04:00
Andy Taylor
2c89287009 ARTEMIS-1224 - change the journal file size to nearest multiple
https://issues.apache.org/jira/browse/ARTEMIS-1224

(cherry picked from commit 30a6ac703efe3539d13152f9311bedd7fd68aa9d)
2017-09-26 14:28:05 -04:00
Dmitrii Tikhomirov
31fa7584ab ARTEMIS-1180 Artemis is logging warnings during server shut down
(cherry picked from commit 2443eaaa003ef913187c14dbc567544788224821)
2017-09-26 14:28:05 -04:00
Jeff Mesnil
492022618d [ARTMIS-1431] Adapt transport configuration in ClientProtocolManagerFactory
add the adaptTransportConfiguration() method to the
ClientProtocolManagerFactory so that transport configurations used by
the ClientProtocolManager have an opportunity to adapt their transport
configuration.

This allows the HornetQClientProtocolManagerFactory to adapt the
transport configuration received by remote HornetQ broker to replace the
HornetQ-based NettyConnectorFactory by the Artemis-based one.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1431
2017-09-22 16:35:36 +02:00
Clebert Suconic
e5ef406e4e ARTEMIS-1333 Fix SendACK
(fix copied manually from master.. not possible to cherry-pick)
2017-08-10 22:27:57 -04:00
Clebert Suconic
9724571a98 ARTEMIS-1333 SendACK listener message loss (adding test)
next commit should have the fix.
this is to make it easy to confirm the fix by people looking.

(cherry picked from commit 96c6268f5a68a293589ac0061d561265d9e79972)
2017-08-10 22:24:37 -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
Martyn Taylor
b691fabe21 ARTEMIS-1303 Fix interleave during replication sync
(cherry picked from commit 69f82632675c9b4a1327cf70ce53440358b6dc3e)
2017-07-26 11:25:17 +01:00
Martyn Taylor
c3eeea4910 ARTEMIS-1271 FileSystemMonitor locking improvement
(cherry picked from commit ce756d46f9c90e4d7d0eb0e0090384d6d646af3e)
2017-07-25 12:19:59 -04:00
Howard Gao
004c86804f 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.

(cherry picked from commit 06986e4ee1eb32fc2642b111ca3955518f684adb)
2017-07-25 12:11:37 -04:00
Howard Gao
144a7c8a42 ARTEMIS-1220 Diverted LargeMessage file corrupted during replication
When a large message is being diverted, a new copy of the original
message is created and replicated (if there is a backup) to the backup.

In LargeServerMessageImpl.copy(long) it reuse a byte array to copy
message body. It is possible that one block of date is read into
the byte array before the previous read has been replicated,
causing the replicated bytes to corrupt.

If we make a copy of the byte array before replication, the corruption
of data will be avoided.

(cherry picked from commit 045021f7df583f6109cb0749dc1601c9a85dbe75)
2017-07-25 11:52:28 -04:00
Clebert Suconic
8326a24fd8 ARTEMIS-1280 Avoiding leak on Queue futures 2017-07-11 14:51:03 -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
Clebert Suconic
f744904fdb ARTEMIS-1269 replication won't finish synchronization
(cherry picked from commit 6b2798a0fe02bcb5ca2f13b1431fd8dfe327d20e)
2017-07-01 00:47:50 -04:00
Martyn Taylor
15990589a3 ARTEMIS-1254 New OrderedExecutor for JDBC LargeMsg
(cherry picked from commit 222275dd8dc29450bce9bce0419b8a55b797673c)
2017-06-26 19:12:03 +01:00
Andy Taylor
333959dc00 ARTEMIS-1237 - Hard coded timeout on Journal file open
Make timeout configurable

https://issues.apache.org/jira/browse/ARTEMIS-1237
2017-06-22 12:03:16 -04:00
Clebert Suconic
6b1bd78629 ARTEMIS-1247 Allow tracing on ReplicatedJournal 2017-06-22 10:31:02 -04:00
Martyn Taylor
9ab57f2219 ARTEMIS-1233 Fix log level in logger message
(cherry picked from commit 7f5ca5aafe1c7d822f11678a865daa4682967091)
2017-06-16 11:51:34 +01:00
Andy Taylor
26d6bb3963 ARTEMIS-1224 - change the journal file size to nearest multiple
https://issues.apache.org/jira/browse/ARTEMIS-1224
2017-06-12 13:12:55 -05:00
Tomas Hofman
bf814d4864 ARTEMIS-1186 Consumer.receive hangs if http acceptor with non-zero batch-delay is configured 2017-05-31 11:42:10 -04:00
Michael Andre Pearce
2d850680d6 ARTEMIS-1188: Update sevntu to 1.24.0 available in maven central
remove custom repo
update groupid to match artifact in maven central.
bump version also to that now deployed to maven central.
bump checkstyle version to 7.7 to make compatible.

updated checkstyle.xml to ignore existing issues which are prolific
which are now flagged in latest version as some bugs in previous meant they we'ren't detected e.g. https://github.com/checkstyle/checkstyle/issues/3320

fixing some violations which are not too prolific.

(cherry picked from commit b8ebe0577504fa0b2c39471f36656a0fe0ad59bd)
2017-05-30 09:57:40 -04:00
Justin Bertram
7ed40326c8 ARTEMIS-1154 tweak logic to support previous semantics
(cherry picked from commit 88e185d2b915e4827803dc7302152c6087924211)
2017-05-11 20:29:42 -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 5cb5c8a6dc7179078f099d5455343e1f18fd3398)
2017-05-09 16:41:14 -04:00
Bernd Gutjahr
88e629a7ae 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.

(cherry picked from commit 6017e305d90664b4bf5b8f891e43514907df9a4b)
(cherry picked from commit 7aa50546b3dc6c012bd7d4118d82055ffd1e1226)
2017-05-04 11:28:12 +02:00
Clebert Suconic
534fd8093d ARTEMIS-1140 Avoid lock on queue for message counts
(cherry picked from commit 33f2ad65c915a8fa2c3606271f106bf5703ace83)
2017-05-03 16:41:31 -04:00
Andy Taylor
56a18759a7 no jira - fix test 2017-04-21 10:39:25 +01:00
Martyn Taylor
9c013e74cb ARTEMIS-1125 Persist JMS Bindings in Database on JDBC 2017-04-20 21:04:26 +01:00
Francesco Nigro
87bde15f38 ARTEMIS-1124 JDBC Network Timeout configuration
(cherry picked from commit a639774b54d31fd06c906f8ae42b9733f96e569b)
2017-04-20 19:45:19 +02:00
Clebert Suconic
d8ff3f500f ARTEMIS-1115 Traces and tests on JDBC Persistence 2017-04-19 00:43:40 -04:00
Martyn Taylor
2ccc4e14f1 ARTEMIS-1115 Call CriticalIOListener on JDBC Error 2017-04-19 00:35:48 -04:00
Francesco Nigro
c35960f6a4 ARTEMIS-1084 Throw RunTime on bad Oracle table size
(cherry picked from commit aa9ac4a914c18ef9421c769f8cb40e1a6b3b9972)
2017-04-17 11:04:46 +01:00
Bernd Gutjahr
f07e592a66 ARTEMIS-1108: Removed AIOFileLockManager
AIOFileLockManager doesn't work on NFS-mounted share store directories.
Since the GFS2 bug https://bugzilla.redhat.com/show_bug.cgi?id=678585
has been fixed end of 2011, the class AIOFileLockManager is no longer needed and I have removed it.

(cherry picked from commit 557f02ba4d721620e53ae1a45cb879d653e4fab2)
2017-04-12 11:07:31 -04:00
Clebert Suconic
c30e7cd1da ARTEMIS-1089 fixing compilation 2017-04-10 12:50:15 -04:00
Clebert Suconic
8a4a307653 ARTEMIS-1089 Improving flow control on replication
(Cherry picked from 911888e8d19c98400a68f969b1c8f86bff51fa17)
2017-04-07 15:30:21 -04:00
Clebert Suconic
7929fff893 ARTEMIS-1089 Fixing Replication catchup slow 2017-04-03 12:58:13 +01:00
Clebert Suconic
b819026dfc ARTEMIS-1056 Improving allocations on InVM Transport 2017-04-03 12:58:13 +01:00
Clebert Suconic
c2989e1742 ARTEMIS-1056 Removing PartialPooledByteBufAllocator 2017-04-03 12:56:21 +01:00
Martyn Taylor
bae011bafb ARTEMIS-1087 Make InVM buffer pooling configurable
(cherry picked from commit 8760b3ddfd0ea52a0417ce91b6abe4840ca5ddca)
2017-04-03 12:12:33 +01:00
Martyn Taylor
7e4cb4d181 ARTEMIS-1084 Throw RunTime on bad Oracle table size
(cherry picked from commit 42bf845)
2017-04-03 12:12:33 +01:00
Armand Roelens
9330fc8546 ARTEMIS-1074 Acceptors/Connectors now start up when configured to use SSL and a password codec
(cherry picked from commit 3ceb3328664e3dfa1dbeb24bad45115e2f1970c4)
2017-03-28 17:40:35 -07:00
Clebert Suconic
dce89c9c75 ARTEMIS-1033 Fixing NPE on PageTX and reload 2017-03-13 09:08:30 -04:00
Martyn Taylor
e5fde974e4 NO-JIRA Database Page Store Improvements
(cherry picked from commit a3c852eb040a425bd198120a3de3ec4b41b22951)
2017-02-27 08:48:38 +00:00
Justin Bertram
2b18db6a1c ARTEMIS-992 deal w/bad connector-ref in cluster-cxn
(cherry picked from commit c7e0a921819cd39896e11bbfa008432633a88581)
2017-02-23 16:53:56 -05:00
Clebert Suconic
64968afce0 NO-JIRA: Removing spurious debug message
(cherry picked from commit f660783df53320e736fc187c0177d5f8206ec922)
2017-02-16 12:23:26 -05:00
Ulf Lilleengen
b0585329b4 ARTEMIS-908: Replace lock by CAS to avoid deadlock
(cherry picked from commit 4622066323e9ba5af0777d0c7315389ee8f647f5)
2017-02-15 10:46:46 -05:00
Clebert Suconic
6018b2d74c ARTEMIS-937 Implementing proper alignment and adding perf-journal tool to validate the journal syncs
(cherry picked from commit ce035a8084874da3004cded844221629a9a3bc2e)
2017-02-03 15:15:58 -05:00
Justin Bertram
9b3cc8c329 ARTEMIS-873 support byte notation in XML config
(cherry picked from commit 113b28577c792a9fef5ac74abe6cd65bc08ffcf2)
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 3347a4fd2716c7c998a0ef68499f4dc3d8106241)
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 7a7f335271b7b766d940cc38b94c7e89d96d1a4d)
2017-01-18 16:21:14 -05:00
Jeff Mesnil
59f20d752a ARTEMIS-962 Fix CME when parsing system properties
Add synchronized block against the properties before iterating on them.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-926
(cherry picked from commit 5ae47e8c3c4cd17ca6abc75e72be0338b0ceaf96)

This closes #969
2017-01-18 10:24:06 -05:00