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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с SQLite и fork 
:(
    Опции темы
DooZ
Дата 7.8.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ругается что база заблокирована
делаю все как написано на сайте
создаю новое подключение к базе в каждом child'е
секунд 20-30 работает нормально, потом пошли ошибки:
DBD::SQLite:smileb do failed: database is locked(5) at dbdimp.c line 402 at

я уже и таймаут ставил, нифига не помогает
как быть? где что поставить надо?
подскажите плиз
PM MAIL   Вверх
vadiml
Дата 8.8.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может лучше connect сделать 1 раз в главном модуле и везде его использовать? весьма сократятся накладные расходы.

ЗЫ с SQLite не заботал, но в мускуле и постгресе делал именно так. Если это в вебе, то можно использовать общую память.
PM MAIL Jabber   Вверх
DooZ
Дата 8.8.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(vadiml @ 8.8.2007,  16:29)
может лучше connect сделать 1 раз в главном модуле и везде его использовать? весьма сократятся накладные расходы.

ЗЫ с SQLite не заботал, но в мускуле и постгресе делал именно так. Если это в вебе, то можно использовать общую память.

в SQLite нельзя передавать указатель в чилды в форках это написано на сайте производителя
так же так написано что надо в каждом чилде делать коннект заново
вот я и обратился за помощью, мож кто сталкивался, как преодолеть эту гнустную блокировку правильно?
как работать в форках правильно с SQLite

в чилде надо каждый раз:
select ...
если нет то insert
если есть то на выход

вот где insert там ошибка
PM MAIL   Вверх
DooZ
Дата 9.8.2007, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вроде работает вариант:
в самом чилде делаем перед подключением:

        while (1)
        {
        $dbh=DBI->connect("dbi:SQLite:dbname=base.db","","");
        sleep(1) and next if ($dbh->err && $dbh->err==5);
        last;
        }

тут подключаемся (ошибка 5 это как раз блокировка)

далее в месте где будем делать insert тот же цикл, только вместо подключения insert вставка

на сколько верный такой способ? плиз подскажите
если есть варианты более лучшие (sleep(1) тормозит на 1 секунду, что не годится)) подскажите?
PM MAIL   Вверх
DooZ
Дата 12.8.2007, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



неужели никто не работал с SQLite ???
PM MAIL   Вверх
DooZ
Дата 26.8.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


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

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


 




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


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

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