ЖЖ от 2007-08-15 17:04:00
Работа с модулем для PHP DB4 от Oracle (наверное, больше с самой DB4) — это хождение по минному полю. gdb говорит, что падает оно на мьютексах. После нескольких часов «так работает, а так нет», получилась более-менее стабильная версия. Удивительно, что некоторые константы в модуль не вытащены, хотя в документации по C++ API они есть и чудно работают, если их вытащить наружу из заголовочного файла в числовых значениях.
В частности не обнаружилась очень полезная константа DB_REGISTER и менее необходимые DB_BTREE и DB_HASH. Показательно так же и то, что у некоторых методов (например, open у класс DB4) параметры вызова отличаюся от того, что указано в документации к модулю. Лучше читать исходники.
В частности не обнаружилась очень полезная константа DB_REGISTER и менее необходимые DB_BTREE и DB_HASH. Показательно так же и то, что у некоторых методов (например, open у класс DB4) параметры вызова отличаюся от того, что указано в документации к модулю. Лучше читать исходники.
Комментарии 17
кстати… если там мьютексы, то не легче ли станет если php будет zts'ный? (мысль вслух, скорее всего не станет)
./configure --help|grep zts
--
Это точно работает?
оно чуть медленнее, зато корректно работает в многотредовой среде
списка таких расширений насколько я знаю не существует
а это чего, не знаешь:
configure: error: Cannot find libmysqlclient_r under /usr/local.
возникает после --
У вас два варианта:
1) Database
2) собственное расширение для PHP, которое идёт в комплекте с DB4 и требует thread safe PHP
возможно есть
там всё написано.