Java io ioexception неверный дескриптор

3 Luixv [2009-04-23 09:49:00]

У меня есть веб-приложение, работающее в режиме кластера с балансировщиком нагрузки. Он состоит из двух кошек (T1 и T2), адресующих только одну БД. T2 – nfs, установленный на T1. Это единственная проблема между обоими узлами.

У меня есть java-метод, генерирующий некоторые файлы. Если запрос работает на T1, нет проблем, но если запрос выполняется на node 2 Я получаю исключение следующим образом:

Соответствующий код выглядит следующим образом:

Исключение появляется в файлеOut.close()

java cluster-computing ioexception

3 ответа

1 Решение Luixv [2009-04-24 13:53:00]

Иногда был java.io.IOException: неверный аргумент в java.io.FileOutputStream.close0 (собственный метод) в java.io.FileOutputStream.close(FileOutputStream.java:279) ^^^^^

Поэтому проблема НЕ является проблемой Java. Даже проблема NFS. Проблема базовый тип файловой системы, который является DRBD файловой системы.

Тестирование в оболочке для записи по узлам работает, если вы пишете небольшую файл. То есть:

на установленном nfs node

выдаст следующую ошибку

Поэтому решение заключается в использовании другого типа файловой системы, например gfs.

Я использую стандартный пакет javax.xml для анализа некоторых файлов XML на Linux-машине. Мой код выглядит следующим образом:

Доступ к единому DocumentBuilderFactory осуществляется несколькими потоками, так как это единственный XPathFactory, я считаю, что это приемлемое использование. Иногда я вижу следующую ошибку при анализе XML файла с использованием вышеуказанного кода.

10% времени) вижу следующий дополнительный текст:

Когда я проверяю файлы вручную, я не вижу разницы между файлами, которые терпят неудачу, и файлами, которые проходят. Я могу подтвердить, что файлы, которые проходят, являются допустимыми XML и не имеют специальных символов или преждевременных окончаний.

Кто-нибудь знает, почему это может произойти, и как я могу избежать этого?

Это похоже на проблему с параллельными потоками.

Читайте также:  Что такое сканирование qr кода

Ошибка может быть где-то вне кода, который вы нам показываете. Но также с DocumentBuilderFactory и XPathFactory я не уверен, что они потокобезопасны; он не упоминается в документации.

Для первого теста я рекомендую вам поместить весь код для разбора XML файлов в предложение synchronized <> . Если это решает вашу проблему, то она окончательно является многопоточной проблемой. В этом случае вам нужно найти самую маленькую часть кода, которая должна быть синхронизирована.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector