Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение к БД - странная проблема 
:(
    Опции темы
infarch
Дата 31.10.2016, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Здравствуйте.

Есть у меня многопоточный скрипт, работал без проблем на виндовс 7 и использовал sql server 2012 enterprise edition. После креша поставил десятку и sql server 2012 developer edition. После этого начались странности.

Принцип работы скрипта простой: он создает нескольк потоков и периодически смотрит на наличие в базе определенных записей. Найдя подходящую, отдает ее в очередь, откуда запись забирается и обрабатывается свободным потоком. Для обработки записи поток создает свое подключение к базе и удаляет по завершении. 

Как я говорил, под семеркой это все работало без проблем. Теперь же, иногда (!) поток не может подключиться к БД. Вот такой вот код
Код

my $cs = "dbi:ODBC:driver={SQL Server};Server=".$constants{Database}{DB_SERVER}.
 ";database=".$constants{Database}{DB_NAME}.";uid=".$constants{Database}{DB_USER}.
 ";pwd=".$constants{Database}{DB_PASSWORD}.";";
my $args = { RaiseError => 0, AutoCommit => 0 };

my $dbh = DBI->connect($cs, undef, undef, $args)
    or throw Backbone::Exception::DB( message => "Database connection not made: " . DBI->errstr() );

выдает странную ошибку: Database connection not made:     Unable to fetch information about the error.

Повторюсь: иногда! И от колличества потоков это не зависит. Даже один поток может выдавать такие сообщения.

Может тут кто нибудь уже сталкивался с подобным? Или хоть подскажите куда можно посмотреть чтоб понять причину проблемы.


Это сообщение отредактировал(а) infarch - 31.10.2016, 14:53
PM MAIL   Вверх
Bulat
Дата 2.11.2016, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Что значит поток? Тред или форк?

А если попробовать скрипт без многопоточности... Допустим какой-то демон(бесконечный цикл), который каждые 5 или 10 секунд пытается приконнектиться к базе. Пусть поработает сутки в тестовом режиме... Пока работает логи собирать и смотреть, будет повторяться такая ошибка или нет.  smile 

Был бы линукс посоветовал man strace, мож под виндовс существует адекватный аналог - но хз. 

Это сообщение отредактировал(а) Bulat - 2.11.2016, 08:24


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.