The perfect solution / Re: Apache not behaving nicely with cdbi (#2)
[prev]
[thread]
[next]
[Date index for 2005/02/15]
The perfect solution to the problem was here:
http://www.spanner.org/lists/cdbi/2004/11/15/7a69b2f1.html
-----------
> I solved this by adding a call to $obj->clear_object_index() right after
> creating my Class::DBI object. That method sets %Live_Objects = (),
> which properly clears out any old data in mod_perl.
-----------
I needed to call clear_object_index() right after creating my Class::DBI
object (which solved the problem), not before updating (which didn't).
Perhaps the page
http://www.class-dbi.com/cgi-bin/wiki/index.cgi?CommonProblems#scop
needs updating.
Thanks...
karjala_lists@xxxxxxx.xxx wrote:
> I tried both solutions extensively.
>
> For #1, I did all the following all at once:
> - removed "use Apache::DBI" from httpd.conf
> - substituted Class::DBI->set_db with ->connection(...)
> - wrote my own Class::DBI db_Main routine: { return DBI->connect(...); }
> - added "transaction-isolation = READ-COMMITTED" on the global my.cnf
> file, section [mysqld]
>
> For #2,
> - I wrote $Class::DBI::Weaken_Is_Available = 0; at the top
> declaration, which would globally disable the object index. I tried
> writing both before and after the Class::DBI->connection line.
> - I did the other two suggestions in the "CommonProblems" page.
>
> I did all of these together. When I restarted Apache the same
> problematic behaviour occurred.
>
> When I removed $object (the object I'm updating) from Mason's
> "MasonAllowGlobals" array, the problem was solved (yet the code in the
> pages becomes quite messy if I don't use Mason Globals).
>
> While running CDBI 0.95, Mason 1.21 and mod_perl 1.26 I didn't have
> this problem. But now (0.96, 1.26 1.29) I do.
>
> Where to start...
>
>
>
> Perrin Harkins wrote:
>
>> On Tue, 2005-02-15 at 09:27 +0200, karjala_lists@xxxxxxx.xxx wrote:
>>
>>
>>> When I go back to the first page to view the object, I get the old
>>> values sometimes. I hit reload, and sometimes the old values show
>>> up, sometimes the new ones. After a while I get only the new values.
>>>
>>
>>
>> Are you using InnoDB tables? If so, see this:
>> http://perl.apache.org/docs/1.0/guide/databases.html#Transactions_Not_Committed_with_MySQL_InnoDB_Tables
>>
>>
>> If not, you probably have a scoping problem. See the issue discussed
>> here about not seeing changes:
>> http://www.class-dbi.com/cgi-bin/wiki/index.cgi?CommonProblems
>>
>> - Perrin
>>
>>
>>
>>
>
>
>