Подключение к БД - странная проблема

 
0
 
Perl
ava
infarch | 31.10.2016, 14:52
Здравствуйте.

Есть у меня многопоточный скрипт, работал без проблем на виндовс 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.

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

Может тут кто нибудь уже сталкивался с подобным? Или хоть подскажите куда можно посмотреть чтоб понять причину проблемы.
Kommentare (1)
ava
Bulat | 02.11.2016, 08:23 #
Что значит поток? Тред или форк?

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

Был бы линукс посоветовал man strace, мож под виндовс суәествует адекватный аналог - но хз. 
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  Bulat   infarch
advanced
Absenden