3

I have ejb client to connect jboss 6.4 eap server. I close ejb context every time I make ejb call. Everything works but when there are big amount of requests I got "org.jboss.remoting3.ProtocolException: Too many channels open"

            Properties properties = new Properties();
            properties.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
            properties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
            properties.put("remote.connections", "1");
            properties.put("remote.connection.1.host","IP");
            properties.put("remote.connection.1.port","4447");
            properties.put("org.jboss.ejb.client.scoped.context", "true");
            properties.put("remote.connection.1.username", "EJB_USER"));
            properties.put("remote.connection.1.password", "EJB_PASSWORD");


            context = new InitialContext(properties);
            ejbContext = (Context) context.lookup("ejb:");
            final Object obj = ejbContext.lookup("EAR/BEAN/BEANName!RemoteInterface");

            try{
                //do something
            }finally{
                ejbContext.close();
            }

15:41:21,621 ERROR [org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver] (Remoting "config-based-ejb-client-endpoint" task-10) Failed to open channel for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@591adafe, receiver=Remoting connection EJB receiver [connection=org.jboss.ejb.client.remoting.ConnectionPool$PooledConnection@30a6a839,channel=jboss.ejb,nodename=jbeap-int]}: org.jboss.remoting3.ProtocolException: Too many channels open at org.jboss.remoting3.remote.RemoteConnectionHandler.handleOutboundChannelOpen(RemoteConnectionHandler.java:185) at org.jboss.remoting3.remote.RemoteConnectionHandler.open(RemoteConnectionHandler.java:326) at org.jboss.remoting3.ConnectionImpl.openChannel(ConnectionImpl.java:82) at org.jboss.ejb.client.remoting.ConnectionPool$PooledConnection.openChannel(ConnectionPool.java:229) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.associate(RemotingConnectionEJBReceiver.java:130) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.EJBClientContext.registerEJBReceiver(EJBClientContext.java:383) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.EJBClientContext.registerEJBReceiver(EJBClientContext.java:335) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:150) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.getCurrent(ConfigBasedEJBClientContextSelector.java:115) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.naming.ejb.EjbNamingContext.createIdentifiableEjbClientContext(EjbNamingContext.java:258) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.naming.ejb.EjbNamingContext.setupScopedEjbClientContextIfNeeded(EjbNamingContext.java:123) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.naming.ejb.EjbNamingContext.(EjbNamingContext.java:98) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.ejb.client.naming.ejb.ejbURLContextFactory.getObjectInstance(ejbURLContextFactory.java:38) [jboss-ejb-client-1.0.30.Final-redhat-1.jar:1.0.30.Final-redhat-1] at org.jboss.as.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:141) at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_45] at javax.naming.InitialContext.lookup(InitialContext.java:417) [rt.jar:1.8.0_45]

How can I increase this channels? (How I know it is limited to 40 channel same time)

Thank you.

Bera
  • 673
  • 2
  • 12
  • 31
  • Looking the code for [remoting3](https://github.com/jboss-remoting/jboss-remoting/blob/2d7273392a571560e77b9eee25565fb46d3dbadd/src/main/java/org/jboss/remoting3/RemotingOptions.java) MAX_OUTBOUND_CHANNEL and DEFAULT_MAX_INBOUND_CHANNELS is 40 as you said. Also there seems to be an option to configure the MAX_OUTBOUND_CHANNELS, however I'm not sure if that can be done in 6.4. There is an issue with scoped [context](https://issues.jboss.org/browse/EJBCLIENT-84) and workaround is provided as well, just in case if you can work with 40 channels it self with the work around – redoc Apr 29 '16 at 08:33

1 Answers1

1

There is no way to increase channels amount. I have made my context instance static.

Bera
  • 673
  • 2
  • 12
  • 31