NotOpenException: «Запись закрыта» во время вызовов EJB в производственном JEE-приложении JBoss EAP 7.0.5 - PullRequest
0 голосов
/ 04 августа 2020

Мы запускаем JBoss EAP 7.0.5 (все еще!) На Solaris 11 (!) В производственной среде (после стабильного периода после выпуска около 2 недель в масштабе), и мы сталкиваемся с множеством этих исключений (вне из XNIO ). Мы используем EJB. Большинство из них синхронны с некоторыми более длительными вызовами / вызовами ejb через внешние события и выполняются как Asynchronous . Все наши приложения веб-канала / приложения api не могут получить поток для обслуживания их удаленных вызовов EJB и все блокировки матча (FE / BE).

java.io.IOException: WFLYEJB0422: Could not open message outputstream for writing to Channel
        at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.writeMethodInvocationResponse(MethodInvocationMessageHandler.java:360)
        at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$600(MethodInvocationMessageHandler.java:67)
        at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:246)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Caused by: org.jboss.remoting3.NotOpenException: Writes closed
        at org.jboss.remoting3.remote.RemoteConnectionChannel.openOutboundMessage(RemoteConnectionChannel.java:115)
        at org.jboss.remoting3.remote.RemoteConnectionChannel.writeMessage(RemoteConnectionChannel.java:307)
        at org.jboss.as.ejb3.remote.protocol.versionone.ChannelAssociation.acquireChannelMessageOutputStream(ChannelAssociation.java:68)
        at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.writeMethodInvocationResponse(MethodInvocationMessageHandler.java:358)

RH JIRA issue tracker не У меня много , но, если у вас есть какие-либо подсказки, кроме приведенных ниже, обратитесь.

  • Вот отчет fastthread.io об анализе нашего дампа потока . Выводы: пулы потоков исчерпаны (task / io / ejb) и все потоки, кроме все потоков ввода-вывода, ОЖИДАЮТ. Ввод / вывод ВЫПОЛНЯЕТСЯ, но заблокирован при вызове опроса в нативной библиотеке nio.
  • Мы экспериментировали с ulimits, так как несколько недель go мы встречали IOException (msg: Too many open files), удваивая их но с тех пор мы откатили это назад, чтобы удалить все побочные эффекты, вызывающие нашу текущую проблему (NotOpenException), но этот откат не имел никакого значения, поскольку мы все еще испытываем НЭП.

На этом этапе я чувствую, что что-то на уровне ОС изменилось, чтобы вызвать эту проблему, но пока нет пистолета для поддержки дыма. Неужели это пахнет «черт возьми», просто исправь это, потому что мне это точно так кажется!

...