Vincent BALLADA created BEAM-12523:
--------------------------------------
Summary: Number of connection issue
Key: BEAM-12523
URL: https://issues.apache.org/jira/browse/BEAM-12523
Project: Beam
Issue Type: Bug
Components: io-java-jms
Affects Versions: 2.30.0
Reporter: Vincent BALLADA
The maximum number of connections using JmsIO.Read seems to grow in an
uncontrolled way, causing new connections to be rejected by the broker if the
number exceeds the configured quota on broker side.
The number of connections is related to the number of workers allocated by the
runner, and the number of threads configured per worker, at least at the
beginning.
Our assumption is:
JmsCheckPointMark is mutable (private Instant oldestMessageTimestamp – this
field is updated for each message received). What we think it’s happening, with
direct runner at least, the runner is unable to retrieve existing JMSIO readers
(JmsCheckPointMark is used as a key - as part of splitable pardo restriction
object - for retrieving active JMSIO Readers, and because it’s mutated for each
received message, the runner will create a new reader for each new received
message – that’s why the connections number spins out of control at least in
DirectRunner). This is the reason that target parallelism parameter helps on
controlling the ‘initial’ number of active connections, but later on we have
issues.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)