Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Связка FB и PHP / 9 сообщений из 9, страница 1 из 1
12.11.2014, 14:14
    #38803521
rstrelba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
Доброго дня.
Пишу от безысходности, не знаю что делать.Опыт PHP+FB более 11 лет, однако ...

Есть проект, b2b система, работает на ubuntu server 12 + FB 2.5.3 + PHP 5.2
База около 28 гигабайт, куча картинок.
В системе есть таблица ITEM_CAT с остатками, ценами, сортировочными индексами, которая пересчитывается раз в 30 минут. Хранимая для пересчета DO_ITEM_CAT через Ibexpert работает около минуты. Всего товаров в этой таблице - 1200-1500.
В php скрипте для запуска пересчета параметры транзакции

Код: php
1.
$db = ibase_trans(IBASE_WRITE |  IBASE_COMMITTED | IBASE_NOWAIT);



вызов самой хранимой

Код: php
1.
2.
3.
4.
5.
6.
    
    echo "\ndo_item_cat";
    ibase_query($db, "execute procedure DO_ITEM_CAT") or file_put_contents($log, $dt . ibase_errmsg(), FILE_APPEND);
    echo "\ndone do_item_cat!";
    ibase_commit_ret($db);
    echo "\ncommitt do_item_cat";



в ХП 12 этапов работы, для отладки инкрементируется 12 раз генератор для отслеживания хода работы ХП

при запуске скрипта PHP через минуту генератор принимает значение 12, процедура виснет, т.е. до коммитта дела не доходит, в логах ничего нет. Чую что тут имеется deadlock но почему тогда процедура виснет?

Прошу помощи куда можно копать.
...
Рейтинг: 0 / 0
12.11.2014, 14:20
    #38803532
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
rstrelba Чую что тут имеется deadlock
при nowait ты его должен увидеть.
процедура часом не селективная?
...
Рейтинг: 0 / 0
12.11.2014, 14:23
    #38803542
rstrelba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
kdv,

нет, delete from, insert into, куча update одой и той же таблицы
...
Рейтинг: 0 / 0
12.11.2014, 14:26
    #38803552
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
rstrelbaпочему тогда процедура виснет?
Потому что какой-то диверсант установил транзакции уровень изоляции READ COMMITTED. Но при
этом не поставил флаг REC_VERSION. Либо то убери, либо другое добавь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2014, 14:41
    #38803591
rstrelba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
Dimitry Sibiryakov,

Код: php
1.
$db = ibase_trans(IBASE_WRITE |  IBASE_COMMITTED | IBASE_NOWAIT | IBASE_REC_VERSION);    



не помогло ((
...
Рейтинг: 0 / 0
12.11.2014, 14:52
    #38803608
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
Значит таблицы мониторинга в руки и смотреть кто чем в это время занимается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2014, 15:23
    #38803660
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
rstrelba> при запуске скрипта PHP через минуту генератор принимает значение 12, процедура виснет

Что значит виснет? Когда отвисает? Что показывают таблицы мониторинга в этот момент?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.11.2014, 16:06
    #38803757
rstrelba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
Гаджимурадов Рустамrstrelba> при запуске скрипта PHP через минуту генератор принимает значение 12, процедура виснет

Что значит виснет? Когда отвисает? Что показывают таблицы мониторинга в этот момент?


Просто висит типа как исполняется, хотя видно что последняя команда ХП- инкремент генератора отработала, по Ctrl+C выходит. Что именно надо смотреть в мониторинговых таблицах? Я до такой глубокой отладки никогда не доходил.
...
Рейтинг: 0 / 0
12.11.2014, 17:34
    #38803905
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связка FB и PHP
rstrelba> Что именно надо смотреть в мониторинговых таблицах?

Да всё - память, IO, RECORD_STATS, CALL_STACK и т.д.
Ну и если возможно, попробуй проверить на concurrency.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Связка FB и PHP / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]