Hi Fabien,

> This is in fact clearly a question for the user mailing-list. And  
> asking
> it again on the dev mailing-list is definitely not the way to go. I  
> know
> that I am a pain in the ass, but I really want to enforce some basic
> rules to help people like me answer more questions.

Let's just pretend I was demonstrating mailing list dynamics for a  
simulation :) Seriously though, I do know and respect ML boundaries.  
It won't happen again.

> I have the same problem for the task that updates the API  
> documentation
> of symfony. It takes ages for phpdocumentor to parse all 4 versions of
> the symfony code, and eventually, the database dies before the  
> script ends.
>
> The only solution I found back then was to close and reopen the
> connection manually from time to time with the following snippet of  
> code:
>
>     Propel::close();
>     Propel::initialize();
>
> IIRC, there was some cleaner solutions, but they were not doable  
> because
> of some methods that were protected/private in Propel code.
>
> But as said by others, using PHP to write a daemon is, well, a scary
> proposition ;)



Ah ha! Yes, that is what I was looking for! Thanks!

>
> But as said by others, using PHP to write a daemon is, well, a scary
> proposition ;)


Yes, it is looking that way. Again, a lot of the manipulation code was  
in Java, so I'm probably going to make it a Java-only thing. Surely  
Java can run for long periods without leaking huge amounts of memory,  
since, well, the entire J2EE/Java EE platform depends on it. ;)

Best,

JLS



On Feb 4, 2009, at 10:30 PM, Fabien Potencier wrote:

>
>
> John L. Singleton wrote:
>> Speaking of answering questions.... :) I actually have a question
>> that's been bugging me and I haven't been able to get a good answer  
>> on
>> either the forums or the users list.
>
> This is in fact clearly a question for the user mailing-list. And  
> asking
> it again on the dev mailing-list is definitely not the way to go. I  
> know
> that I am a pain in the ass, but I really want to enforce some basic
> rules to help people like me answer more questions.
>
> Nonetheless, let's pretend that we are on the user mailing-list for a
> minute and keep reading for a possible answer to your question ;)
>
>>
>> This question pertains to MySQL used with Symfony 1.0 and Propel.
>>
>> I have a LONG running batch script that intermittently needs access  
>> to
>> MySQL. I begin the script with the lines:
>>
>> ///code
>> $databaseManager = new sfDatabaseManager();
>> $databaseManager->initialize();
>> code////
>>
>> And the program goes into an event loop, using FAM as the notifier.
>> But, if lots of time elapses between the time I initialize and the
>> time I need the connection, I get an error about MySQL has gone away.
>> This means that the idle timeout was exceeded for MySQL. I know I
>> could just set the timeouts to forever, but that is not a tenable
>> solution.
>
> I have the same problem for the task that updates the API  
> documentation
> of symfony. It takes ages for phpdocumentor to parse all 4 versions of
> the symfony code, and eventually, the database dies before the  
> script ends.
>
> The only solution I found back then was to close and reopen the
> connection manually from time to time with the following snippet of  
> code:
>
>     Propel::close();
>     Propel::initialize();
>
> IIRC, there was some cleaner solutions, but they were not doable  
> because
> of some methods that were protected/private in Propel code.
>
> But as said by others, using PHP to write a daemon is, well, a scary
> proposition ;)
>
> Fabien
>
>>
>> The question is: how to I tell Symfony to reconnect to MySQL? Is the
>> solution to use something like Propel::getConnection() every time I
>> need it? Some other solution? As I mentioned, this script basically
>> runs 24/7, only waking up when it needs to do something. As such,
>> doing something like upping the MySQL timeout isn't really an option
>> for me.
>>
>> I've tried doing stuff like:
>>
>> ///code
>> $databaseManager = new sfDatabaseManager();
>> $databaseManager->initialize();
>>
>> {do some stuff}
>>
>> $databaseManager->shutdown();
>>
>> {wait}
>>
>> $databaseManager = new sfDatabaseManager();
>> $databaseManager->initialize();
>> ///code
>>
>> But that doesn't really work. So I guess the question is, what is the
>> best "Symfony" way to do this? I've looked into just grabbing a
>> connection from the MySQLConnection class, but that seems to break  
>> all
>> of the abstraction and sort of defeat the whole purpose of using a
>> framework like Symfony in the first place. Could someone please  
>> advise?
>>
>> Best,
>> JLS
>>
>>
>>
>>
>>>
>>
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-devs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to