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
next commit should have the fix.
this is to make it easy to confirm the fix by people looking.
(cherry picked from commit 96c6268f5a68a293589ac0061d561265d9e79972)
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)
Added the global user/password variables to all of the variations of the createContext/createConnectionFactory methods.
(cherry picked from commit 177bda4892b0aabd89311ec28b91762fb22ebaae)
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)
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.
The JDBCSequentialFile blocks on the writeLock when opening. There is
no need to block here, in fact it may cause issues when opening and
syncing concurrently. Instead an AtomicBoolean is enough to prevent the
file from being reloaded.
(cherry picked from commit 604db9ee7e01a91ec41d95f67a37a2d21afaa74c)
Before sending of messages to server 0 begins, the test
should wait until consumer is registered at RemoteQueueBindingImpl
on server 0. Otherwise some messages may not be rebalanced
to server 1.
(cherry picked from commit c5a25d33226aa261204e0a2779b0e87bfdcf1395)