プログラムでエラーが発生しました:
"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 を再起動する必要がありました。
私が直面している問題を解決してくれる人がいれば、感謝します。
ありがとう