我的程序遇到错误:
“org.jboss.remoting3.ProtocolException:打开的频道太多”
我从互联网上搜索了一些解决方案来解决这个错误。不幸的是,其他人的建议对我不起作用。
下面是关于我如何调用 jndi 遥控器和我使用的属性的代码。
public static void createUser(String loginID) throws Exception {
Hashtable props = new Hashtable();
try {
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://" + localhost:4447);
props.put("jboss.naming.client.ejb.context", "true");
props.put(Context.SECURITY_PRINCIPAL, "userJBoss");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
context = new InitialContext(props);
context.lookup("ejb:/createUserOperation/CreateUserGenerator!password.api.CreateUserService");
.....
......
LOGGER.info("DONE");
} catch (Exception e) {
LOGGER.error("ERROR");
} finally {
context.close();
}
}
由于某种原因,我无法显示该方法的所有内容。
每次需要创建新用户时都会调用“createUser”。它将被调用数百或数千次。
每次完成执行该方法时,我总是关闭连接。
假设我已经调用了该方法 100 次,一些用户将成功创建,而一些用户将失败。
下面的错误会提示我:
2014-12-04 17:23:23,026 - ERROR [Remoting "config-based-naming-client-endpoint" task-4] (org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver- Line:134) - Failed to open channel for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@bbaebd6, receiver=Remoting connection EJB receiver [connection=Remoting connection <78e43506>,channel=jboss.ejb,nodename=webdev01]} org.jboss.remoting3.ProtocolException: Too many channels open
一旦发生错误,它需要我重新启动我的 jboss。有时它会再次出现。
如果有人能够帮助解决我面临的问题,我将不胜感激。
谢谢