2

プログラムでエラーが発生しました:

"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 を再起動する必要がありました。

私が直面している問題を解決してくれる人がいれば、感謝します。

ありがとう

4

2 に答える 2