Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-18321

[GSS](7.3.z) EJBCLIENT-356 - EJB client API blocks invocation until all configured connections are established/discovered

XMLWordPrintable

    • +
    • Hide
      <configuration>
          <authentication-client xmlns="urn:elytron:1.0">
              ...
          </authentication-client>
          <jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.2">
              <max-allowed-connected-nodes nodes="3" />
              <connections>
                  <connection uri="remote+http://localhost:8080" />
                  <connection uri="remote+http://localhost:8380" />
              </connections>
          </jboss-ejb-client>    
      
          <!-- default heartbeat-interval as below was introduced with JBoss EAP 7.2 CP3
           |
           |   see: https://access.redhat.com/solutions/4151781
           |
           |-->
          <endpoint xmlns="urn:jboss-remoting:5.1" read-timeout="2000" heartbeat-interval="1000">
              <connections>
                  <connection destination="remote+http://localhost:8080" read-timeout="6000" write-timeout="6000" heartbeat-interval="3000" />
              </connections>
          </endpoint>
      </configuration>
      
      Show
      <configuration> <authentication-client xmlns= "urn:elytron:1.0" > ... </authentication-client> <jboss-ejb-client xmlns= "urn:jboss:wildfly-client-ejb:3.2" > <max-allowed-connected-nodes nodes= "3" /> <connections> <connection uri= "remote+http: //localhost:8080" /> <connection uri= "remote+http: //localhost:8380" /> </connections> </jboss-ejb-client> <!-- default heartbeat-interval as below was introduced with JBoss EAP 7.2 CP3 | | see: https: //access.redhat.com/solutions/4151781 | |--> <endpoint xmlns= "urn:jboss-remoting:5.1" read-timeout= "2000" heartbeat-interval= "1000" > <connections> <connection destination= "remote+http: //localhost:8080" read-timeout= "6000" write-timeout= "6000" heartbeat-interval= "3000" /> </connections> </endpoint> </configuration>
    • Hide

      See README.md of the playground.zip of EJBCLIENT-356

      Show
      See README.md of the playground.zip of EJBCLIENT-356

      In case a standalone Java client is configured with a wildfly-config.xml that contain 2 connections like this:

      <configuration>
          ...
          <jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.2">
              <max-allowed-connected-nodes nodes="3" />
              <connections>
                  <connection uri="remote+http://localhost:8080" />
                  <connection uri="remote+http://localhost:8380" />
              </connections>
          </jboss-ejb-client>
      </configuration>
      

      And there's a cluster behind it with 3 nodes, the invocation to the first node is performed once all of these configured connections are established.

      If now establishing the connection to localhost:8080 takes 0.5 seconds and the establishing of the connection to localhost:8380 takes 10 seconds, the client block the invocation for 10 seconds.

      If the target nodes are running in a cluster and there's another 3rd node running (e. g. localhost:8680, then the 2nd invocation on the client is again blocked until the connection to localhost:8680 is established.

              istudens@redhat.com Ivo Studensky
              rhn-support-ivassile Ilia Vassilev
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: