Ошибки службы PnkBstrA в Windows 10
Служба PnkBstrA является одним из компонентов клиента «PunkBuster», который устанавливается на компьютеры пользователей вместе с некоторыми играми, поддерживающими многопользовательский режим. Основным назначением службы является слежка за действиями игроков с целью предотвращения использования читов и ботов.
Работает всё это в режиме клиент-серверной архитектуры, то есть клиент периодически собирает информацию о действиях игрока, шифрует и отсылает на сервер. Там данные расшифровываются и принимается решение — нарушаются игровые правила или нет.
- Название файла: «Pnkbstra.exe».
- Место размещения: «System32».
- Приложение: «PunkBuster».
- Компания разработчик: «Even Balance».
Ошибка «Service Communication Failure: PnkBstrA.exe»
Корректная работа приложения PunkBuster является обязательным условием для запуска многих игр в онлайн режиме. Иначе могут возникнуть ошибки, например «Service Communication Failure: PnkBstrA.exe», что переводится как сбой службы связи. Причин возникновения подобной ошибки много, рассмотрим самые распространённые.
- Не соответствие требуемой версии клиента и игры.
- Блокирование работы приложения антивирусом или файрволом (брандмауэром).
- Инфицирование файла вирусом.
- Повреждение файла или приложения в целом.
- Возникновение конфликтов в профиле игроков.
По статистике приложение PunkBuster чаще всего устанавливается на компьютер вместе с играми «Call of Duty» и «Battlefield».
Лучшим способом для устранения ошибок является переустановка клиента. Для начала удалите текущую версию. Это можно сделать в настройках Windows «Программы и компоненты». Теперь необходимо найти установщик клиента. В первую очередь его стоит поискать в файлах инсталлятора игры. Например, в «Battlefield 4» он лежит по пути «/Battlefield4/_Installer/punkbuster/redist/pbsvc.exe». Для других игр воспользуйтесь поиском и ищите по названию приложения.
Если инсталлятор не найден, например по причине удаления файлов установки, то скачайте его с официального сайта разработчиков. После запуска приложения надо нажать на кнопку «Add a Game» и выбрать игру. Во втором поле укажите правильный путь к игре. Должно начаться обновление клиента. Если этого не случилось, нажмите в верхнем меню кнопку «Update PunkBuster».
После переустановки рекомендую проверить публичное разрешение доступа приложения к сети. Смысл в том, что брандмауэр Windows может блокировать работу процессов приложения с сетью. Это недопустимо, поэтому переходим в настройки брандмауэра.
- Открываем «Панель управления».
- Ищем «Брандмауэр Windows».
- В левом меню пункт «Разрешение взаимодействия с приложением или компонентом в брандмауэр Windows».
- Ищем процессы «PnkBstrA» и «PnkBstrB». Проверяем чтобы для них были установлены разрешения на обмен данными и в частных и в публичных сетях.
Ошибка «Игра отключена: Punkbuster kicked player»
Ещё одна распространённая ошибка при игре онлайн «Игра отключена: Punkbuster kicked player». Это значит что сервер посчитал что игрок нарушает какие-то правила, хотя на деле этого может и не быть. Переустановка клиента в этом случае может не дать результата, хотя в первую очередь стоит попробовать именно этот способ. Так же предлагаются следующие варианты решения проблемы.
- Если установлен антивирус попробуйте отключить его и переустановить приложение в режиме администратора (правой кнопкой мыши на установочный файл и выбрать «Запуск от имени администратора»). Не включая антивирус посмотрите, появляется ошибка или нет.
- Если игра лицензионная, то в «Origin» в свойствах игры, выберите запуск в 86*. Очистите кеш «Origin», удалив папки:
- «C:Users(user name)AppDataLocalOriginOrigin».
- «C:Users(user name)AppDataRoamingOrigin».
- «C:ProgramDataOrigin».
- Если при переустановке «Punkbuster» возникают ошибки, то следует их изучить и перевести, а после искать проблему.
Исправление ошибок для Windows 7 можете посмотреть в англоязычном видео.
Я пытаюсь подключиться к локальному серверу MySQL, но я все равно получаю сообщение об ошибке.
Вот код.
public class Connect {
public static void main(String[] args) {
Connection conn = null;
try {
String userName = "myUsername";
String password = "myPassword";
String url = "jdbc:mysql://localhost:3306/myDatabaseName";
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);
System.out.println("Database connection established");
} catch (Exception e) {
System.err.println("Cannot connect to database server");
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Database Connection Terminated");
} catch (Exception e) {}
}
}
}
}
и ошибки:
Cannot connect to database server
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Connect.main(Connect.java:16)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:218)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
... 15 more
Я установил путь к классам, убедился, что my.cnf отключил опцию пропускной сети.
версия java — 1.2.0_26 (64 бит)
mysql 5.5.14
Разъем mysql 5.1.17
Я убедился, что пользователь имеет доступ к моей базе данных.
Ответ 1
У меня была такая же проблема в двух моих программах. Моя ошибка:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Я провел несколько дней, чтобы решить эту проблему. Я проверил множество подходов, которые были упомянуты на разных веб-сайтах, но не работали. Наконец, я изменил свой код и выяснил, в чем проблема. Я попытаюсь рассказать вам о разных подходах и суммировать их здесь.
Пока я искал интернет, чтобы найти решение этой ошибки, я понял, что существует множество решений, которые работали хотя бы для одного человека, но другие говорят, что он не работает для них! почему существует много подходов к этой ошибке?
Кажется, что эта ошибка может возникать в общем случае при возникновении проблемы при подключении к серверу. Возможно, проблема связана с неправильной строкой запроса или слишком большим количеством подключений к базе данных.
Поэтому я предлагаю вам попробовать все решения по одному и не сдаваться!
Вот решения, которые я нашел в Интернете и для каждого из них, по крайней мере, у человека, который решил проблему с этим решением.
Совет. Для решений, которые необходимо изменить параметры MySQL, вы можете обратиться к следующим файлам:
-
Linux:/etc/mysql/my.cnf или /etc/my.cnf(в зависимости от дистрибутива Linux и используемого пакета MySQL)
-
Windows: C: ** ProgramData **MySQLMySQL Server 5.6my.ini(обратите внимание на ProgramData, а не на программные файлы)
Вот решения:
- изменение атрибута «привязка-адрес»
Исключить атрибут «связывать-адрес» или изменить его на один из следующих IP-адресов:
связывают-адрес = «127.0.0.1»
или
связывают-адрес = «0.0.0.0»
- комментирование «skip-networking»
Если в вашем файле конфигурации MySQL есть строка «skip-networking», сделайте комментарий, добавив знак «#» в начале этой строки.
- изменить «wait_timeout» и «interactive_timeout»
Добавьте эти строки в конфигурационный файл MySQL:
wait_timeout= номер
interactive_timeout = число
connect_timeout = число
- Убедитесь, что Java не переводит ‘localhost’ в [: 1] вместо [127.0.0.1]
Так как MySQL распознает 127.0.0.1 (IPv4), но не: 1 (IPv6)
Этого можно избежать, используя один из двух подходов:
Вариант №1: В строке подключения используйте 127.0.0.1 вместо localhost, чтобы избежать перевода локального хоста в: 1
Вариант №2: Запустите java с параметром -Djava.net.preferIPv4Stack = true, чтобы заставить java использовать IPv4 вместо IPv6. В Linux это также может быть достигнуто путем запуска (или размещения его внутри /etc/profile:
export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
- проверить настройки прокси-сервера операционной системы, брандмауэры и антивирусные программы
Убедитесь, что брандмауэр или антивирусное программное обеспечение не блокируют службу MySQL.
Остановить iptables временно на linux. Если iptables неправильно сконфигурированы, они могут разрешать отправку пакетов tcp в порт mysql, но блокировать tcp-пакеты от возврата в том же соединении.
# Redhat enterprise and CentOS
systemctl stop iptables.service
# Other linux distros
service iptables stop
Остановите антивирусное программное обеспечение в Windows.
- изменить строку подключения
Проверьте строку запроса. ваша строка подключения должна быть примерно такой:
dbName = "my_database";
dbUserName = "root";
dbPassword = "";
String connectionString = "jdbc:mysql://localhost/" + dbName + "?user=" + dbUserName + "&password=" + dbPassword + "&useUnicode=true&characterEncoding=UTF-8";
Убедитесь, что в строке нет пробелов. Вся строка соединения должна продолжаться без каких-либо пробелов.
Попробуйте заменить «localhost» на адрес loopback 127.0.0.1.
Также попробуйте добавить номер порта в строку подключения, например:
String connectionString = "jdbc:mysql://localhost:3306/my_database?user=root&password=Pass&useUnicode=true&characterEncoding=UTF-8";
Обычно порт по умолчанию для MySQL — 3306.
Не забудьте изменить имя пользователя и пароль на имя пользователя и пароль вашего сервера MySQL.
- обновить файл библиотеки драйверов JDK
- проверить разные JDK и JRE (например, JDK 6 и 7)
- не изменять max_allowed_packet
» max_allowed_packet» — это переменная в конфигурационном файле MySQL, которая указывает максимальный размер пакета, а не максимальное количество пакетов. Поэтому это не поможет решить эту ошибку.
- изменить безопасность tomcat
изменить TOMCAT6_SECURITY = да на TOMCAT6_SECURITY = нет
- использовать свойство validationQuery
используйте validationQuery = «select now()», чтобы убедиться, что у каждого запроса есть ответы
- AutoReconnect
Добавьте этот код в строку подключения:
&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
Хотя эти решения не работали, я предлагаю вам попробовать их. Потому что есть некоторые люди, которые решили свою проблему, выполнив следующие шаги.
Но что решило мою проблему?
Моя проблема заключалась в том, что у меня было много SELECT в базе данных. Каждый раз, когда я создавал соединение, а затем закрывал его. Хотя я закрывал соединение каждый раз, но система столкнулась со многими подключениями и дала мне эту ошибку. Я сделал то, что я определил свою переменную подключения как общедоступную (или приватную) переменную для всего класса и инициализировал ее в конструкторе. Затем каждый раз, когда я просто использовал это соединение. Это решило мою проблему, а также резко увеличило мою скорость.
Заключение
Нет простого и уникального способа решения этой проблемы. Я предлагаю вам подумать о своей собственной ситуации и выбрать выше решения. Если вы берете эту ошибку в начале программы, и вы вообще не можете подключиться к базе данных, у вас может возникнуть проблема в вашей строке подключения. Но если вы предпримете эту ошибку после нескольких успешных взаимодействий с базой данных, проблема может быть связана с количеством подключений, и вы можете подумать об изменении «wait_timeout» и других параметров MySQL или переписать код, чтобы уменьшить количество подключений.
Ответ 2
Если вы используете MAMP PRO, это простое исправление, которое я действительно хотел бы реализовать, прежде чем я начал искать интернет в течение нескольких дней, пытаясь понять это. Это действительно так просто…
Вам нужно просто щелкнуть «Разрешить доступ к сети MySQL» на вкладке MAMP MySQL.
Действительно, вот оно.
О, и вам нужно будет по-прежнему изменить свой адрес связывания на 0.0.0.0 или 127.0.0.1, как указано в приведенных выше сообщениях, но щелчок на этом поле, вероятно, решит ваши проблемы, если вы являетесь пользователем MAMP.
Ответ 3
Настройка bind-address
на сетевой IP-адрес сервера вместо localhost по умолчанию, и для меня работают настройки прав для моего пользователя.
my.cnf:
bind-address = 192.168.123.456
Консоль MySql:
GRANT ALL PRIVILEGES ON dbname.* to [email protected]'%' IDENTIFIED BY 'password';
Ответ 4
Как говорится в подробном ответе выше, эта ошибка может быть вызвана многими вещами.
У меня тоже была эта проблема. Моя настройка была Mac OSX 10.8, с использованием виртуальной виртуальной машины Vagrant от Ubuntu 12.04 с MySQL 5.5.34.
Я правильно настроил переадресацию портов в файле конфигурации Vagrant. Я мог бы использовать telnet для экземпляра MySQL как с моего Mac, так и из VM. Поэтому я знал, что демон MySQL работает и доступен. Но когда я пытался подключиться через JDBC, я получил ошибку «Ошибка связи».
В моем случае проблема была решена путем редактирования файла /etc/mysql/my.cnf. В частности, я прокомментировал строку «# bind-address = 127.0.0.1».
Ответ 5
В моем случае это был тайм-аут простоя, из-за которого соединение было отключено на сервере. Соединение поддерживалось открытым, но не использовалось в течение длительного периода времени. Затем перезапускается клиентский перезапуск, в то время как я считаю, что повторное подключение также будет работать.
Неплохое решение состоит в том, чтобы время/время было подключаться к демону/службе.
Ответ 6
Я столкнулся с той же проблемой.
Это произошло потому, что MySQL Daemon был привязан к IP-адресу машины, что требуется для установления связи с пользователем, у которого есть разрешение на подключение @your_machine.
В этом случае у пользователя должно быть разрешение на подключение USER_NAME @MACHINE_NAME_OR_IP
Мне нужен удаленный доступ к моей машине, поэтому я изменил его в my.cnf из
bind-address = MY_IP_ADDRESS
Для
bind-address = 0.0.0.0
Это позволит пользователю с localhost И даже снаружи (в моем случае) подключиться к экземпляру.
Обе ниже разрешения будут работать, если вы привяжете MySQL к 0.0.0.0:
[email protected]_NAME_OR_IP
[email protected]
Ответ 7
В моем случае
-
Измените конфигурацию mysql удаленного компьютера на
/etc/mysql/my.cnf
: change
bind-address = 127.0.0.1
в
#bind-address = 127.0.0.1
-
На удаленном компьютере измените права пользователя mysql с помощью
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
-
ВАЖНО: перезапустите mysql на удаленном компьютере:
sudo /etc/init.d/mysql restart
Ответ 8
Для меня решение заключалось в том, чтобы изменить в файле conf mysql server параметр bind-address = «127.0.0.1» или bind-address = «x.x.x.x» на bind-address = «0.0.0.0».
Спасибо.
Ответ 9
Если у вас возникла проблема с набором контейнеров Docker, убедитесь, что вы не только EXPOSE
порт 3306
, но также сопоставляете порт со стороны контейнера -p 3306:3306
. Для docker-compose.yml
:
version: '2'
services:
mdb:
image: mariadb:10.1
ports:
- "3306:3306"
…
Ответ 10
Это случается (в моем случае), когда для MySQL недостаточно памяти. Перезапуск исправляет его, но если этот случай рассматривает nachine с большим объемом памяти или ограничивает память, полученную jvms
Ответ 11
Перейдите в службы Windows на панели управления и запустите службу MySQL. Для меня это сработало. Когда я выполнял проект Java EE, я получил эту ошибку «Ошибка связи». Я перезапустил свою систему, а потом сработал.
После этого я снова получил ту же ошибку даже после перезагрузки моей системы. Затем я попытался открыть консоль командной строки MySQL и войти в систему с помощью root, даже тогда это дало мне ошибку.
Наконец, когда я запустил службу MySQL из служб Windows, она сработала.
Ответ 12
Было то же самое.
Удаление порта помогло в моем случае, поэтому я оставил его как jdbc: mysql://localhost/
Ответ 13
Если вы используете спящий режим, эта ошибка может быть вызвана тем, что для открытия объекта сеанса больше времени, чем wait_timeout
Я зарегистрировал случай в здесь для тех, кто заинтересован.
Ответ 14
Я нашел решение
поскольку MySQL нужен для работы в Localhost.
перейдите в файл /etc/network/interfaces и убедитесь, что у вас установлена локальная конфигурация:
auto lo
iface lo inet loopback
СЕЙЧАС RESTART подсистему Networking и службы MySQL:
sudo/etc/init.d/networking restart
sudo/etc/init.d/mysql restart
Попробуйте сейчас
Ответ 15
Это в основном из-за слабой связи между клиентом mysql и удаленным сервером mysql.
В моем случае это из-за flaky VPN-соединения.
Ответ 16
В опции драйвера phpstorm + vagrant autoReconnect помогли.
Ответ 17
Решение, предоставленное Soheil, было успешным в моем случае.
Чтобы уточнить, единственное изменение, которое мне нужно было сделать, это конфигурация сервера MySQL;
bind-address = **INSERT-IP-HERE**
Я использую внешний MySQL-сервер для своего приложения. Это базовая установка Debian 7.5 с MySQL Server 5.5 — настройка по умолчанию.
ВАЖНО:
Всегда создавать резервные копии файлов конфигурации, которые вы можете изменить. Всегда будьте осторожны, когда вы становитесь суперпользователем.
Файл
/etc/mysql/my.cnf
Линия
bind-address = 192.168.0.103 #127.0.0.1
Перезапустите службу MySQL Server:
/usr/sbin/service mysql restart
Как вы можете видеть, я просто предоставил сетевой IP-адрес сервера и закомментировал запись по умолчанию. Обратите внимание, что просто скопировать и вставить мое решение не сработает для вас, если только каким-то чудом наши хосты не будут иметь один и тот же IP-адрес.
Спасибо @Soheil
Ответ 18
У меня возникла аналогичная проблема, и решение для моего случая было
- change bind-address = 0.0.0.0 от 127.0.0.1
- изменение url localhost на localhost: 3306
вещь, которую я чувствовал, мы никогда не должны сдаваться, я пробовал все варианты с этой должности и с других форумов, а также… happy it works @saurab
Ответ 19
Я тоже столкнулся с этой проблемой.
Как предложил Сохейл,
Я отправился в файл php.ini по пути C:windowsphp.ini, затем я пересмотрел номер порта в этом файле.
он находится в строке mysqli.default_port =……….
Итак, я изменил его в своем приложении java, как и в файле php.ini, теперь он отлично работает со мной.
Ответ 20
Я знаю, что это старый поток, но я пробовал много вещей и исправил свою проблему, используя следующие средства.
Я разрабатываю кросс-платформенное приложение для Windows, но для использования на серверах Linux и Windows.
База данных MySQL, называемая «jtm», установлена в обеих системах. По какой-то причине в моем коде у меня было имя базы данных как «JTM». В Windows это работало нормально, ведь на нескольких системах Windows он летал.
В Ubuntu я снова и снова получал ошибку. Я проверил его с правильным кодом в коде «jtm», и он работает.
Linux, очевидно, намного менее прощает вопрос чувствительности к регистру (справедливо), тогда как Windows делает скидку.
Теперь я чувствую себя немного глупо, но все проверю. Сообщение об ошибке не лучший, но это, кажется, поправимо, если вы упорно и получить все правильно.
Ответ 21
Я только что перезапустил MySQL (после подсказки отсюда: fooobar.com/questions/46259/…), и он решил проблему.
У меня была такая же проблема на MacOS (10.10.2) и MySql (5.6.21), установленном через homebrew.
Сбивчивая вещь заключалась в том, что одно из моих приложений прекрасно подключилось к базе данных, а другое — нет.
После многих попыток приложения, которое исключило исключение com.mysql.jdbc.CommunicationsException, как было предложено принятым ответом на этот вопрос, ничего не получилось, я был удивлен, что перезагрузка MySQL сработала.
Причиной моей проблемы могло быть следующее, как было предложено в ответе в вышеупомянутой ссылке:
Используете ли вы пул соединений? Если да, попробуйте перезапустить сервер. Вероятно, несколько соединений в вашем пуле соединений находятся в закрытом состоянии.
Ответ 22
Для Windows: —
Откройте меню «Пуск», напишите «Мастер настройки экземпляра MySqlserver» и перенастройте экземпляр сервера mysql.
Надеюсь, что это решит вашу проблему.
Ответ 23
После нескольких лет, имеющих такую же проблему и без постоянного решения, это то, что разрешило ее в течение последних 3 недель (что является записью с точки зрения безошибочной работы).
установить глобальный wait_timeout = 3600;
установить global interactive_timeout = 230400;
Не забудьте сделать это постоянным, если оно работает для вас.
Ответ 24
В моем случае (я noob), я тестировал Servlet, делающий подключение к базе данных с MySQL, и одно из исключений — это упомянутое выше.
Это заставило мою голову качаться несколько секунд, но я понял, что это потому, что я не запустил свой сервер MySQL в localhost
.
После запуска сервера проблема была исправлена.
Итак, проверьте, правильно ли работает сервер MySQL.
Ответ 25
Если вы используете локальный эмулятор, вам нужно использовать IP-адрес 10.0.2.2 вместо localhost для доступа к локальному серверу MySQL.
I did some further testing including on a Raspberry Pi 2B running 5.5.17-3 and I was able to successfully create a scheduled test on that system with an external USB HDD. I then updated the OS to 5.5.23-1 and the scheduled test remained active. Using this result, I continued testing on my NAS x86 Intel i5 PC with the Seagate RAID drives.
I reinstalled system using 5.3.9-1 (the closest image to 5.5.17-3 I could find in the downlods) to try replicate behaviour seen on the RPi, checked BIOS is in factory defualt settings. Note that even in this S/w version, I was getting the same communication errors when attempting to view the SMART page Devices tab, or trying to create a Scheduled test.
Following this, the only errors I found in logs were (note I have replaced my machines IP address):
2021/02/09 23:24:33 [error] 2457#2457: *18 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: ::ffff:192.168.0.4, server: openmediavault-webgui, request: "POST /rpc.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm-openmediavault-webgui.sock:", host: "[IP.Address.of.Host]", referrer: "http://[IP.Address.of.Host]/"
And
2021/02/10 18:33:48 [error] 794#794: *9 upstream timed out (110: Connection timed out) while reading response header from upstream, client: ::ffff:192.168.0.4, server: openmediavault-webgui, request: "POST /rpc.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.3-fpm-openmediavault-webgui.sock", host: "[IP.Address.of.Host]", referrer: "http://[IP.Address.of.Host]/"
As a side note, after I see the error and navigate to the System Information Performance tab, the CPU WaitIO is always at 100%.
Hope this helps.. looking forward to your reply!
Loading
I am exporting the grid data to the PDF file by using iTextSharp. I am searching the billno and fetched data is relating on the grid and control( in ext.net). Searching can be in 3 ways:
1. By inserting billno and pressing enter in combo box
2. By inserting billno and click the trigger in combo
3. By Selecting billno from combo
Now after that I click on ToPDF button to export data.
If I perform 2 & 3, its working fine, but when I perform 1 then a window comes with header Request failure, Status text — communication failure. As the Grid data are exported also, but y this window appears that I m nt getting.
My Code is as below
.cs
protected void ToPDF(object sender, EventArgs e)
{
//Code
}
.aspx
<ext:ComponentMenuItem ID="ComponentMenuItem1" runat="server">
<Component>
<ext:ComboBox ID="cmbSearchBillno" runat="server"
EmptyText="Select Bill No"
ForceSelection="true"
StoreID="BillMasterStore"
DisplayField="Billno" ValueField="BillId">
<Triggers>
<ext:FieldTrigger Icon="Search" />
</Triggers>
<Listeners>
<SpecialKey Fn="enterKeyPressHandler" />
</Listeners>
<DirectEvents>
<%--<SpecialKey OnEvent="enterKeyPressHandler" ShowWarningOnFailure="false" Timeout="60000" StopEvent="true">
<ExtraParams>
<ext:Parameter Name="key" Value="e.getKey()" Mode="Raw">
</ext:Parameter>
<ext:Parameter Name="BillNo" Value="this.getText()" Mode="Raw"></ext:Parameter>
</ExtraParams>
</SpecialKey>--%>
<Select OnEvent="ChangeBillno">
<ExtraParams>
<ext:Parameter Name="BillNo" Value="record.id" Mode="Raw"></ext:Parameter>
</ExtraParams>
</Select>
<TriggerClick OnEvent="SearchBillDetails" >
<ExtraParams>
<ext:Parameter Name="BillNo" Value="this.getText()" Mode="Raw"></ext:Parameter>
</ExtraParams>
</TriggerClick>
</DirectEvents>
</ext:ComboBox>
</Component>
</ext:ComponentMenuItem>
ToPDF button
<ext:Button ID="btnPdf" runat="server" Text="To PDF" AutoPostBack="true" OnClick="ToPDF" Icon="PageWhiteAcrobat">
<Listeners>
<Click Fn="saveData" />
</Listeners>
</ext:Button>
Script
<script type="text/javascript">
var enterKeyPressHandler = function (f, e) {
if (e.getKey() == e.ENTER)
{
var billno=this.getText();
Ext.net.DirectMethods.SearchBillno(billno);
e.stopEvent();
this.send();
}
}
var saveData = function () {
GridData.setValue(Ext.encode(GridService.getRowsValues({selectedOnly : false,excludeId:true})));
};
</script>