Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Lachlan Deck
On 05/12/2009, at 6:29 AM, Chuck Hill wrote:

> On Dec 4, 2009, at 11:16 AM, Kieran Kelleher wrote:
> 
>> So, to sum up the pros and cons we heard in the discussion:
>> 
>> FOR MySQL
>> - Free
> 
> So is PG, FrontBase, and others so no a major Pro
> 
>> - Easy to setup and configure
> 
> Uh, it does not work correctly out of the box so I think this is a con

Yeah - it means lots of reading so as to, um, fine-tune what should have been 
an out-of-the-box option.

>> - Clustering engine
>> - Easy reliable replication
> 
> Those two are really the only Pros that I can see for it.  Those are the only 
> things that would make me use it
> 
>> AGAINST MySQL
>> - Lack of deferred constraints
>> - Lack of transactional DDL (roll back failing migrations for example). As 
>> Mike pointed out, neither does Oracle, so not alone there.
> - need to carefully configure it to get it to work correct
> 
> 
> -- 
> Chuck Hill Senior Consultant / VP Development
> 
> Practical WebObjects - for developers who want to increase their overall 
> knowledge of WebObjects or who are trying to solve specific problems.
> http://www.global-village.net/products/practical_webobjects
> 
> 
> 
> 
> 
> 
> 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/lachlan.deck%40gmail.com
> 
> This email sent to lachlan.d...@gmail.com

with regards,
--

Lachlan Deck



 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Lachlan Deck
On 05/12/2009, at 12:02 AM, Ramsey Lee Gurley wrote:

> Hi Kieran,
> 
> Have you tried vertical inheritance with MySQL?

He wouldn't have. I have and continue to.

> I have Animal->Cat->Leopard. I try to create a leopard and it fails because 
> 
> com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed: 
>  Leopard(spots, id) VALUES (?, ?)" withBindings: 1:33(spots), 2:9(id)>:
>Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add or 
> update a child row: a foreign key constraint fails (`example/leopard`, 
> CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`) REFERENCES `cat` (`id`))

Yep. I've avoided using fk constraints since mysql doesn't play nice with this.

> It gets the adaptor operations for Animal, then Leopard, then Cat... and 
> blows up at leopard because there's no cat yet (I think).  I had to google 
> for "What are deferred constraints" so I could be very wrong, but I think 
> it's blowing up because of lack of deferred constraints (^_^) It looks like 
> I'll need to have an EODatabaseContext delegate override 
> databaseContextWillOrderAdaptorOperations to fix it, unless there is 
> something in the ERXSQLHelper that can get there first.
> 
> This just happens to be a timely thread since I was messing with my 
> MySQLPlugin last night (^_^)

What does your plugin do? 

with regards,
--

Lachlan Deck



 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Lachlan Deck
On 04/12/2009, at 11:17 PM, Kieran Kelleher wrote:

> Fair enough. Finally, we have one specific strike against it. ;-)

Two actually. Non transactional ddl operations.

> Since we have Delete rules in the EOModel, is this feature a "safety net" 
> that is needed for external non-WO apps that are accessing the database?

No (though that's certainly a benefit for sysadmins). It means you cannot 
commit changes with the hope it'll save .. because it doesn't defer constraint 
checks (for foreign keys etc) until the end but per insert/update.

> I have never implemented constraints and have yet to have an orphan record 
> since transactions/rollback protect against that, right?

That's been my experience also.

with regards,
--

Lachlan Deck



 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 7:07 PM, Guido Neitzer wrote:


On 4. Dec. 2009, at 17:46 , Mike Schrag wrote:

That's what I'm referring ... I have not used it, only read about  
it enough to be intrigued by it. It requires your entire database  
to be loaded into memory, but memory is pretty damn cheap. If you  
have a truly HUGE database, this is not an option, but most of ours  
are not larger than the reasonable max amount of memory.


Personally I have only fairly small databases - big tables being in  
the couple hundred thousand rows range. Professionally, it's a  
different thing. Big table in the couple billion rows tables.


Yeah, I think a couple billion rows qualifies as "big" in general  
database terms.  :-P



Oracle's a weird cat ... On the one hand, it his this weird pile of  
ancient restrictions (31 char column name limits, etc). On the  
other hand, it's insanely fast. I don't have real scientific  
comparisons to back this up, but anecdotally, it's fast as hell.


Yeah, it's really weird. When I used it, I found it pretty  
cumbersome. Which might have to do with the fact that with the  
license cost, normally a DBA comes within the box ... so they don't  
really care about making it usable for mere mortals.



That was my big grumble against it, until they started revising the  
licensing terms.  It can be seriously annoying to admin.  It can pick  
up and MOVE when tuned correctly.



Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re:.WebObjects.stress Testing tool?]]

2009-12-04 Thread mschrag

It's not about load balancing for me, it's about resiliency.

Sent from my iPhone

On Dec 4, 2009, at 9:09 PM, "Miguel Arroz" wrote:


Hey!

On 2009/12/05, at 01:46, Mike Schrag wrote:

And I'm not talking about asynchronous replication, I'm talking  
about real multi-master cluster with guaranteed integrity.
That's what I'm referring ... I have not used it, only read about  
it enough to be intrigued by it. It requires your entire database  
to be loaded into memory, but memory is pretty damn cheap. If you  
have a truly HUGE database, this is not an option, but most of ours  
are not larger than the reasonable max amount of memory.


 Err... unless you have a monster machine with hundreds of GBs, why  
would you want to cluster a small DB? I don't see any scenario where  
I need to load balance a DB with half a dozen of GBs.


 If that's the MySQL way, I would say the PgSQL is probably best! ;)

 Yours

Miguel Arroz


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 18:23 , Kieran Kelleher wrote:

>> Hmmm. Way back when we used it, it wasn't reliable. Every now and then 
>> slaves had to be completely rebuild. And it also wasn't straightforward as 
>> soon as something wasn't as expected.
> 
> In 4.1 there was the occasional hiccup where you had to either (1) rebuild, 
> or (2) check the actual statement which usually was an insert duplicate, and 
> if that statement had already been executed, then just do a single statement 
> skip and off it went again. However, I have not had a single slave hiccup 
> since all the slaves were upgraded to 5.0.xx.

I stopped using it before 5.x. But if I recall correctly, we had the issues 
with 4.1.

> In any case, if you had a at least 2 slaves, then the easy solution *without* 
> doing a full dump of the master and reconfiguring was to stop a good working 
> slave, literally copy the data directory and replace the one on the bad 
> machine and start both up again. However, not a problem for me since 5.0.xx. 
> There was one setting needed to ensure you could do this though (IIRC the 
> slave name - used for replication log names - had to be the same or sth like 
> that, but this again was just a property setting in my.cnf)

Right. Issue was - I was not very comfortable in MySQL and we had only one 
slave ...

> Guido, I do appreciate your input here, especially since you have the 
> advantage of a unique perspective

Na, not really. The times I worked with MySQL was when I was at a three person 
company back in good old Europe. Nevertheless, we did some whacky things back 
than that were real fun! ;-) Like trying to beat the hell out of a PG instance 
with raw copy import every 6 hours which hit the incredible speed of about 17k 
simple rows per second on my laptop (if I recall that correctly, I don't recall 
the numbers on the Xserve - I think we never really tested it, as the task 
always completed in under a minute, which was a bit better then the 15 minutes 
in the requirements) ...

Take care,
Guido ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 17:46 , Mike Schrag wrote:

> That's what I'm referring ... I have not used it, only read about it enough 
> to be intrigued by it. It requires your entire database to be loaded into 
> memory, but memory is pretty damn cheap. If you have a truly HUGE database, 
> this is not an option, but most of ours are not larger than the reasonable 
> max amount of memory.

Personally I have only fairly small databases - big tables being in the couple 
hundred thousand rows range. Professionally, it's a different thing. Big table 
in the couple billion rows tables.

> Oracle's a weird cat ... On the one hand, it his this weird pile of ancient 
> restrictions (31 char column name limits, etc). On the other hand, it's 
> insanely fast. I don't have real scientific comparisons to back this up, but 
> anecdotally, it's fast as hell.

Yeah, it's really weird. When I used it, I found it pretty cumbersome. Which 
might have to do with the fact that with the license cost, normally a DBA comes 
within the box ... so they don't really care about making it usable for mere 
mortals.

cug

-- 
http://www.event-s.net

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 6:27 PM, Kieran Kelleher wrote:

Wow, did not realize full-featured FB was free - makes it worth  
looking at now


Damn we are a cheap bunch!:-)

It is has  been free for a few years now.  Definitely a contender.


- however if Mike S started using MySQL, then switching is unlikely  
because MySQL integration will only get better! ;-)


There is still that pesky deferred constraint issue.  It won't affect  
all projects, but it will affect some.   But as you are used to not  
having FK constraints anyway...  ;-)




Chuck



On Dec 4, 2009, at 2:29 PM, Chuck Hill wrote:


FOR MySQL
- Free


So is PG, FrontBase, and others




--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Kieran Kelleher


On Dec 4, 2009, at 8:27 PM, Guido Neitzer wrote:


On 4. Dec. 2009, at 16:48 , Ramsey Lee Gurley wrote:

[Free]

So is PG, FrontBase, and others so no a major Pro



MySQL Administrator is pretty nice to have.  At least I don't have  
to shell out $150 on Navicat.  Does postgres/frontbase/other have  
decent free tools?


PGAdmin always did what I needed when I was on the GUI. Not as nice  
as Navicat, but working. But as I do 99% of my DB stuff on the  
commandline, I quite like psql. Definitely more than sql92 from  
FrontBase with it's weird display and somehow weird syntax for  
everything other than SQL.


Now that is a pro in favor of PG. I dislike dependence on GUI tools  
for database servers where I usually want to ssh and tunnel into some  
remote database server and get stuff done and write utility shell  
scripts for admin and development.





FrontBaseManager: okay. It's there. It kind of works for most things  
I needed.



Anyway, I've found this discussion very enlightening.


I think it is the first one where actual points were made apart form  
"but I like it better".


Yeah, it just says something good about this great group of people. I  
guess WebObjects devs are practical and reasonable. If they were over- 
emotional, they wouldn't be using it because they would be afraid of  
it being EOL'd or sth like that!


BTW, not only were actual points made, but we (Chuck) can make fun of  
each other (me) without getting insulted!  ;-)


Heck, the Google Wave app was made for discussions like this  the  
indentation and content is making it harder to find new comments!





. and the money thing.  Of the other two, I'm probably going to  
lean toward Postgres, but I'm wondering... What will I do for admin  
tools?  I'm not good at remembering cryptic command line options.


PGAdmin.

http://www.pgadmin.org/

Clearly, more study is needed (^_^)  Oh, as for the Vertical  
inheritance... I was just testing/studying inheritance.  I've read  
enough about what a waste of time VI is on this list.  I know  
better than to actually want to use it myself.  I've already seen  
it fail in MySQL and OpenBase, so I was more interested in why it  
was failing than actually attempting to use it.


You might also want to do some perf testing for your needs.  
FrontBase can be a very nice option if you are not running in the  
situations where it's query optimizer is just not up to the task.  
Also with FrontBase you need to make sure to filter data  
appropriately, even when importing or using other tools than EOF -  
otherwise, garbage in, server down. I had that a couple times.


Nevertheless, FrontBase is easy to install, easy to use with WO, is  
SQL92 compliant, has some nice features like the LookSee full text  
index, multi-master replication and so on.


PostgreSQL is a bit more cumbersome to set up, but not really hard  
or so, is definitely more robust, has a very good query optimizer  
and an "explain analyze ..." that actually works and that gives  
useful information. I never found FrontBase particularly helpful in  
that department.


cug


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Kieran Kelleher
Wow, did not realize full-featured FB was free - makes it worth  
looking at now - however if Mike S started using MySQL, then switching  
is unlikely because MySQL integration will only get better! ;-)


On Dec 4, 2009, at 2:29 PM, Chuck Hill wrote:


FOR MySQL
- Free


So is PG, FrontBase, and others


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Kieran Kelleher


On Dec 4, 2009, at 8:11 PM, Guido Neitzer wrote:


On 4. Dec. 2009, at 11:16 , Kieran Kelleher wrote:


So, to sum up the pros and cons we heard in the discussion:

FOR MySQL
- Free
- Easy to setup and configure
- Clustering engine


I have read a bit about this part as I'm always curious about  
synchronous multi-master clustering support in DBs. From Are people  
here referring to NDB Cluster? From reading the white papers I was  
kind of wondering how this could in any way be used in the typical  
(outside big corporations) requirements. Is somebody here actually  
using this?


And I'm not talking about asynchronous replication, I'm talking  
about real multi-master cluster with guaranteed integrity.



- Easy reliable replication


Hmmm. Way back when we used it, it wasn't reliable. Every now and  
then slaves had to be completely rebuild. And it also wasn't  
straightforward as soon as something wasn't as expected.


In 4.1 there was the occasional hiccup where you had to either (1)  
rebuild, or (2) check the actual statement which usually was an insert  
duplicate, and if that statement had already been executed, then just  
do a single statement skip and off it went again. However, I have not  
had a single slave hiccup since all the slaves were upgraded to 5.0.xx.


In any case, if you had a at least 2 slaves, then the easy solution  
*without* doing a full dump of the master and reconfiguring was to  
stop a good working slave, literally copy the data directory and  
replace the one on the bad machine and start both up again. However,  
not a problem for me since 5.0.xx. There was one setting needed to  
ensure you could do this though (IIRC the slave name - used for  
replication log names - had to be the same or sth like that, but this  
again was just a property setting in my.cnf)


Guido, I do appreciate your input here, especially since you have the  
advantage of a unique perspective







AGAINST MySQL
- Lack of deferred constraints
- Lack of transactional DDL (roll back failing migrations for  
example). As Mike pointed out, neither does Oracle, so not alone  
there.


All toys ... :-P

Take care,
Guido


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Miguel Arroz

Hey!

On 2009/12/05, at 01:46, Mike Schrag wrote:

And I'm not talking about asynchronous replication, I'm talking  
about real multi-master cluster with guaranteed integrity.
That's what I'm referring ... I have not used it, only read about it  
enough to be intrigued by it. It requires your entire database to be  
loaded into memory, but memory is pretty damn cheap. If you have a  
truly HUGE database, this is not an option, but most of ours are not  
larger than the reasonable max amount of memory.


  Err... unless you have a monster machine with hundreds of GBs, why  
would you want to cluster a small DB? I don't see any scenario where I  
need to load balance a DB with half a dozen of GBs.


  If that's the MySQL way, I would say the PgSQL is probably best! ;)

  Yours

Miguel Arroz

smime.p7s
Description: S/MIME cryptographic signature
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Mike Schrag
>> So, to sum up the pros and cons we heard in the discussion:
>> 
>> FOR MySQL
>> - Free
>> - Easy to setup and configure
>> - Clustering engine
> 
> I have read a bit about this part as I'm always curious about synchronous 
> multi-master clustering support in DBs. From Are people here referring to NDB 
> Cluster? From reading the white papers I was kind of wondering how this could 
> in any way be used in the typical (outside big corporations) requirements. Is 
> somebody here actually using this?
> 
> And I'm not talking about asynchronous replication, I'm talking about real 
> multi-master cluster with guaranteed integrity. 
That's what I'm referring ... I have not used it, only read about it enough to 
be intrigued by it. It requires your entire database to be loaded into memory, 
but memory is pretty damn cheap. If you have a truly HUGE database, this is not 
an option, but most of ours are not larger than the reasonable max amount of 
memory.

>> AGAINST MySQL
>> - Lack of deferred constraints
>> - Lack of transactional DDL (roll back failing migrations for example). As 
>> Mike pointed out, neither does Oracle, so not alone there.
> All toys ... :-P
Oracle's a weird cat ... On the one hand, it his this weird pile of ancient 
restrictions (31 char column name limits, etc). On the other hand, it's 
insanely fast. I don't have real scientific comparisons to back this up, but 
anecdotally, it's fast as hell.

ms
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill

On Dec 4, 2009, at 5:27 PM, Guido Neitzer wrote:

On 4. Dec. 2009, at 16:48 , Ramsey Lee Gurley wrote:

[Free]

So is PG, FrontBase, and others so no a major Pro



MySQL Administrator is pretty nice to have.  At least I don't have  
to shell out $150 on Navicat.  Does postgres/frontbase/other have  
decent free tools?


PGAdmin always did what I needed when I was on the GUI. Not as nice  
as Navicat, but working. But as I do 99% of my DB stuff on the  
commandline, I quite like psql. Definitely more than sql92 from  
FrontBase with it's weird display and somehow weird syntax for  
everything other than SQL.


FrontBaseManager: okay. It's there. It kind of works for most things  
I needed.


It has always done what I needed it to... which is not all that much.



Anyway, I've found this discussion very enlightening.


I think it is the first one where actual points were made apart form  
"but I like it better".


. and the money thing.  Of the other two, I'm probably going to  
lean toward Postgres, but I'm wondering... What will I do for admin  
tools?  I'm not good at remembering cryptic command line options.


PGAdmin.

http://www.pgadmin.org/

Clearly, more study is needed (^_^)  Oh, as for the Vertical  
inheritance... I was just testing/studying inheritance.  I've read  
enough about what a waste of time VI is on this list.  I know  
better than to actually want to use it myself.  I've already seen  
it fail in MySQL and OpenBase, so I was more interested in why it  
was failing than actually attempting to use it.


You might also want to do some perf testing for your needs.  
FrontBase can be a very nice option if you are not running in the  
situations where it's query optimizer is just not up to the task.


Or, more accurately, makes perverse optimization choices.  Version 4.9  
has fixed the ones that I kept hitting, but it does still make odd  
decisions sometimes.



Also with FrontBase you need to make sure to filter data  
appropriately, even when importing or using other tools than EOF -  
otherwise, garbage in, server down. I had that a couple times.


Yes!


Nevertheless, FrontBase is easy to install, easy to use with WO, is  
SQL92 compliant, has some nice features like the LookSee full text  
index, multi-master replication and so on.


And it can be very fast for large datasets, odd query optimization non- 
withstanding.



PostgreSQL is a bit more cumbersome to set up, but not really hard  
or so, is definitely more robust, has a very good query optimizer  
and an "explain analyze ..." that actually works and that gives  
useful information. I never found FrontBase particularly helpful in  
that department.


I've been  using FB for at least 10 years now and I can confidently  
state that I have NO idea what the FB query plan information means.  I  
can tell when it has given up optimization hope and is using brute  
force, but that is about it.



Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 17:20 , Chuck Hill wrote:

> On Dec 4, 2009, at 5:11 PM, Guido Neitzer wrote:
>>> 
>>> AGAINST MySQL
>>> - Lack of deferred constraints
>>> - Lack of transactional DDL (roll back failing migrations for example). As 
>>> Mike pointed out, neither does Oracle, so not alone there.
>> 
>> All toys ... :-P
> 
> 
> Now,  now Guido.  Oracle is not a toy.  It is a bloated, overpriced, creaky 
> piece of antique 1970's technology.

Hmmm. Fisher Price?

Na, I know that Oracle is the enterprise' choice for DB tool - most of the 
time. And it also does seem to do this quite well. If you were actually allowed 
to post perf comparisons, we would even know how it performs for standard 
setups ... 

cug ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 16:48 , Ramsey Lee Gurley wrote:

[Free]
>> So is PG, FrontBase, and others so no a major Pro
> 
> 
> MySQL Administrator is pretty nice to have.  At least I don't have to shell 
> out $150 on Navicat.  Does postgres/frontbase/other have decent free tools?

PGAdmin always did what I needed when I was on the GUI. Not as nice as Navicat, 
but working. But as I do 99% of my DB stuff on the commandline, I quite like 
psql. Definitely more than sql92 from FrontBase with it's weird display and 
somehow weird syntax for everything other than SQL.

FrontBaseManager: okay. It's there. It kind of works for most things I needed.

> Anyway, I've found this discussion very enlightening.

I think it is the first one where actual points were made apart form "but I 
like it better".

> . and the money thing.  Of the other two, I'm probably going to lean toward 
> Postgres, but I'm wondering... What will I do for admin tools?  I'm not good 
> at remembering cryptic command line options.

PGAdmin.

http://www.pgadmin.org/

> Clearly, more study is needed (^_^)  Oh, as for the Vertical inheritance... I 
> was just testing/studying inheritance.  I've read enough about what a waste 
> of time VI is on this list.  I know better than to actually want to use it 
> myself.  I've already seen it fail in MySQL and OpenBase, so I was more 
> interested in why it was failing than actually attempting to use it.

You might also want to do some perf testing for your needs. FrontBase can be a 
very nice option if you are not running in the situations where it's query 
optimizer is just not up to the task. Also with FrontBase you need to make sure 
to filter data appropriately, even when importing or using other tools than EOF 
- otherwise, garbage in, server down. I had that a couple times. 

Nevertheless, FrontBase is easy to install, easy to use with WO, is SQL92 
compliant, has some nice features like the LookSee full text index, 
multi-master replication and so on. 

PostgreSQL is a bit more cumbersome to set up, but not really hard or so, is 
definitely more robust, has a very good query optimizer and an "explain analyze 
..." that actually works and that gives useful information. I never found 
FrontBase particularly helpful in that department. 

cug ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill

On Dec 4, 2009, at 5:11 PM, Guido Neitzer wrote:


AGAINST MySQL
- Lack of deferred constraints
- Lack of transactional DDL (roll back failing migrations for  
example). As Mike pointed out, neither does Oracle, so not alone  
there.


All toys ... :-P



Now,  now Guido.  Oracle is not a toy.  It is a bloated, overpriced,  
creaky piece of antique 1970's technology.


:-)

Chuck


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 4:48 PM, Ramsey Lee Gurley wrote:



On Dec 4, 2009, at 2:29 PM, Chuck Hill wrote:



On Dec 4, 2009, at 11:16 AM, Kieran Kelleher wrote:


So, to sum up the pros and cons we heard in the discussion:

FOR MySQL
- Free


So is PG, FrontBase, and others so no a major Pro



MySQL Administrator is pretty nice to have.  At least I don't have  
to shell out $150 on Navicat.  Does postgres/frontbase/other have  
decent free tools?


Uh, of course?  :-)  They are  bundled with FB.  PG has http://www.pgadmin.org/



- Easy to setup and configure


Uh, it does not work correctly out of the box so I think this is a  
con




- Clustering engine
- Easy reliable replication


Those two are really the only Pros that I can see for it.  Those  
are the only things that would make me use it





AGAINST MySQL
- Lack of deferred constraints
- Lack of transactional DDL (roll back failing migrations for  
example). As Mike pointed out, neither does Oracle, so not alone  
there.

- need to carefully configure it to get it to work correct



Can it, even with careful setup, work correctly?  Consider a  
circular reference like Nation - City.  Every city has to have a  
nation, every nation has to have a capital city.  With FK  
constraints on, it will be impossible to create a city and a nation.  
Correct?


Yes, fully circular references are simply not possible without  
deferred constraints (or, well, no constraints if you go that way).   
Lack of deferred constraints creates an issue with EOF due to its non- 
deterministic ordering of operations.



 If FKs are off, I have to rely on EOF, and if Nation ->> City is  
huge (Which it probably would be) I don't want to map that.  It will  
have a catastrophic performance impact when addToBothSides is  
called.  But without mapping the to-many, I can delete the Nation  
and orphan all the cities. So it really sounds like a no win  
situation without deferred constraints.


Yes, if you have circular relationships you are pretty well screwed  
coming and / or going.



Anyway, I've found this discussion very enlightening.  I'll probably  
be looking into database options this weekend (^_^)  Looking at the  
Wonder plugin list, I see Derby, Postgres, Frontbase, and Oracle.  I  
really like the idea of Derby.  Embeddable, plus it's just java, and  
I especially like that after reading about Derby's CREATE FUNCTION  
ability. It sounds pretty sweet, but the only info I can find  
regarding Derby and deferred FKs is negative.  I guess I just need  
to checkout the Derby framework and find out.


I am pretty sure that Derby was added as an "this is an easy option  
for demo apps" rather than a "this is a good option for production  
applications".


This is one that I have wanted to look at for a while:
http://www.firebirdsql.org/
http://www.ibphoenix.com/
It is an offshoot/descendant of Interbase, which I used back in my  
Delphi days.  It might still be a bit Windows-centric.



Postgres, Frontbase, and Oracle can all do deferred FKs, but it  
sounds like Oracle is not so desirable due to the migrations thing..  
and the money thing.


The money thing is usually the first roadblock.  You need deep pockets  
to get around that!



 Of the other two, I'm probably going to lean toward Postgres, but  
I'm wondering... What will I do for admin tools?  I'm not good at  
remembering cryptic command line options.


IME, FB is easier to admin than PG.  I'd not choose a database based  
on easy of admin only, that is just a nice to have.  Speed, stability,  
SQL92 (at least) compliance, replication, and clustering are all more  
important than a whizzy GUI admin tool.




Clearly, more study is needed (^_^)  Oh, as for the Vertical  
inheritance... I was just testing/studying inheritance.  I've read  
enough about what a waste of time VI is on this list.  I know better  
than to actually want to use it myself.  I've already seen it fail  
in MySQL and OpenBase, so I was more interested in why it was  
failing than actually attempting to use it.


Say three Hail Marys and you are forgiven my son.


Chuck


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 11:16 , Kieran Kelleher wrote:

> So, to sum up the pros and cons we heard in the discussion:
> 
> FOR MySQL
> - Free
> - Easy to setup and configure
> - Clustering engine

I have read a bit about this part as I'm always curious about synchronous 
multi-master clustering support in DBs. From Are people here referring to NDB 
Cluster? From reading the white papers I was kind of wondering how this could 
in any way be used in the typical (outside big corporations) requirements. Is 
somebody here actually using this?

And I'm not talking about asynchronous replication, I'm talking about real 
multi-master cluster with guaranteed integrity. 

> - Easy reliable replication

Hmmm. Way back when we used it, it wasn't reliable. Every now and then slaves 
had to be completely rebuild. And it also wasn't straightforward as soon as 
something wasn't as expected.

> 
> AGAINST MySQL
> - Lack of deferred constraints
> - Lack of transactional DDL (roll back failing migrations for example). As 
> Mike pointed out, neither does Oracle, so not alone there.

All toys ... :-P

Take care,
Guido ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Ramsey Lee Gurley

On Dec 4, 2009, at 2:29 PM, Chuck Hill wrote:

> 
> On Dec 4, 2009, at 11:16 AM, Kieran Kelleher wrote:
> 
>> So, to sum up the pros and cons we heard in the discussion:
>> 
>> FOR MySQL
>> - Free
> 
> So is PG, FrontBase, and others so no a major Pro


MySQL Administrator is pretty nice to have.  At least I don't have to shell out 
$150 on Navicat.  Does postgres/frontbase/other have decent free tools?


>> - Easy to setup and configure
> 
> Uh, it does not work correctly out of the box so I think this is a con
> 
> 
>> - Clustering engine
>> - Easy reliable replication
> 
> Those two are really the only Pros that I can see for it.  Those are the only 
> things that would make me use it
> 
> 
> 
>> AGAINST MySQL
>> - Lack of deferred constraints
>> - Lack of transactional DDL (roll back failing migrations for example). As 
>> Mike pointed out, neither does Oracle, so not alone there.
> - need to carefully configure it to get it to work correct


Can it, even with careful setup, work correctly?  Consider a circular reference 
like Nation - City.  Every city has to have a nation, every nation has to have 
a capital city.  With FK constraints on, it will be impossible to create a city 
and a nation. Correct?  If FKs are off, I have to rely on EOF, and if Nation 
->> City is huge (Which it probably would be) I don't want to map that.  It 
will have a catastrophic performance impact when addToBothSides is called.  But 
without mapping the to-many, I can delete the Nation and orphan all the cities. 
So it really sounds like a no win situation without deferred constraints.

Anyway, I've found this discussion very enlightening.  I'll probably be looking 
into database options this weekend (^_^)  Looking at the Wonder plugin list, I 
see Derby, Postgres, Frontbase, and Oracle.  I really like the idea of Derby.  
Embeddable, plus it's just java, and I especially like that after reading about 
Derby's CREATE FUNCTION ability. It sounds pretty sweet, but the only info I 
can find regarding Derby and deferred FKs is negative.  I guess I just need to 
checkout the Derby framework and find out.

Postgres, Frontbase, and Oracle can all do deferred FKs, but it sounds like 
Oracle is not so desirable due to the migrations thing.. and the money thing.  
Of the other two, I'm probably going to lean toward Postgres, but I'm 
wondering... What will I do for admin tools?  I'm not good at remembering 
cryptic command line options.

Clearly, more study is needed (^_^)  Oh, as for the Vertical inheritance... I 
was just testing/studying inheritance.  I've read enough about what a waste of 
time VI is on this list.  I know better than to actually want to use it myself. 
 I've already seen it fail in MySQL and OpenBase, so I was more interested in 
why it was failing than actually attempting to use it.

Ramsey

> 
> -- 
> Chuck Hill Senior Consultant / VP Development
> 
> Practical WebObjects - for developers who want to increase their overall 
> knowledge of WebObjects or who are trying to solve specific problems.
> http://www.global-village.net/products/practical_webobjects
> 


smime.p7s
Description: S/MIME cryptographic signature
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

[OT] Software patents

2009-12-04 Thread Sacha Michel Mallais

A must read for anyone interested in software patents:
http://www.groklaw.net/article.php?story=2009151305785


sacha


--  
Sacha Michel Mallais Senior Developer / President

Global Village Consulting Inc.   http://www.global-village.net/
PGP Key ID: 7D757B65 AIM: smallais
"In times of change learners inherit the earth; while the learned find  
themselves beautifully equipped to deal with a world that no longer  
exists."  -- Eric Hoffer



___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


[JOB] WebObjects Developer(s) needed in Northern Virginia

2009-12-04 Thread Andrew R. Kinnie
Greetings All,

My company, K12, is looking for WebObjects people.  We have up to 3 openings, 
and are open to Java people or .Net people who can be re-trained, but if we can 
find WO people, so much the better.  We are located (for those who don't know 
us) very close to Dulles Airport in Herndon, VA, and provide virtual K-12 
school applications for approximately half the states and also support home 
schoolers who want online school services.  We also have a new but increasing 
international presence.

I assume anyone who sees this on the list will have few problems meeting the 
minimum requirements, so I won't waste a lot of time with the details, but it's 
WebObjects development on a team of  6-8 dedicated WO people.  We also host the 
monthly WO-NoVA meetings, so are very much into supporting WO.  What more can 
you ask for?

If anyone is interested, feel free to send me a resume (off list, obviously) so 
I can send it off to my manager.  Currently we have some positions listed on 
Careerbuilder, but we seem to be having some difficulty actually getting the 
resumes to the necessary inside people after making it through the HR filter.  

Andrew Kinnie
Software Engineer
K12, Inc.
akin...@k12.com
 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 10:54 AM, Guido Neitzer wrote:


On 4. Dec. 2009, at 09:43 , Kieran Kelleher wrote:


Hi Guido  shiver?  is it that cold in California? ;-)


Yeah, it actually is in the morning. At least it feels like this  
after a lng summer.



Fair points. This has been a good discussion.

What is the workaround ... is it that we must write a delegate  
to do ordering of updates like Chuck did for MS SQL Server? Is that  
right? Chuck?


I think so, yes.


You should be able to use the same one:

public static void main(String argv[])
{
ERXDatabaseContextMulticastingDelegate.addDefaultDelegate(new  
ERXEntityDependencyOrderingDelegate());

...

The MS SQL plug-in is for other things:

	• Bundled JDBC2INFO so that SQL can be generated without a live  
database connection
	• Improvements and bug fixes for SQL generation (particularly needed  
for ERMigrations)



The other point I mentioned was migrations that just don't work as  
well out of the box as with PostgreSQL and FrontBase. What I find  
critical is that they can't roll back properly. This requires WAY  
more sensitivity from the developer to get them right.



Ugh.


Chuck


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 11:16 AM, Kieran Kelleher wrote:


So, to sum up the pros and cons we heard in the discussion:

FOR MySQL
- Free


So is PG, FrontBase, and others so no a major Pro


- Easy to setup and configure


Uh, it does not work correctly out of the box so I think this is a con



- Clustering engine
- Easy reliable replication


Those two are really the only Pros that I can see for it.  Those are  
the only things that would make me use it





AGAINST MySQL
- Lack of deferred constraints
- Lack of transactional DDL (roll back failing migrations for  
example). As Mike pointed out, neither does Oracle, so not alone  
there.

- need to carefully configure it to get it to work correct


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


MySQL [was: Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]]

2009-12-04 Thread Kieran Kelleher

So, to sum up the pros and cons we heard in the discussion:

FOR MySQL
- Free
- Easy to setup and configure
- Clustering engine
- Easy reliable replication

AGAINST MySQL
- Lack of deferred constraints
- Lack of transactional DDL (roll back failing migrations for  
example). As Mike pointed out, neither does Oracle, so not alone there.




___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Guido Neitzer
On 4. Dec. 2009, at 09:43 , Kieran Kelleher wrote:

> Hi Guido  shiver?  is it that cold in California? ;-)

Yeah, it actually is in the morning. At least it feels like this after a 
lng summer.

> Fair points. This has been a good discussion.
> 
> What is the workaround ... is it that we must write a delegate to do 
> ordering of updates like Chuck did for MS SQL Server? Is that right? Chuck?

I think so, yes. 

The other point I mentioned was migrations that just don't work as well out of 
the box as with PostgreSQL and FrontBase. What I find critical is that they 
can't roll back properly. This requires WAY more sensitivity from the developer 
to get them right.

cug ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill

On Dec 4, 2009, at 10:19 AM, Kieran Kelleher wrote:


Not to mention the small issue of indexes.  So Kieran, you are  
manually creating indexes to compensate for lack of FK constraints?


Yes I am :-)... now the achilles heel of MySQL has been  
exposed!



Wow.  Uh.   Speechless.  Me!


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher


On Dec 4, 2009, at 12:49 PM, Chuck Hill wrote:



On Dec 4, 2009, at 6:48 AM, David Avendasora wrote:



On Dec 4, 2009, at 9:19 AM, Kieran Kelleher wrote:


The lack of deferred constraints prevents one using foreign key  
constraints in MySQL (InnoDB specifically supports FK  
constraints). The problem is that MySQL will not let you delete  
related rows during a transaction, rather than let you execute the  
full statement and then check for FK integrity afterwards.


Exactly, except that if EOF happens to be in a good mood and gets  
the right sequence by accident then it will work.


Please correct me if I am mistaken in my thinking here, but in  
WebObjects, the "Deny" delete rule of a relationship essentially  
does the same thing. Also, in java code, we have the  
ERXGuardedInterface~  (from now on let's say "~" means "or a class  
spelled something like that) which implements canDelete() and that  
allows us to prevent deletion based on logic. We also have  
validateForDelete to prevent deletions in EOF logic.


Since I have never used FL constraints in MySQL, Chuck or someone  
else can explain their exact role/benefit better I am sure.


If other things are touching your DB, it protects your referential  
integrity. I have written apps that have to deal with FKs being  
invalid due to no constraints and it is a PITA. Doable, especially  
with Wonder, but still, I like being able to assume that the FK  
constraint has my back.


Not to mention the small issue of indexes.  So Kieran, you are  
manually creating indexes to compensate for lack of FK constraints?


Yes I am :-)... now the achilles heel of MySQL has been exposed!


 MySquirrelToy doesn't use them for FK constraints?



Now on the orphan issue. If you have orphans, it means that the  
FKs did not get nullified or cascade deleted or sth like that. It  
means your database did not roll back the failing transaction  
fully. The reason transactions protect you is because when you  
delete an object and the related items that have a Nullify  
relationship Delete rule, WO updates those foreign keys to null in  
the same transaction.


Or that some other application is touching your DB.

And if you are dealing with orphans on a MySQL database, it means  
one of three things are wrong.


(1) ...
(2) ...
(3) ...
(4) ...


(5) You're DB doesn't live in a hermetically sealed environment and  
other things can change your data without EOF's blessing. Even if  
the only thing touching my app's DB today is my EOF app, I don't  
know that that is going to be the case in the future and I can't  
rely on EOF keeping maintaining Referential Integrity. Call it  
future-proofing, CYA, Anal Retentiveness, whatever, but if I can  
enforce referential integrity in the DB, that's where I will do it,  
and not being able to is a BIG downside to me.


+40,000,000 or so






On Dec 4, 2009, at 7:57 AM, David Avendasora wrote:



On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database?


What do you mean? That EOF will clean up orphaned objects that  
didn't get cascade-deleted by EOF when the related object was  
deleted? No. If EOF loads rows that have invalid FKs in them, it  
will create a fault for that object, then when you go to try to  
follow that relationship and the fault is fired, you'd get a  
missing object exception. I've had to deal with this exact  
situation before.


I have never implemented constraints and have yet to have an  
orphan record since transactions/rollback protect against that,  
right?


How would transactions protect you from having an invalid FK if  
you don't have any FK constraints?


Dave




-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to  
lose all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will  
say that I started using MySQL at 4.0, then 4.1 and now 5.0.  
Being the stickler for learning as much as I think I need to  
do something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I  
used MyISAM once for a readonly database (about 5 tables  
only) that has geocode lookups on tables of about 100 million  
rows because at the time it appeared faster (with mysql 4.0  
at the time) to do points in radius operations which  
sometimes selected up to 5

Re: Display group design question

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 6:54 AM, Jon Nolan wrote:

I have had a problem with variations on this since my early days  
with WO and I've never solved it to my satisfaction.  Time to ask  
for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in  
the fetch spec.  For the sake of example the EOs in the list are  
colors - 25 total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on ADD  
COLOR.


* Lightbox (AjaxModalDialog) appears and allows user to edit the new  
color in a peer or nested editing context - EC2.  My usual approach  
is to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.   
Container surrounding the display group is updated.


What is the best way to update the display group at this time?  I've  
tried calling fetch(), redisplay(), updateDisplayedObjects(),  
combinations of the above, etc. with various levels of success but I  
always run into trouble with something.


Setting the DG qualifier or sortOrdering (to the same value) will  
cause ERXBatchingDisplayGroup to refetch.



Either the list doesn't refresh correctly re: sort order or the  
batch navigation bar doesn't know when the batch count increases.   
The only sure fire way I've found is nullifying the display group  
and starting over.  This seems very inefficient and I'm sure I'm  
missing something.


I don't want to use the same editing context to edit as I need to  
discard the insert on cancel/overlay dismissal of the AMD.   I  
realize it is possible to use a single ec and revert but it grates  
me to jump through those hoops when a second ec is so easy.  The  
only problem I have with the latter is getting my display group and  
associated batch navigation bar updated consistently and correctly.


Thanks in advance,
Jon


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 6:27 AM, Kieran Kelleher wrote:

I don't use EOModel inheritance any more. It is a PITA. Not worth  
the hassle.


I've never found that to be the case.  What trouble were you having?

Chuck


Using Strategy design pattern to composite in different behaviours  
works better for me. Remember the OO Principle "Favor composition  
over inheritance"


That is "Favor"  not "use even when inheritance is appropriate".


Chuck



... I now favor composition over inheritance ;-)   BTW, for this  
setup the table is identical to a single-table inheritance table,  
except that the 'type' id field determines the lazily constructed  
strategy behaviour class for the EO. I will only ever use EOModel  
inheritance again, if (1) I am told to by a customer, or (2)  
Strategy design pattern behaviour composition simply does not make  
sense (so far it makes sense for every case I have looked at in last  
few years) YMMV ;-)


Regards, Kieran

On Dec 4, 2009, at 8:49 AM, David Avendasora wrote:


Or you can just not use Vertical Inheritance. :-)


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net

This email sent to ch...@global-village.net


--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 9:43 AM, Kieran Kelleher wrote:


Hi Guido  shiver?  is it that cold in California? ;-)

Fair points. This has been a good discussion.

What is the workaround ... is it that we must write a delegate  
to do ordering of updates like Chuck did for MS SQL Server? Is that  
right? Chuck?


Or... just use a real database with real database features.  Deferred  
Constraints is what, SQL92?  That would be 1992.  What year is it  
now?I thought that only MS SQL did not have them.




On Dec 4, 2009, at 12:04 PM, Guido Neitzer wrote:

Why does this make me shiver? I'd like to have my DB take care of  
structural integrity for me as


1) I will make coding mistakes,
2) It is rare, that ONLY WO touches a DB,
3) I will not rely on EOF always doing the thing I expect it to do.

Not having FK constraints is about as wrong as using MyISAM in my  
opinion.


cug

--
http://www.event-s.net

On 4. Dec. 2009, at 06:21 , Kieran Kelleher wrote:


Ramsey,

Just remove the FK constraints in MySQL. WO works fine without  
them since EOF takes care of it. If a database does not support  
deferred constraints, then you should not add FK constraints at all.


Cheers, Kieran

On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:


Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal- 
>Cat->Leopard.  I try to create a leopard and it fails because


com.webobjects.eoaccess.EOGeneralAdaptorException:  
EvaluateExpression failed:  
INTO Leopard(spots, id) VALUES (?, ?)" withBindings: 1:33(spots),  
2:9(id)>:
Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot  
add or update a child row: a foreign key constraint fails  
(`example/leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY  
(`id`) REFERENCES `cat` (`id`))


It gets the adaptor operations for Animal, then Leopard, then  
Cat... and blows up at leopard because there's no cat yet (I  
think).  I had to google for "What are deferred constraints" so I  
could be very wrong, but I think it's blowing up because of lack  
of deferred constraints (^_^) It looks like I'll need to have an  
EODatabaseContext delegate override  
databaseContextWillOrderAdaptorOperations to fix it, unless there  
is something in the ERXSQLHelper that can get there first.


This just happens to be a timely thread since I was messing with  
my MySQLPlugin last night (^_^)


Ramsey

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database? I have never implemented constraints and  
have yet to have an orphan record since transactions/rollback  
protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to  
lose all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will  
say that I started using MySQL at 4.0, then 4.1 and now 5.0.  
Being the stickler for learning as much as I think I need to  
do something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I  
used MyISAM once for a readonly database (about 5 tables  
only) that has geocode lookups on tables of about 100 million  
rows because at the time it appeared faster (with mysql 4.0  
at the time) to do points in radius operations which  
sometimes selected up to 500,000 rows in a select. My main  
ongoing project is InnoDB and every user is a user that does  
edits, with a small percentage of users absolutely hammering  
the database with production processing during business hours  
each day. I replicate to 3 slaves on that project purely for  
backup. It runs 24/7 and almost never have any "Scheduled  
Maintenance" downtime garbage because of the fact that the  
replication slaves are where the backups happen. One slave is  
remote and 2 onsite with the master. The binary logs on the  
master are written to a separate phyaical drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use:  
"I am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/r

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 6:48 AM, David Avendasora wrote:



On Dec 4, 2009, at 9:19 AM, Kieran Kelleher wrote:

Actually, let me rephrase that. My brain was not working earlier  
since I had not yet had breakfast :-)


M. Guinness!


Damn!  That was MY line you just used!



The lack of deferred constraints prevents one using foreign key  
constraints in MySQL (InnoDB specifically supports FK constraints).  
The problem is that MySQL will not let you delete related rows  
during a transaction, rather than let you execute the full  
statement and then check for FK integrity afterwards.


Exactly, except that if EOF happens to be in a good mood and gets  
the right sequence by accident then it will work.


Please correct me if I am mistaken in my thinking here, but in  
WebObjects, the "Deny" delete rule of a relationship essentially  
does the same thing. Also, in java code, we have the  
ERXGuardedInterface~  (from now on let's say "~" means "or a class  
spelled something like that) which implements canDelete() and that  
allows us to prevent deletion based on logic. We also have  
validateForDelete to prevent deletions in EOF logic.


Since I have never used FL constraints in MySQL, Chuck or someone  
else can explain their exact role/benefit better I am sure.


If other things are touching your DB, it protects your referential  
integrity. I have written apps that have to deal with FKs being  
invalid due to no constraints and it is a PITA. Doable, especially  
with Wonder, but still, I like being able to assume that the FK  
constraint has my back.


Not to mention the small issue of indexes.  So Kieran, you are  
manually creating indexes to compensate for lack of FK constraints?   
MySquirrelToy doesn't use them for FK constraints?




Now on the orphan issue. If you have orphans, it means that the FKs  
did not get nullified or cascade deleted or sth like that. It means  
your database did not roll back the failing transaction fully. The  
reason transactions protect you is because when you delete an  
object and the related items that have a Nullify relationship  
Delete rule, WO updates those foreign keys to null in the same  
transaction.


Or that some other application is touching your DB.

And if you are dealing with orphans on a MySQL database, it means  
one of three things are wrong.


(1) ...
(2) ...
(3) ...
(4) ...


(5) You're DB doesn't live in a hermetically sealed environment and  
other things can change your data without EOF's blessing. Even if  
the only thing touching my app's DB today is my EOF app, I don't  
know that that is going to be the case in the future and I can't  
rely on EOF keeping maintaining Referential Integrity. Call it  
future-proofing, CYA, Anal Retentiveness, whatever, but if I can  
enforce referential integrity in the DB, that's where I will do it,  
and not being able to is a BIG downside to me.


+40,000,000 or so






On Dec 4, 2009, at 7:57 AM, David Avendasora wrote:



On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database?


What do you mean? That EOF will clean up orphaned objects that  
didn't get cascade-deleted by EOF when the related object was  
deleted? No. If EOF loads rows that have invalid FKs in them, it  
will create a fault for that object, then when you go to try to  
follow that relationship and the fault is fired, you'd get a  
missing object exception. I've had to deal with this exact  
situation before.


I have never implemented constraints and have yet to have an  
orphan record since transactions/rollback protect against that,  
right?


How would transactions protect you from having an invalid FK if  
you don't have any FK constraints?


Dave




-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I  
used MyISAM once for a readonly database (about 5 tables only)  
that has geocode lookups on tables of about 100 million rows  
because at the time it appeared faster (with mysql 4.0 at the  
time) to do points in radius op

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 6:21 AM, Kieran Kelleher wrote:


Ramsey,

Just remove the FK constraints in MySQL. WO works fine without them  
since EOF takes care of it. If a database does not support deferred  
constraints, then you should not add FK constraints at all.




I once advocated that too, long ago, when I was younger and more  
foolish.  Now I see that this is just plain crazy.  You have too much  
breakfast this morning?





On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:


Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal->Cat- 
>Leopard.  I try to create a leopard and it fails because


com.webobjects.eoaccess.EOGeneralAdaptorException:  
EvaluateExpression failed: $MySQLExpression: "INSERT INTO Leopard(spots, id) VALUES (?, ?)"  
withBindings: 1:33(spots), 2:9(id)>:
  Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot  
add or update a child row: a foreign key constraint fails (`example/ 
leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`)  
REFERENCES `cat` (`id`))


It gets the adaptor operations for Animal, then Leopard, then  
Cat... and blows up at leopard because there's no cat yet (I  
think).  I had to google for "What are deferred constraints" so I  
could be very wrong, but I think it's blowing up because of lack of  
deferred constraints (^_^) It looks like I'll need to have an  
EODatabaseContext delegate override  
databaseContextWillOrderAdaptorOperations to fix it, unless there  
is something in the ERXSQLHelper that can get there first.


This just happens to be a timely thread since I was messing with my  
MySQLPlugin last night (^_^)


Ramsey

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database? I have never implemented constraints and  
have yet to have an orphan record since transactions/rollback  
protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I used  
MyISAM once for a readonly database (about 5 tables only) that  
has geocode lookups on tables of about 100 million rows because  
at the time it appeared faster (with mysql 4.0 at the time) to  
do points in radius operations which sometimes selected up to  
500,000 rows in a select. My main ongoing project is InnoDB and  
every user is a user that does edits, with a small percentage  
of users absolutely hammering the database with production  
processing during business hours each day. I replicate to 3  
slaves on that project purely for backup. It runs 24/7 and  
almost never have any "Scheduled Maintenance" downtime garbage  
because of the fact that the replication slaves are where the  
backups happen. One slave is remote and 2 onsite with the  
master. The binary logs on the master are written to a separate  
phyaical drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use:  
"I am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/record edits  
themselves.


+ Deferred constraints!



That is a pretty big strike against MySQL in my books.


Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve  
specific problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Chuck Hill


On Dec 4, 2009, at 5:02 AM, Ramsey Lee Gurley wrote:


Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal->Cat- 
>Leopard.  I try to create a leopard and it fails because


com.webobjects.eoaccess.EOGeneralAdaptorException:  
EvaluateExpression failed: $MySQLExpression: "INSERT INTO Leopard(spots, id) VALUES (?, ?)"  
withBindings: 1:33(spots), 2:9(id)>:
   Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot  
add or update a child row: a foreign key constraint fails (`example/ 
leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`)  
REFERENCES `cat` (`id`))


It gets the adaptor operations for Animal, then Leopard, then Cat...  
and blows up at leopard because there's no cat yet (I think).  I had  
to google for "What are deferred constraints" so I could be very  
wrong, but I think it's blowing up because of lack of deferred  
constraints (^_^) It looks like I'll need to have an  
EODatabaseContext delegate override  
databaseContextWillOrderAdaptorOperations to fix it, unless there is  
something in the ERXSQLHelper that can get there first.


This just happens to be a timely thread since I was messing with my  
MySQLPlugin last night (^_^)


See my  MS SQL plugin for how to address at least part of this in the  
plugin:

http://www.global-village.net/chill

It addresses many of the issues caused by lack of deferred  
constraints, though I suspect that it might not fully handle VI.   
Maybe David remembers.


And, uh, VI?  Just say "Hell NO!" to VI.

Chuck




On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database? I have never implemented constraints and  
have yet to have an orphan record since transactions/rollback  
protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I used  
MyISAM once for a readonly database (about 5 tables only) that  
has geocode lookups on tables of about 100 million rows because  
at the time it appeared faster (with mysql 4.0 at the time) to  
do points in radius operations which sometimes selected up to  
500,000 rows in a select. My main ongoing project is InnoDB and  
every user is a user that does edits, with a small percentage of  
users absolutely hammering the database with production  
processing during business hours each day. I replicate to 3  
slaves on that project purely for backup. It runs 24/7 and  
almost never have any "Scheduled Maintenance" downtime garbage  
because of the fact that the replication slaves are where the  
backups happen. One slave is remote and 2 onsite with the  
master. The binary logs on the master are written to a separate  
phyaical drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use: "I  
am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/record edits  
themselves.


+ Deferred constraints!



That is a pretty big strike against MySQL in my books.


Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve  
specific problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher

Hi Guido  shiver?  is it that cold in California? ;-)

Fair points. This has been a good discussion.

What is the workaround ... is it that we must write a delegate to  
do ordering of updates like Chuck did for MS SQL Server? Is that  
right? Chuck?


-Kieran

On Dec 4, 2009, at 12:04 PM, Guido Neitzer wrote:

Why does this make me shiver? I'd like to have my DB take care of  
structural integrity for me as


1) I will make coding mistakes,
2) It is rare, that ONLY WO touches a DB,
3) I will not rely on EOF always doing the thing I expect it to do.

Not having FK constraints is about as wrong as using MyISAM in my  
opinion.


cug

--
http://www.event-s.net

On 4. Dec. 2009, at 06:21 , Kieran Kelleher wrote:


Ramsey,

Just remove the FK constraints in MySQL. WO works fine without them  
since EOF takes care of it. If a database does not support deferred  
constraints, then you should not add FK constraints at all.


Cheers, Kieran

On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:


Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal- 
>Cat->Leopard.  I try to create a leopard and it fails because


com.webobjects.eoaccess.EOGeneralAdaptorException:  
EvaluateExpression failed: $MySQLExpression: "INSERT INTO Leopard(spots, id) VALUES (?, ?)"  
withBindings: 1:33(spots), 2:9(id)>:
Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot  
add or update a child row: a foreign key constraint fails  
(`example/leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY  
(`id`) REFERENCES `cat` (`id`))


It gets the adaptor operations for Animal, then Leopard, then  
Cat... and blows up at leopard because there's no cat yet (I  
think).  I had to google for "What are deferred constraints" so I  
could be very wrong, but I think it's blowing up because of lack  
of deferred constraints (^_^) It looks like I'll need to have an  
EODatabaseContext delegate override  
databaseContextWillOrderAdaptorOperations to fix it, unless there  
is something in the ERXSQLHelper that can get there first.


This just happens to be a timely thread since I was messing with  
my MySQLPlugin last night (^_^)


Ramsey

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database? I have never implemented constraints and  
have yet to have an orphan record since transactions/rollback  
protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I  
used MyISAM once for a readonly database (about 5 tables only)  
that has geocode lookups on tables of about 100 million rows  
because at the time it appeared faster (with mysql 4.0 at the  
time) to do points in radius operations which sometimes  
selected up to 500,000 rows in a select. My main ongoing  
project is InnoDB and every user is a user that does edits,  
with a small percentage of users absolutely hammering the  
database with production processing during business hours each  
day. I replicate to 3 slaves on that project purely for  
backup. It runs 24/7 and almost never have any "Scheduled  
Maintenance" downtime garbage because of the fact that the  
replication slaves are where the backups happen. One slave is  
remote and 2 onsite with the master. The binary logs on the  
master are written to a separate phyaical drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use:  
"I am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/record edits  
themselves.


+ Deferred constraints!



That is a pretty big strike against MySQL in my books.


Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers 

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Guido Neitzer
Why does this make me shiver? I'd like to have my DB take care of structural 
integrity for me as 

1) I will make coding mistakes,
2) It is rare, that ONLY WO touches a DB,
3) I will not rely on EOF always doing the thing I expect it to do.

Not having FK constraints is about as wrong as using MyISAM in my opinion.

cug

-- 
http://www.event-s.net

On 4. Dec. 2009, at 06:21 , Kieran Kelleher wrote:

> Ramsey,
> 
> Just remove the FK constraints in MySQL. WO works fine without them since EOF 
> takes care of it. If a database does not support deferred constraints, then 
> you should not add FK constraints at all.
> 
> Cheers, Kieran
> 
> On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:
> 
>> Hi Kieran,
>> 
>> Have you tried vertical inheritance with MySQL?  I have 
>> Animal->Cat->Leopard.  I try to create a leopard and it fails because
>> 
>> com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression 
>> failed: > INTO Leopard(spots, id) VALUES (?, ?)" withBindings: 1:33(spots), 2:9(id)>:
>>  Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add or 
>> update a child row: a foreign key constraint fails (`example/leopard`, 
>> CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`) REFERENCES `cat` (`id`))
>> 
>> It gets the adaptor operations for Animal, then Leopard, then Cat... and 
>> blows up at leopard because there's no cat yet (I think).  I had to google 
>> for "What are deferred constraints" so I could be very wrong, but I think 
>> it's blowing up because of lack of deferred constraints (^_^) It looks like 
>> I'll need to have an EODatabaseContext delegate override 
>> databaseContextWillOrderAdaptorOperations to fix it, unless there is 
>> something in the ERXSQLHelper that can get there first.
>> 
>> This just happens to be a timely thread since I was messing with my 
>> MySQLPlugin last night (^_^)
>> 
>> Ramsey
>> 
>> On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:
>> 
>>> Fair enough. Finally, we have one specific strike against it. ;-)
>>> 
>>> Since we have Delete rules in the EOModel, is this feature a "safety net" 
>>> that is needed for external non-WO apps that are accessing the database? I 
>>> have never implemented constraints and have yet to have an orphan record 
>>> since transactions/rollback protect against that, right?
>>> 
>>> -Kieran
>>> 
>>> On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
>>> 
 
 On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
 
> On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
> 
>> I was just wondering why people were saying disaster, toy, etc  
>> wondering if I am missing something and going to lose all my data next 
>> week!
>> 
>> Like I said, I have not used FrontBase or PostgreSQL in production and 
>> have never touched PostgreSQL, so if it is comparison you are after, I 
>> don't have one. However I will say that I started using MySQL at 4.0, 
>> then 4.1 and now 5.0. Being the stickler for learning as much as I think 
>> I need to do something right, I bought the original Jeremy Zawodny book 
>> "Advanced MySQL" and that gave me a clear understanding and confidence 
>> of how to set the thing up. I have never used the cluster engine 
>> (NDB) yet. I have always used InnoDB. I used MyISAM once for a 
>> readonly database (about 5 tables only) that has geocode lookups on 
>> tables of about 100 million rows because at the time it appeared faster 
>> (with mysql 4.0 at the time) to do points in radius operations which 
>> sometimes selected up to 500,000 rows in a select. My main ongoing 
>> project is InnoDB and every user is a user that does edits, with a small 
>> percentage of users absolutely hammering the database with production 
>> processing during business hours each day. I replicate to 3 slaves on 
>> that project purely for backup. It runs 24/7 and almost never have any 
>> "Scheduled Maintenance" downtime garbage because of the fact that the 
>> replication slaves are where the backups happen. One slave is remote and 
>> 2 onsite with the master. The binary logs on the master are written to a 
>> separate phyaical drive
>> 
>> Why do I like it?
>> - It is free
>> - It has never left me down - no data/table corruption
>> - It is simple to set up and configure
>> - replication is a breeze to set up
>> - It has multiple engine types for different scenarios
>> - and finally the reason that most people like what they use: "I am 
>> comfortable with it" ;-)
>> 
>> 
>> What would I like that I think I might be missing?
>> - transactional structure changes (ie., create table and roll back.) 
>> transactions in InnoDB only apply to table/record edits themselves.
> 
> + Deferred constraints!
 
 
 That is a pretty big strike against MySQL in my books.
 
 
 Chuck
 
 -- 
 Chuck Hill Seni

Re: Display group design question

2009-12-04 Thread Kieran Kelleher
For Ajax pages I use Wonder's AjaxFlickrBatchNavigation. That needs to  
be inside the update container too.


On Dec 4, 2009, at 11:22 AM, Jon Nolan wrote:

Thanks Kieran.  Good advice.  Off the top it appears I might still  
have trouble with my batch navigation bar (any thoughts on that?)  
but I'll give it a go.

Kieran Kelleher wrote:
Clarification, I would of course make a local instance in the same  
ec as the display group before doing that! :-) IIRC,  
ERXBatchingDisplayGroup may have some behaviours that are different  
to regular ERXDisplayGroup  but cannot remmeber off the top of  
my head.


On Dec 4, 2009, at 10:43 AM, Kieran Kelleher wrote:


Hi Jon,

I typically use a peer ec, and once user submits the new item, I  
would do sth like this (which I just copied/pasted from working  
code. BTW, the display group is ERXDisplayGroup and is using a  
DetailDataSource in this case:


   
recipientsDisplayGroup().insertObjectAtIndex(newRecipient, 0);

  recipientsDisplayGroup().setSelectedObject(newRecipient);
   
recipientsDisplayGroup().displayBatchContainingSelectedObject();


Note I insert new ones in furst position of first page just so  
user gets visual feedback. You can insert wherever.


Slán, Kieran

On Dec 4, 2009, at 9:54 AM, Jon Nolan wrote:

I have had a problem with variations on this since my early days  
with WO and I've never solved it to my satisfaction.  Time to ask  
for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in  
the fetch spec.  For the sake of example the EOs in the list are  
colors - 25 total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on  
ADD COLOR.


* Lightbox (AjaxModalDialog) appears and allows user to edit the  
new color in a peer or nested editing context - EC2.  My usual  
approach is to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.   
Container surrounding the display group is updated.


What is the best way to update the display group at this time?   
I've tried calling fetch(), redisplay(),  
updateDisplayedObjects(), combinations of the above, etc. with  
various levels of success but I always run into trouble with  
something.  Either the list doesn't refresh correctly re: sort  
order or the batch navigation bar doesn't know when the batch  
count increases.  The only sure fire way I've found is nullifying  
the display group and starting over.  This seems very inefficient  
and I'm sure I'm missing something.


I don't want to use the same editing context to edit as I need to  
discard the insert on cancel/overlay dismissal of the AMD.   I  
realize it is possible to use a single ec and revert but it  
grates me to jump through those hoops when a second ec is so  
easy.  The only problem I have with the latter is getting my  
display group and associated batch navigation bar updated  
consistently and correctly.


Thanks in advance,
Jon




___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Display group design question

2009-12-04 Thread Jon Nolan
Thanks Kieran.  Good advice.  Off the top it appears I might still have 
trouble with my batch navigation bar (any thoughts on that?) but I'll 
give it a go. 


Kieran Kelleher wrote:
Clarification, I would of course make a local instance in the same ec 
as the display group before doing that! :-) IIRC, 
ERXBatchingDisplayGroup may have some behaviours that are different to 
regular ERXDisplayGroup  but cannot remmeber off the top of my head.


On Dec 4, 2009, at 10:43 AM, Kieran Kelleher wrote:


Hi Jon,

I typically use a peer ec, and once user submits the new item, I 
would do sth like this (which I just copied/pasted from working code. 
BTW, the display group is ERXDisplayGroup and is using a 
DetailDataSource in this case:


   recipientsDisplayGroup().insertObjectAtIndex(newRecipient, 
0);

   recipientsDisplayGroup().setSelectedObject(newRecipient);
   
recipientsDisplayGroup().displayBatchContainingSelectedObject();


Note I insert new ones in furst position of first page just so user 
gets visual feedback. You can insert wherever.


Slán, Kieran

On Dec 4, 2009, at 9:54 AM, Jon Nolan wrote:

I have had a problem with variations on this since my early days 
with WO and I've never solved it to my satisfaction.  Time to ask 
for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in 
the fetch spec.  For the sake of example the EOs in the list are 
colors - 25 total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on ADD 
COLOR.


* Lightbox (AjaxModalDialog) appears and allows user to edit the new 
color in a peer or nested editing context - EC2.  My usual approach 
is to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.  
Container surrounding the display group is updated.


What is the best way to update the display group at this time?  I've 
tried calling fetch(), redisplay(), updateDisplayedObjects(), 
combinations of the above, etc. with various levels of success but I 
always run into trouble with something.  Either the list doesn't 
refresh correctly re: sort order or the batch navigation bar doesn't 
know when the batch count increases.  The only sure fire way I've 
found is nullifying the display group and starting over.  This seems 
very inefficient and I'm sure I'm missing something.


I don't want to use the same editing context to edit as I need to 
discard the insert on cancel/overlay dismissal of the AMD.   I 
realize it is possible to use a single ec and revert but it grates 
me to jump through those hoops when a second ec is so easy.  The 
only problem I have with the latter is getting my display group and 
associated batch navigation bar updated consistently and correctly.


Thanks in advance,
Jon


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Display group design question

2009-12-04 Thread Kieran Kelleher
Clarification, I would of course make a local instance in the same ec  
as the display group before doing that! :-) IIRC,  
ERXBatchingDisplayGroup may have some behaviours that are different to  
regular ERXDisplayGroup  but cannot remmeber off the top of my head.


On Dec 4, 2009, at 10:43 AM, Kieran Kelleher wrote:


Hi Jon,

I typically use a peer ec, and once user submits the new item, I  
would do sth like this (which I just copied/pasted from working  
code. BTW, the display group is ERXDisplayGroup and is using a  
DetailDataSource in this case:



recipientsDisplayGroup().insertObjectAtIndex(newRecipient, 0);

   recipientsDisplayGroup().setSelectedObject(newRecipient);

recipientsDisplayGroup().displayBatchContainingSelectedObject();


Note I insert new ones in furst position of first page just so user  
gets visual feedback. You can insert wherever.


Slán, Kieran

On Dec 4, 2009, at 9:54 AM, Jon Nolan wrote:

I have had a problem with variations on this since my early days  
with WO and I've never solved it to my satisfaction.  Time to ask  
for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in  
the fetch spec.  For the sake of example the EOs in the list are  
colors - 25 total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on ADD  
COLOR.


* Lightbox (AjaxModalDialog) appears and allows user to edit the  
new color in a peer or nested editing context - EC2.  My usual  
approach is to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.   
Container surrounding the display group is updated.


What is the best way to update the display group at this time?   
I've tried calling fetch(), redisplay(), updateDisplayedObjects(),  
combinations of the above, etc. with various levels of success but  
I always run into trouble with something.  Either the list doesn't  
refresh correctly re: sort order or the batch navigation bar  
doesn't know when the batch count increases.  The only sure fire  
way I've found is nullifying the display group and starting over.   
This seems very inefficient and I'm sure I'm missing something.


I don't want to use the same editing context to edit as I need to  
discard the insert on cancel/overlay dismissal of the AMD.   I  
realize it is possible to use a single ec and revert but it grates  
me to jump through those hoops when a second ec is so easy.  The  
only problem I have with the latter is getting my display group and  
associated batch navigation bar updated consistently and correctly.


Thanks in advance,
Jon

___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Display group design question

2009-12-04 Thread Kieran Kelleher

Hi Jon,

I typically use a peer ec, and once user submits the new item, I would  
do sth like this (which I just copied/pasted from working code. BTW,  
the display group is ERXDisplayGroup and is using a DetailDataSource  
in this case:


 
recipientsDisplayGroup().insertObjectAtIndex(newRecipient, 0);

recipientsDisplayGroup().setSelectedObject(newRecipient);
 
recipientsDisplayGroup().displayBatchContainingSelectedObject();


Note I insert new ones in furst position of first page just so user  
gets visual feedback. You can insert wherever.


Slán, Kieran

On Dec 4, 2009, at 9:54 AM, Jon Nolan wrote:

I have had a problem with variations on this since my early days  
with WO and I've never solved it to my satisfaction.  Time to ask  
for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in  
the fetch spec.  For the sake of example the EOs in the list are  
colors - 25 total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on ADD  
COLOR.


* Lightbox (AjaxModalDialog) appears and allows user to edit the new  
color in a peer or nested editing context - EC2.  My usual approach  
is to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.   
Container surrounding the display group is updated.


What is the best way to update the display group at this time?  I've  
tried calling fetch(), redisplay(), updateDisplayedObjects(),  
combinations of the above, etc. with various levels of success but I  
always run into trouble with something.  Either the list doesn't  
refresh correctly re: sort order or the batch navigation bar doesn't  
know when the batch count increases.  The only sure fire way I've  
found is nullifying the display group and starting over.  This seems  
very inefficient and I'm sure I'm missing something.


I don't want to use the same editing context to edit as I need to  
discard the insert on cancel/overlay dismissal of the AMD.   I  
realize it is possible to use a single ec and revert but it grates  
me to jump through those hoops when a second ec is so easy.  The  
only problem I have with the latter is getting my display group and  
associated batch navigation bar updated consistently and correctly.


Thanks in advance,
Jon

___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Display group design question

2009-12-04 Thread Jon Nolan
I have had a problem with variations on this since my early days with WO 
and I've never solved it to my satisfaction.  Time to ask for help.


* Page has a display group (ERXBatchingDisplayGroup) using EC1 in the 
fetch spec.  For the sake of example the EOs in the list are colors - 25 
total with 10 on each page.  Colors are sorted by name.


* The second page contains GREEN through PINK.  User clicks on ADD COLOR.

* Lightbox (AjaxModalDialog) appears and allows user to edit the new 
color in a peer or nested editing context - EC2.  My usual approach is 
to use a nested ec.


* User adds ORANGE and saves changes.  Lightbox disappears.  Container 
surrounding the display group is updated.


What is the best way to update the display group at this time?  I've 
tried calling fetch(), redisplay(), updateDisplayedObjects(), 
combinations of the above, etc. with various levels of success but I 
always run into trouble with something.  Either the list doesn't refresh 
correctly re: sort order or the batch navigation bar doesn't know when 
the batch count increases.  The only sure fire way I've found is 
nullifying the display group and starting over.  This seems very 
inefficient and I'm sure I'm missing something.


I don't want to use the same editing context to edit as I need to 
discard the insert on cancel/overlay dismissal of the AMD.   I realize 
it is possible to use a single ec and revert but it grates me to jump 
through those hoops when a second ec is so easy.  The only problem I 
have with the latter is getting my display group and associated batch 
navigation bar updated consistently and correctly.


Thanks in advance,
Jon

___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread David Avendasora

On Dec 4, 2009, at 9:19 AM, Kieran Kelleher wrote:

> Actually, let me rephrase that. My brain was not working earlier since I had 
> not yet had breakfast :-)

M. Guinness!

> The lack of deferred constraints prevents one using foreign key constraints 
> in MySQL (InnoDB specifically supports FK constraints). The problem is that 
> MySQL will not let you delete related rows during a transaction, rather than 
> let you execute the full statement and then check for FK integrity afterwards.

Exactly, except that if EOF happens to be in a good mood and gets the right 
sequence by accident then it will work.

> Please correct me if I am mistaken in my thinking here, but in WebObjects, 
> the "Deny" delete rule of a relationship essentially does the same thing. 
> Also, in java code, we have the ERXGuardedInterface~  (from now on let's say 
> "~" means "or a class spelled something like that) which implements 
> canDelete() and that allows us to prevent deletion based on logic. We also 
> have validateForDelete to prevent deletions in EOF logic.
> 
> Since I have never used FL constraints in MySQL, Chuck or someone else can 
> explain their exact role/benefit better I am sure.

If other things are touching your DB, it protects your referential integrity. I 
have written apps that have to deal with FKs being invalid due to no 
constraints and it is a PITA. Doable, especially with Wonder, but still, I like 
being able to assume that the FK constraint has my back.

> Now on the orphan issue. If you have orphans, it means that the FKs did not 
> get nullified or cascade deleted or sth like that. It means your database did 
> not roll back the failing transaction fully. The reason transactions protect 
> you is because when you delete an object and the related items that have a 
> Nullify relationship Delete rule, WO updates those foreign keys to null in 
> the same transaction.

Or that some other application is touching your DB.

> And if you are dealing with orphans on a MySQL database, it means one of 
> three things are wrong.
> 
> (1) ...
> (2) ...
> (3) ...
> (4) ...

(5) You're DB doesn't live in a hermetically sealed environment and other 
things can change your data without EOF's blessing. Even if the only thing 
touching my app's DB today is my EOF app, I don't know that that is going to be 
the case in the future and I can't rely on EOF keeping maintaining Referential 
Integrity. Call it future-proofing, CYA, Anal Retentiveness, whatever, but if I 
can enforce referential integrity in the DB, that's where I will do it, and not 
being able to is a BIG downside to me.

Dave

> 
> 
> On Dec 4, 2009, at 7:57 AM, David Avendasora wrote:
> 
>> 
>> On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:
>> 
>>> Fair enough. Finally, we have one specific strike against it. ;-)
>>> 
>>> Since we have Delete rules in the EOModel, is this feature a "safety net" 
>>> that is needed for external non-WO apps that are accessing the database?
>> 
>> What do you mean? That EOF will clean up orphaned objects that didn't get 
>> cascade-deleted by EOF when the related object was deleted? No. If EOF loads 
>> rows that have invalid FKs in them, it will create a fault for that object, 
>> then when you go to try to follow that relationship and the fault is fired, 
>> you'd get a missing object exception. I've had to deal with this exact 
>> situation before.
>> 
>>> I have never implemented constraints and have yet to have an orphan record 
>>> since transactions/rollback protect against that, right?
>> 
>> How would transactions protect you from having an invalid FK if you don't 
>> have any FK constraints?
>> 
>> Dave
>> 
>> 
>>> 
>>> -Kieran
>>> 
>>> On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
>>> 
 
 On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
 
> On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
> 
>> I was just wondering why people were saying disaster, toy, etc  
>> wondering if I am missing something and going to lose all my data next 
>> week!
>> 
>> Like I said, I have not used FrontBase or PostgreSQL in production and 
>> have never touched PostgreSQL, so if it is comparison you are after, I 
>> don't have one. However I will say that I started using MySQL at 4.0, 
>> then 4.1 and now 5.0. Being the stickler for learning as much as I think 
>> I need to do something right, I bought the original Jeremy Zawodny book 
>> "Advanced MySQL" and that gave me a clear understanding and confidence 
>> of how to set the thing up. I have never used the cluster engine 
>> (NDB) yet. I have always used InnoDB. I used MyISAM once for a 
>> readonly database (about 5 tables only) that has geocode lookups on 
>> tables of about 100 million rows because at the time it appeared faster 
>> (with mysql 4.0 at the time) to do points in radius operations which 
>> sometimes selected up to 500,000 rows in a select. My main ongoing 
>> 

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread David Avendasora

On Dec 4, 2009, at 9:33 AM, Kieran Kelleher wrote:

>  and boy is it easy to add new flavors of behaviour ...

You've been on this side of the pond too long. You are mixing your 
misspellings. :-P

Dave

David Avendasora
Senior Software Engineer
K12, Inc.

*
WebObjects Documentation Wiki : 
http://wiki.objectstyle.org/confluence/display/WO/
*
WebObjects API: 
http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html
*

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread David Avendasora

On Dec 4, 2009, at 9:19 AM, Kieran Kelleher wrote:

> Actually, let me rephrase that. My brain was not working earlier since I had 
> not yet had breakfast :-)

M. Guinness!

> The lack of deferred constraints prevents one using foreign key constraints 
> in MySQL (InnoDB specifically supports FK constraints). The problem is that 
> MySQL will not let you delete related rows during a transaction, rather than 
> let you execute the full statement and then check for FK integrity afterwards.

Exactly, except that if EOF happens to be in a good mood and gets the right 
sequence by accident then it will work.

> Please correct me if I am mistaken in my thinking here, but in WebObjects, 
> the "Deny" delete rule of a relationship essentially does the same thing. 
> Also, in java code, we have the ERXGuardedInterface~  (from now on let's say 
> "~" means "or a class spelled something like that) which implements 
> canDelete() and that allows us to prevent deletion based on logic. We also 
> have validateForDelete to prevent deletions in EOF logic.
> 
> Since I have never used FL constraints in MySQL, Chuck or someone else can 
> explain their exact role/benefit better I am sure.

If other things are touching your DB, it protects your referential integrity. I 
have written apps that have to deal with FKs being invalid due to no 
constraints and it is a PITA. Doable, especially with Wonder, but still, I like 
being able to assume that the FK constraint has my back.

> Now on the orphan issue. If you have orphans, it means that the FKs did not 
> get nullified or cascade deleted or sth like that. It means your database did 
> not roll back the failing transaction fully. The reason transactions protect 
> you is because when you delete an object and the related items that have a 
> Nullify relationship Delete rule, WO updates those foreign keys to null in 
> the same transaction.

Or that some other application is touching your DB.

> And if you are dealing with orphans on a MySQL database, it means one of 
> three things are wrong.
> 
> (1) ...
> (2) ...
> (3) ...
> (4) ...

(5) You're DB doesn't live in a hermetically sealed environment and other 
things can change your data without EOF's blessing. Even if the only thing 
touching my app's DB today is my EOF app, I don't know that that is going to be 
the case in the future and I can't rely on EOF keeping maintaining Referential 
Integrity. Call it future-proofing, CYA, Anal Retentiveness, whatever, but if I 
can enforce referential integrity in the DB, that's where I will do it, and not 
being able to is a BIG downside to me.

Dave

> 
> 
> On Dec 4, 2009, at 7:57 AM, David Avendasora wrote:
> 
>> 
>> On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:
>> 
>>> Fair enough. Finally, we have one specific strike against it. ;-)
>>> 
>>> Since we have Delete rules in the EOModel, is this feature a "safety net" 
>>> that is needed for external non-WO apps that are accessing the database?
>> 
>> What do you mean? That EOF will clean up orphaned objects that didn't get 
>> cascade-deleted by EOF when the related object was deleted? No. If EOF loads 
>> rows that have invalid FKs in them, it will create a fault for that object, 
>> then when you go to try to follow that relationship and the fault is fired, 
>> you'd get a missing object exception. I've had to deal with this exact 
>> situation before.
>> 
>>> I have never implemented constraints and have yet to have an orphan record 
>>> since transactions/rollback protect against that, right?
>> 
>> How would transactions protect you from having an invalid FK if you don't 
>> have any FK constraints?
>> 
>> Dave
>> 
>> 
>>> 
>>> -Kieran
>>> 
>>> On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
>>> 
 
 On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
 
> On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
> 
>> I was just wondering why people were saying disaster, toy, etc  
>> wondering if I am missing something and going to lose all my data next 
>> week!
>> 
>> Like I said, I have not used FrontBase or PostgreSQL in production and 
>> have never touched PostgreSQL, so if it is comparison you are after, I 
>> don't have one. However I will say that I started using MySQL at 4.0, 
>> then 4.1 and now 5.0. Being the stickler for learning as much as I think 
>> I need to do something right, I bought the original Jeremy Zawodny book 
>> "Advanced MySQL" and that gave me a clear understanding and confidence 
>> of how to set the thing up. I have never used the cluster engine 
>> (NDB) yet. I have always used InnoDB. I used MyISAM once for a 
>> readonly database (about 5 tables only) that has geocode lookups on 
>> tables of about 100 million rows because at the time it appeared faster 
>> (with mysql 4.0 at the time) to do points in radius operations which 
>> sometimes selected up to 500,000 rows in a select. My main ongoing 
>> 

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher
 and boy is it easy to add new flavors of behaviour ... no need to  
touch the EOModel if the attributes are the same or a subset of the  
EO's attributes.


On Dec 4, 2009, at 9:27 AM, Kieran Kelleher wrote:

I don't use EOModel inheritance any more. It is a PITA. Not worth  
the hassle. Using Strategy design pattern to composite in different  
behaviours works better for me. Remember the OO Principle "Favor  
composition over inheritance" ... I now favor composition over  
inheritance ;-)   BTW, for this setup the table is identical to a  
single-table inheritance table, except that the 'type' id field  
determines the lazily constructed strategy behaviour class for the  
EO. I will only ever use EOModel inheritance again, if (1) I am told  
to by a customer, or (2) Strategy design pattern behaviour  
composition simply does not make sense (so far it makes sense for  
every case I have looked at in last few years) YMMV ;-)


Regards, Kieran

On Dec 4, 2009, at 8:49 AM, David Avendasora wrote:


Or you can just not use Vertical Inheritance. :-)


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher
I don't use EOModel inheritance any more. It is a PITA. Not worth the  
hassle. Using Strategy design pattern to composite in different  
behaviours works better for me. Remember the OO Principle "Favor  
composition over inheritance" ... I now favor composition over  
inheritance ;-)   BTW, for this setup the table is identical to a  
single-table inheritance table, except that the 'type' id field  
determines the lazily constructed strategy behaviour class for the EO.  
I will only ever use EOModel inheritance again, if (1) I am told to by  
a customer, or (2) Strategy design pattern behaviour composition  
simply does not make sense (so far it makes sense for every case I  
have looked at in last few years) YMMV ;-)


Regards, Kieran

On Dec 4, 2009, at 8:49 AM, David Avendasora wrote:


Or you can just not use Vertical Inheritance. :-)


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher

Ramsey,

Just remove the FK constraints in MySQL. WO works fine without them  
since EOF takes care of it. If a database does not support deferred  
constraints, then you should not add FK constraints at all.


Cheers, Kieran

On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:


Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal->Cat- 
>Leopard.  I try to create a leopard and it fails because


com.webobjects.eoaccess.EOGeneralAdaptorException:  
EvaluateExpression failed: $MySQLExpression: "INSERT INTO Leopard(spots, id) VALUES (?, ?)"  
withBindings: 1:33(spots), 2:9(id)>:
   Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot  
add or update a child row: a foreign key constraint fails (`example/ 
leopard`, CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`)  
REFERENCES `cat` (`id`))


It gets the adaptor operations for Animal, then Leopard, then Cat...  
and blows up at leopard because there's no cat yet (I think).  I had  
to google for "What are deferred constraints" so I could be very  
wrong, but I think it's blowing up because of lack of deferred  
constraints (^_^) It looks like I'll need to have an  
EODatabaseContext delegate override  
databaseContextWillOrderAdaptorOperations to fix it, unless there is  
something in the ERXSQLHelper that can get there first.


This just happens to be a timely thread since I was messing with my  
MySQLPlugin last night (^_^)


Ramsey

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database? I have never implemented constraints and  
have yet to have an orphan record since transactions/rollback  
protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I used  
MyISAM once for a readonly database (about 5 tables only) that  
has geocode lookups on tables of about 100 million rows because  
at the time it appeared faster (with mysql 4.0 at the time) to  
do points in radius operations which sometimes selected up to  
500,000 rows in a select. My main ongoing project is InnoDB and  
every user is a user that does edits, with a small percentage of  
users absolutely hammering the database with production  
processing during business hours each day. I replicate to 3  
slaves on that project purely for backup. It runs 24/7 and  
almost never have any "Scheduled Maintenance" downtime garbage  
because of the fact that the replication slaves are where the  
backups happen. One slave is remote and 2 onsite with the  
master. The binary logs on the master are written to a separate  
phyaical drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use: "I  
am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/record edits  
themselves.


+ Deferred constraints!



That is a pretty big strike against MySQL in my books.


Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve  
specific problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscript

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher
Actually, let me rephrase that. My brain was not working earlier since  
I had not yet had breakfast :-)


The lack of deferred constraints prevents one using foreign key  
constraints in MySQL (InnoDB specifically supports FK constraints).  
The problem is that MySQL will not let you delete related rows during  
a transaction, rather than let you execute the full statement and then  
check for FK integrity afterwards.


Please correct me if I am mistaken in my thinking here, but in  
WebObjects, the "Deny" delete rule of a relationship essentially does  
the same thing. Also, in java code, we have the ERXGuardedInterface~   
(from now on let's say "~" means "or a class spelled something like  
that) which implements canDelete() and that allows us to prevent  
deletion based on logic. We also have validateForDelete to prevent  
deletions in EOF logic.


Since I have never used FL constraints in MySQL, Chuck or someone else  
can explain their exact role/benefit better I am sure.


Now on the orphan issue. If you have orphans, it means that the FKs  
did not get nullified or cascade deleted or sth like that. It means  
your database did not roll back the failing transaction fully. The  
reason transactions protect you is because when you delete an object  
and the related items that have a Nullify relationship Delete rule, WO  
updates those foreign keys to null in the same transaction.


And if you are dealing with orphans on a MySQL database, it means one  
of three things are wrong.


(1) One of your tables is a MyISAM table. Use SHOW CREATE TABLE to  
check the engine type. MyISAM tables do not roll back. *Never* mix  
MyISAM and InnoDB tables updates in the same transaction!


(2) Some fool in the *past* had a table that was MyISAM and screwed up  
the data integrity leaving nice tripwires for you to cleanup. My  
advice is get on the command line and find those orphans and fix them.  
Don't dirty your business logic to handle a screwed up database. Fix  
the data integrity and move on, never using MyISAM again


(3) Some fool in the recent present put a 'No Action' as a Delete rule  
on the relationship in the EOModel, or


(4) Some fool upgraded to MySQL 5.0+, did not read the release notes,  
and forgot to add the property 'innodb_rollback_on_timeout' in your / 
etc/my.cnf. This will screw you in rare cases that your app has died  
in the middle of a transaction I guess. I am baffled why that was  
needed after 5.0.13. Here is the excerpt form the release notes  
(copied from my own my.cnf file):


# FROM The Release Notes for 5.0:
# Incompatible change: As of MySQL 5.0.13, InnoDB rolls back only the  
last statement on a transaction
# timeout. In MySQL 5.0.32, a new option, -- 
innodb_rollback_on_timeout, causes InnoDB to abort and roll
# back the entire transaction if a transaction timeout occurs (the  
same behavior as in MySQL 4.1).

innodb_rollback_on_timeout



On Dec 4, 2009, at 7:57 AM, David Avendasora wrote:



On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:


Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a  
"safety net" that is needed for external non-WO apps that are  
accessing the database?


What do you mean? That EOF will clean up orphaned objects that  
didn't get cascade-deleted by EOF when the related object was  
deleted? No. If EOF loads rows that have invalid FKs in them, it  
will create a fault for that object, then when you go to try to  
follow that relationship and the fault is fired, you'd get a missing  
object exception. I've had to deal with this exact situation before.


I have never implemented constraints and have yet to have an orphan  
record since transactions/rollback protect against that, right?


How would transactions protect you from having an invalid FK if you  
don't have any FK constraints?


Dave




-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose  
all my data next week!


Like I said, I have not used FrontBase or PostgreSQL in  
production and have never touched PostgreSQL, so if it is  
comparison you are after, I don't have one. However I will say  
that I started using MySQL at 4.0, then 4.1 and now 5.0. Being  
the stickler for learning as much as I think I need to do  
something right, I bought the original Jeremy Zawodny book  
"Advanced MySQL" and that gave me a clear understanding and  
confidence of how to set the thing up. I have never used the  
cluster engine (NDB) yet. I have always used InnoDB. I used  
MyISAM once for a readonly database (about 5 tables only) that  
has geocode lookups on tables of about 100 million rows because  
at the time it appeared faster (with mysql 4.0 at the time) to  
do points in radius oper

Re: WebObjects on Vista

2009-12-04 Thread Don Lindsay

Hello Frank;

What installer did you use to install on windows?

Thanks

Don
On Dec 2, 2009, at 3:23 PM, Frank Stock wrote:


Hi,

Is someone using Vista or Windows 7? It seems that the path c: 
\Documents and Settings is replaced by Users.

Can that be a problem when installing WO/WOLips??

Thanks
Frank ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/pccdonl 
%40mac.com


This email sent to pccd...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread David Avendasora

On Dec 4, 2009, at 8:02 AM, Ramsey Lee Gurley wrote:

> Hi Kieran,
> 
> Have you tried vertical inheritance with MySQL?  I have Animal->Cat->Leopard. 
>  I try to create a leopard and it fails because 
> 
> com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed: 
>  Leopard(spots, id) VALUES (?, ?)" withBindings: 1:33(spots), 2:9(id)>:
>Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add or 
> update a child row: a foreign key constraint fails (`example/leopard`, 
> CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`) REFERENCES `cat` (`id`))
> 
> It gets the adaptor operations for Animal, then Leopard, then Cat... and 
> blows up at leopard because there's no cat yet (I think).

That's exactly the problem. The easiest way avoid this is by not having FK 
constraints in the DB at all (which is what Kieran is saying he does - you 
could think of this as infinitely-deferred constraints). But wait, it gets 
worse. Here's the _really_ frustrating part: EOF doesn't always do things in 
the same order, so you could set things up with FK constraints and have it all 
work just fine for weeks or months with only the occasional error, and then 
have it suddenly start failing every time.

> I had to google for "What are deferred constraints" so I could be very wrong, 
> but I think it's blowing up because of lack of deferred constraints (^_^) It 
> looks like I'll need to have an EODatabaseContext delegate override 
> databaseContextWillOrderAdaptorOperations to fix it, unless there is 
> something in the ERXSQLHelper that can get there first.

Or you can just not use Vertical Inheritance. :-)

Dave ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Ramsey Lee Gurley
Hi Kieran,

Have you tried vertical inheritance with MySQL?  I have Animal->Cat->Leopard.  
I try to create a leopard and it fails because 

com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed: 
:
Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add or 
update a child row: a foreign key constraint fails (`example/leopard`, 
CONSTRAINT `Leopard_id_id_FK` FOREIGN KEY (`id`) REFERENCES `cat` (`id`))

It gets the adaptor operations for Animal, then Leopard, then Cat... and blows 
up at leopard because there's no cat yet (I think).  I had to google for "What 
are deferred constraints" so I could be very wrong, but I think it's blowing up 
because of lack of deferred constraints (^_^) It looks like I'll need to have 
an EODatabaseContext delegate override 
databaseContextWillOrderAdaptorOperations to fix it, unless there is something 
in the ERXSQLHelper that can get there first.

This just happens to be a timely thread since I was messing with my MySQLPlugin 
last night (^_^)

Ramsey

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:

> Fair enough. Finally, we have one specific strike against it. ;-)
> 
> Since we have Delete rules in the EOModel, is this feature a "safety net" 
> that is needed for external non-WO apps that are accessing the database? I 
> have never implemented constraints and have yet to have an orphan record 
> since transactions/rollback protect against that, right?
> 
> -Kieran
> 
> On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
> 
>> 
>> On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
>> 
>>> On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
>>> 
 I was just wondering why people were saying disaster, toy, etc  
 wondering if I am missing something and going to lose all my data next 
 week!
 
 Like I said, I have not used FrontBase or PostgreSQL in production and 
 have never touched PostgreSQL, so if it is comparison you are after, I 
 don't have one. However I will say that I started using MySQL at 4.0, then 
 4.1 and now 5.0. Being the stickler for learning as much as I think I need 
 to do something right, I bought the original Jeremy Zawodny book "Advanced 
 MySQL" and that gave me a clear understanding and confidence of how to set 
 the thing up. I have never used the cluster engine (NDB) yet. I have 
 always used InnoDB. I used MyISAM once for a readonly database (about 5 
 tables only) that has geocode lookups on tables of about 100 million rows 
 because at the time it appeared faster (with mysql 4.0 at the time) to do 
 points in radius operations which sometimes selected up to 500,000 rows in 
 a select. My main ongoing project is InnoDB and every user is a user that 
 does edits, with a small percentage of users absolutely hammering the 
 database with production processing during business hours each day. I 
 replicate to 3 slaves on that project purely for backup. It runs 24/7 and 
 almost never have any "Scheduled Maintenance" downtime garbage because of 
 the fact that the replication slaves are where the backups happen. One 
 slave is remote and 2 onsite with the master. The binary logs on the 
 master are written to a separate phyaical drive
 
 Why do I like it?
 - It is free
 - It has never left me down - no data/table corruption
 - It is simple to set up and configure
 - replication is a breeze to set up
 - It has multiple engine types for different scenarios
 - and finally the reason that most people like what they use: "I am 
 comfortable with it" ;-)
 
 
 What would I like that I think I might be missing?
 - transactional structure changes (ie., create table and roll back.) 
 transactions in InnoDB only apply to table/record edits themselves.
>>> 
>>> + Deferred constraints!
>> 
>> 
>> That is a pretty big strike against MySQL in my books.
>> 
>> 
>> Chuck
>> 
>> -- 
>> Chuck Hill Senior Consultant / VP Development
>> 
>> Practical WebObjects - for developers who want to increase their overall 
>> knowledge of WebObjects or who are trying to solve specific problems.
>> http://www.global-village.net/products/practical_webobjects
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com
>> 
>> This email sent to kieran_li...@mac.com
> 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/rgurley%40mac.com
> 
> This email sent to rgur...@mac.com



smime.p

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread David Avendasora

On Dec 4, 2009, at 7:17 AM, Kieran Kelleher wrote:

> Fair enough. Finally, we have one specific strike against it. ;-)
> 
> Since we have Delete rules in the EOModel, is this feature a "safety net" 
> that is needed for external non-WO apps that are accessing the database?

What do you mean? That EOF will clean up orphaned objects that didn't get 
cascade-deleted by EOF when the related object was deleted? No. If EOF loads 
rows that have invalid FKs in them, it will create a fault for that object, 
then when you go to try to follow that relationship and the fault is fired, 
you'd get a missing object exception. I've had to deal with this exact 
situation before.

> I have never implemented constraints and have yet to have an orphan record 
> since transactions/rollback protect against that, right?

How would transactions protect you from having an invalid FK if you don't have 
any FK constraints?

Dave


> 
> -Kieran
> 
> On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:
> 
>> 
>> On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:
>> 
>>> On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:
>>> 
 I was just wondering why people were saying disaster, toy, etc  
 wondering if I am missing something and going to lose all my data next 
 week!
 
 Like I said, I have not used FrontBase or PostgreSQL in production and 
 have never touched PostgreSQL, so if it is comparison you are after, I 
 don't have one. However I will say that I started using MySQL at 4.0, then 
 4.1 and now 5.0. Being the stickler for learning as much as I think I need 
 to do something right, I bought the original Jeremy Zawodny book "Advanced 
 MySQL" and that gave me a clear understanding and confidence of how to set 
 the thing up. I have never used the cluster engine (NDB) yet. I have 
 always used InnoDB. I used MyISAM once for a readonly database (about 5 
 tables only) that has geocode lookups on tables of about 100 million rows 
 because at the time it appeared faster (with mysql 4.0 at the time) to do 
 points in radius operations which sometimes selected up to 500,000 rows in 
 a select. My main ongoing project is InnoDB and every user is a user that 
 does edits, with a small percentage of users absolutely hammering the 
 database with production processing during business hours each day. I 
 replicate to 3 slaves on that project purely for backup. It runs 24/7 and 
 almost never have any "Scheduled Maintenance" downtime garbage because of 
 the fact that the replication slaves are where the backups happen. One 
 slave is remote and 2 onsite with the master. The binary logs on the 
 master are written to a separate phyaical drive
 
 Why do I like it?
 - It is free
 - It has never left me down - no data/table corruption
 - It is simple to set up and configure
 - replication is a breeze to set up
 - It has multiple engine types for different scenarios
 - and finally the reason that most people like what they use: "I am 
 comfortable with it" ;-)
 
 
 What would I like that I think I might be missing?
 - transactional structure changes (ie., create table and roll back.) 
 transactions in InnoDB only apply to table/record edits themselves.
>>> 
>>> + Deferred constraints!
>> 
>> 
>> That is a pretty big strike against MySQL in my books.
>> 
>> 
>> Chuck
>> 
>> -- 
>> Chuck Hill Senior Consultant / VP Development
>> 
>> Practical WebObjects - for developers who want to increase their overall 
>> knowledge of WebObjects or who are trying to solve specific problems.
>> http://www.global-village.net/products/practical_webobjects
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> ___
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com
>> 
>> This email sent to kieran_li...@mac.com
> 
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com
> 
> This email sent to webobje...@avendasora.com
> 
> 

David Avendasora
Senior Software Engineer
K12, Inc.

*
WebObjects Documentation Wiki : 
http://wiki.objectstyle.org/confluence/display/WO/
*
WebObjects API: 
http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html
*

 ___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.a

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Kieran Kelleher

Fair enough. Finally, we have one specific strike against it. ;-)

Since we have Delete rules in the EOModel, is this feature a "safety  
net" that is needed for external non-WO apps that are accessing the  
database? I have never implemented constraints and have yet to have an  
orphan record since transactions/rollback protect against that, right?


-Kieran

On Dec 4, 2009, at 12:39 AM, Chuck Hill wrote:



On Dec 3, 2009, at 5:44 PM, Lachlan Deck wrote:


On 04/12/2009, at 12:25 PM, Kieran Kelleher wrote:

I was just wondering why people were saying disaster, toy,  
etc  wondering if I am missing something and going to lose all  
my data next week!


Like I said, I have not used FrontBase or PostgreSQL in production  
and have never touched PostgreSQL, so if it is comparison you are  
after, I don't have one. However I will say that I started using  
MySQL at 4.0, then 4.1 and now 5.0. Being the stickler for  
learning as much as I think I need to do something right, I bought  
the original Jeremy Zawodny book "Advanced MySQL" and that gave me  
a clear understanding and confidence of how to set the thing up. I  
have never used the cluster engine (NDB) yet. I have always  
used InnoDB. I used MyISAM once for a readonly database (about 5  
tables only) that has geocode lookups on tables of about 100  
million rows because at the time it appeared faster (with mysql  
4.0 at the time) to do points in radius operations which sometimes  
selected up to 500,000 rows in a select. My main ongoing project  
is InnoDB and every user is a user that does edits, with a small  
percentage of users absolutely hammering the database with  
production processing during business hours each day. I replicate  
to 3 slaves on that project purely for backup. It runs 24/7 and  
almost never have any "Scheduled Maintenance" downtime garbage  
because of the fact that the replication slaves are where the  
backups happen. One slave is remote and 2 onsite with the master.  
The binary logs on the master are written to a separate phyaical  
drive


Why do I like it?
- It is free
- It has never left me down - no data/table corruption
- It is simple to set up and configure
- replication is a breeze to set up
- It has multiple engine types for different scenarios
- and finally the reason that most people like what they use: "I  
am comfortable with it" ;-)



What would I like that I think I might be missing?
- transactional structure changes (ie., create table and roll  
back.) transactions in InnoDB only apply to table/record edits  
themselves.


+ Deferred constraints!



That is a pretty big strike against MySQL in my books.


Chuck

--
Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.

http://www.global-village.net/products/practical_webobjects







___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com

This email sent to kieran_li...@mac.com


___
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Johan Henselmans

On 4 dec 2009, at 09:54, Tim Worman wrote:

> Mark:
> 
> Yeah, you can use any ODBC data source to use the import functionality and 
> script steps. However, FileMaker Pro 10 now has the ability to transparently 
> use tables from an external data source as though they were internal tables. 
> But it can only do this with SQL Server, Oracle, and MySQL.
> 
> I may try to use the import angle but I'd really rather not have data moving 
> back and forth that can change after the import. The newer functionality is 
> very cool.
> 
> Tim Worman
> UCLA GSE&IS
> 

That was also available in Filemaker 9. I have sent Filemaker a request to also 
support postgresql in such a a way, but it seems that is not on their priority 
list. Too much attention for another platform might be counterproductive, I 
assume. It still is possible too import the data from postgresql 9 or any other 
database that supports ODBC, but there is no live connection possible as with 
MSSQl, Oracle and MySQL.

Postgresql (WebObjects) might suffer from the Novell problem: nobody complained 
about it, as everybody did with WindowsNT,  so new potential customers never 
knew it existed.

I'll write the postgresql list they should screw up something major, so to get 
free publicity. 

And I'll bring down the iTunes store by downloading all the free iPhone apps 
available. That will teach them to rely on unfashionable technology.

> 
> 
> On Dec 4, 2009, at 12:49 AM, Mark Wardle wrote:
> 
>> Hi Tim,
>> 
>> I have accessed PostgreSQL using Filemaker before using ODBC using
>> "Actual" drivers.
>> 
>> Caveat: I only used this with 8.0 and 8.5 using ODBC to import all
>> data for subsequent processing rather than accessing data "live". I
>> gather Filemaker 9.0 can use an external data source in joins, but
>> have no idea whether it would support PostgreSQL using these ODBC
>> drivers... worth a look though.
>> 
>> Best wishes,
>> 
>> Mark
>> 
>> 
>> 
>> 2009/12/3 Tim Worman :
>>> I'm also staring down a future with MySQL - for a much different reason. 
>>> Our school has a lot of institutional knowledge of FileMaker Pro. I'm 
>>> moving towards WO as the editing mechanism and leveraging that 
>>> institutional knowledge for users' report writing needs. FMP only supports 
>>> 3 databases for transparently including external ODBC data sources - and 
>>> MySQL is the only option for us.
>>> 
>>> Up to now I've been using OpenBase and been extremely pleased with it but 
>>> FileMaker's got me by the short and curlies. I have been following Kieran's 
>>> support of MySQL and I'm glad to see others see similar benefits.
>>> 
>>> Tim Worman
>>> UCLA GSE&IS
>>> 
>>> On Dec 3, 2009, at 3:20 PM, Mike Schrag wrote:
>>> 
 Also, full disclosure -- i DO use Postgresql and I think it's a great 
 database, but I always feel a little queasy when I do a deployment with PG 
 without clustering support. There's always the feeling of "i sure hope 
 this doesn't screw me." FrontBase has clustering, but has an obnoxious bug 
 with clustered sequences which basically requires that you use guid pks, 
 which none of our stuff does, so it's pretty likely MySQL is in my future.
 
 ms
 
 On Dec 3, 2009, at 6:18 PM, Mike Schrag wrote:
 
> Caveat here -- I don't use MySQL (yet) for anything real.  InnoDB is 
> acid, though.  I agree that you should never run a myisam mysql for most 
> normal systems and that it's strange that this is the default, but the 
> fact is that you CAN set it to innodb, and it's a perfectly capable (if 
> not VERY capable) database.
> 
> Soo -- I'm calling this out as FUD. Search google for "postgresql 
> corruption" and you'll get plenty of matches, too:
> Results 1 - 10 of about 164,000 for postgresql corruption.
> Results 1 - 10 of about 12,700 for mysql innodb corruption.
> 
> There are quite a few huge systems that are running on MySQL. And the 
> simple fact that you can cluster it actually makes it far more resilient 
> than postgresql. Go try to setup a fault tolerant deployment of PG. Have 
> fun and let me know when you're done.
> 
> ms
> 
> On Dec 3, 2009, at 6:10 PM, Miguel Arroz wrote:
> 
>> Hi!
>> 
>> There is nothing "specifically" wrong about using MySQL as a database 
>> for WO. What's wrong is using MySQL at all! ;)
>> 
>> Essentially, it sucks. The first concern of MySQL authors is speed, and 
>> only then correctioness. This may be seen my the existence of InnoDB 
>> itself. First, speed. A few years later, yeah, this actually might 
>> be usable in something else than a blog if we actually add ACID 
>> properties to it!
>> 
>> In my Univ, the IT team who deals with the central systems moved 
>> everything they could from mysql to PostgreSQL. Among other reasons, 
>> once in a while a MySQL table corrupted itself. PostgreSQL is much more 
>> robus

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Tim Worman
Mark:

Yeah, you can use any ODBC data source to use the import functionality and 
script steps. However, FileMaker Pro 10 now has the ability to transparently 
use tables from an external data source as though they were internal tables. 
But it can only do this with SQL Server, Oracle, and MySQL.

I may try to use the import angle but I'd really rather not have data moving 
back and forth that can change after the import. The newer functionality is 
very cool.

Tim Worman
UCLA GSE&IS



On Dec 4, 2009, at 12:49 AM, Mark Wardle wrote:

> Hi Tim,
> 
> I have accessed PostgreSQL using Filemaker before using ODBC using
> "Actual" drivers.
> 
> Caveat: I only used this with 8.0 and 8.5 using ODBC to import all
> data for subsequent processing rather than accessing data "live". I
> gather Filemaker 9.0 can use an external data source in joins, but
> have no idea whether it would support PostgreSQL using these ODBC
> drivers... worth a look though.
> 
> Best wishes,
> 
> Mark
> 
> 
> 
> 2009/12/3 Tim Worman :
>> I'm also staring down a future with MySQL - for a much different reason. Our 
>> school has a lot of institutional knowledge of FileMaker Pro. I'm moving 
>> towards WO as the editing mechanism and leveraging that institutional 
>> knowledge for users' report writing needs. FMP only supports 3 databases for 
>> transparently including external ODBC data sources - and MySQL is the only 
>> option for us.
>> 
>> Up to now I've been using OpenBase and been extremely pleased with it but 
>> FileMaker's got me by the short and curlies. I have been following Kieran's 
>> support of MySQL and I'm glad to see others see similar benefits.
>> 
>> Tim Worman
>> UCLA GSE&IS
>> 
>> On Dec 3, 2009, at 3:20 PM, Mike Schrag wrote:
>> 
>>> Also, full disclosure -- i DO use Postgresql and I think it's a great 
>>> database, but I always feel a little queasy when I do a deployment with PG 
>>> without clustering support. There's always the feeling of "i sure hope this 
>>> doesn't screw me." FrontBase has clustering, but has an obnoxious bug with 
>>> clustered sequences which basically requires that you use guid pks, which 
>>> none of our stuff does, so it's pretty likely MySQL is in my future.
>>> 
>>> ms
>>> 
>>> On Dec 3, 2009, at 6:18 PM, Mike Schrag wrote:
>>> 
 Caveat here -- I don't use MySQL (yet) for anything real.  InnoDB is acid, 
 though.  I agree that you should never run a myisam mysql for most normal 
 systems and that it's strange that this is the default, but the fact is 
 that you CAN set it to innodb, and it's a perfectly capable (if not VERY 
 capable) database.
 
 Soo -- I'm calling this out as FUD. Search google for "postgresql 
 corruption" and you'll get plenty of matches, too:
 Results 1 - 10 of about 164,000 for postgresql corruption.
 Results 1 - 10 of about 12,700 for mysql innodb corruption.
 
 There are quite a few huge systems that are running on MySQL. And the 
 simple fact that you can cluster it actually makes it far more resilient 
 than postgresql. Go try to setup a fault tolerant deployment of PG. Have 
 fun and let me know when you're done.
 
 ms
 
 On Dec 3, 2009, at 6:10 PM, Miguel Arroz wrote:
 
> Hi!
> 
> There is nothing "specifically" wrong about using MySQL as a database for 
> WO. What's wrong is using MySQL at all! ;)
> 
> Essentially, it sucks. The first concern of MySQL authors is speed, and 
> only then correctioness. This may be seen my the existence of InnoDB 
> itself. First, speed. A few years later, yeah, this actually might be 
> usable in something else than a blog if we actually add ACID properties 
> to it!
> 
> In my Univ, the IT team who deals with the central systems moved 
> everything they could from mysql to PostgreSQL. Among other reasons, once 
> in a while a MySQL table corrupted itself. PostgreSQL is much more robust.
> 
> As always in software engineering, everything is a compromise. There may 
> be a few situations where MySQL is dramatically faster than PostgreSQL, 
> and the inverse is also true, it depends on the usage and the DB 
> architecture. This to say that you should use what better suits your 
> needs. But what I would not expect is MySQL to... you know... work! ;)
> 
> Yours
> 
> Miguel Arroz
> 
> On 2009/12/03, at 22:58, Kieran Kelleher wrote:
> 
>> Miguel, anyone, please enlighten me as to what specifically is wrong 
>> with using MySQL InnoDB as a database for WO because I have not seen any 
>> problem, but then I have not used PostgreSQL or FrontBase either - so 
>> maybe I don't see a problem that I should be concerned about.
>> 
>> -Kieran
>> 
>> On Dec 3, 2009, at 5:41 PM, Miguel Arroz wrote:
>> 
>>> Hi!
>>> 
>>> On 2009/12/03, at 22:32, Kieran Kelleher wrote:
>>> 
>> I create new 

Re: Dr. Miguel 'Optimistic Locking' Arroz [was Re: WebObjects stress Testing tool?]

2009-12-04 Thread Mark Wardle
Hi Tim,

I have accessed PostgreSQL using Filemaker before using ODBC using
"Actual" drivers.

Caveat: I only used this with 8.0 and 8.5 using ODBC to import all
data for subsequent processing rather than accessing data "live". I
gather Filemaker 9.0 can use an external data source in joins, but
have no idea whether it would support PostgreSQL using these ODBC
drivers... worth a look though.

Best wishes,

Mark



2009/12/3 Tim Worman :
> I'm also staring down a future with MySQL - for a much different reason. Our 
> school has a lot of institutional knowledge of FileMaker Pro. I'm moving 
> towards WO as the editing mechanism and leveraging that institutional 
> knowledge for users' report writing needs. FMP only supports 3 databases for 
> transparently including external ODBC data sources - and MySQL is the only 
> option for us.
>
> Up to now I've been using OpenBase and been extremely pleased with it but 
> FileMaker's got me by the short and curlies. I have been following Kieran's 
> support of MySQL and I'm glad to see others see similar benefits.
>
> Tim Worman
> UCLA GSE&IS
>
> On Dec 3, 2009, at 3:20 PM, Mike Schrag wrote:
>
>> Also, full disclosure -- i DO use Postgresql and I think it's a great 
>> database, but I always feel a little queasy when I do a deployment with PG 
>> without clustering support. There's always the feeling of "i sure hope this 
>> doesn't screw me." FrontBase has clustering, but has an obnoxious bug with 
>> clustered sequences which basically requires that you use guid pks, which 
>> none of our stuff does, so it's pretty likely MySQL is in my future.
>>
>> ms
>>
>> On Dec 3, 2009, at 6:18 PM, Mike Schrag wrote:
>>
>>> Caveat here -- I don't use MySQL (yet) for anything real.  InnoDB is acid, 
>>> though.  I agree that you should never run a myisam mysql for most normal 
>>> systems and that it's strange that this is the default, but the fact is 
>>> that you CAN set it to innodb, and it's a perfectly capable (if not VERY 
>>> capable) database.
>>>
>>> Soo -- I'm calling this out as FUD. Search google for "postgresql 
>>> corruption" and you'll get plenty of matches, too:
>>> Results 1 - 10 of about 164,000 for postgresql corruption.
>>> Results 1 - 10 of about 12,700 for mysql innodb corruption.
>>>
>>> There are quite a few huge systems that are running on MySQL. And the 
>>> simple fact that you can cluster it actually makes it far more resilient 
>>> than postgresql. Go try to setup a fault tolerant deployment of PG. Have 
>>> fun and let me know when you're done.
>>>
>>> ms
>>>
>>> On Dec 3, 2009, at 6:10 PM, Miguel Arroz wrote:
>>>
 Hi!

 There is nothing "specifically" wrong about using MySQL as a database for 
 WO. What's wrong is using MySQL at all! ;)

 Essentially, it sucks. The first concern of MySQL authors is speed, and 
 only then correctioness. This may be seen my the existence of InnoDB 
 itself. First, speed. A few years later, yeah, this actually might be 
 usable in something else than a blog if we actually add ACID properties to 
 it!

 In my Univ, the IT team who deals with the central systems moved 
 everything they could from mysql to PostgreSQL. Among other reasons, once 
 in a while a MySQL table corrupted itself. PostgreSQL is much more robust.

 As always in software engineering, everything is a compromise. There may 
 be a few situations where MySQL is dramatically faster than PostgreSQL, 
 and the inverse is also true, it depends on the usage and the DB 
 architecture. This to say that you should use what better suits your 
 needs. But what I would not expect is MySQL to... you know... work! ;)

 Yours

 Miguel Arroz

 On 2009/12/03, at 22:58, Kieran Kelleher wrote:

> Miguel, anyone, please enlighten me as to what specifically is wrong with 
> using MySQL InnoDB as a database for WO because I have not seen any 
> problem, but then I have not used PostgreSQL or FrontBase either - so 
> maybe I don't see a problem that I should be concerned about.
>
> -Kieran
>
> On Dec 3, 2009, at 5:41 PM, Miguel Arroz wrote:
>
>> Hi!
>>
>> On 2009/12/03, at 22:32, Kieran Kelleher wrote:
>>
> I create new OSCs for most background tasks. The one thing is that I 
> dispose() on it at the end of the task  and the dispose() is only 
> useful if you use ERXJDBCAdaptor is used since the regular WO 5.3 
> jdbc adaptor opens two connections for every OSC and leaves the 
> stupid things open forever. ERXJDBCAdaptor only opens one db 
> connection and releases it when u call dispose() IIRC.

 Dude! 
 
  ;)
>>>
>>> Dude!  www.mysql.com - innodb (or cluster NDB)  doesn't "grow and 
>>> grow"   (and it is not a "toy", no matter what 

Re: You backtrack too far problem.

2009-12-04 Thread Gustavo Pizano
Chuck, hi.

Well I  have realize that when I select an element form the Main list, I see in 
the console  the ERXRequest being logged, I guess this comes form WOnder. 
ANyway, Im checking my code, and I have removed some useless forms I had, also 
I realize I had a nested form, and a repeated id, so far, from my local machine 
I have made like 50 clicks, everywhere, and no problems at all, I just need my  
colleague to use it from my computer and see what happens..

Also I can imagine this kinda of bugs are really really complicated to find.

regards.
G.

On Dec 3, 2009, at 9:31 PM, Chuck Hill wrote:

> 
> On Dec 3, 2009, at 12:13 PM, Gustavo Pizano wrote:
> 
>> Chuck Hi.
>> 
>> On Dec 3, 2009, at 8:55 PM, Chuck Hill wrote:
>> 
>>> I have no idea what your problem is, but it is probably not related.  The 
>>> only way I know of to debug this is:
>>> (a) get a good grasp of how the Ajax page cache works
>> .. well... yes I must learn Ajax and related,  you are right, Im working 
>> blind here as a "trained monkey" as my Discrete math teacher used to say.
>> 
>>> (b) log out all the requests (and probably response content) and examine 
>>> them carefully to see what went wrong
>>> 
>> 
>> I will set up the logs, and see what can I see.. due my lack of experience 
>> what should I be looking for? or at what should I pay more attention in the 
>> log?.
> 
> I expect that this will be very, very difficult.  You might better spend your 
> time looking at what you need to do and finding a different way of doing it.
> 
> 
> Chuck
> 
> 
> 
>> Anyway..
>> Thanks for all, I will keep you informed about the debugging process.
>> 
>> Gustavo
>> 
>>> 
>>> Chuck
>>> 
>>> 
>>> On Dec 3, 2009, at 11:25 AM, Gustavo Pizano wrote:
>>> 
 SO.. I got little confused here  what happened? is it because all the 
 Updates Im making after the response form an AjaxSubmitButton?
 
 G.
 On Dec 3, 2009, at 7:56 PM, Chuck Hill wrote:
 
> 
> On Dec 3, 2009, at 10:49 AM, Mike Schrag wrote:
> 
>> yeah, good point -- i think we have a safety net of 2 requests, but i 
>> seem to recall that if you can manage to trigger 3 requests for an 
>> update container before the first one comes back, you can get this to 
>> happen, except that wo blocks by session, which makes this pretty hard 
>> to actually pull off. not sure how you'd actually do it.
> 
> If I have time, I will dig into it when it happens again.  I recall that 
> the context ID was way off when this happened.
> 
> 
> Chuck
> 
> 
> 
>> ms
>> 
>> On Dec 3, 2009, at 1:27 PM, Chuck Hill wrote:
>> 
>>> I've gotten them with Selenium tests were it was triggering actions 
>>> faster than a user could.  I did not look into it, but expect that 
>>> things may have been happening out of order.  Adding a 250ms or 500ms 
>>> pause here and there fixed it.
>>> 
>>> 
>>> On Dec 3, 2009, at 4:40 AM, msch...@mdimension.com wrote:
>>> 
 You're the second person who has mentioned backtrack errors with new 
 Ajax. Did something break? You should never get a backtrack error from 
 an Ajax request.
 
 Sent from my iPhone
 
 On Dec 3, 2009, at 4:22 AM, "Gustavo 
 Pizano" wrote:
 
> Hello all.
> 
> In my app I have so AjaxUpdateContainers which gets updated when 
> pressing some AjaxSubmitButtons , (funny, :) ), now sometimes,  when 
> I, clicking the submit butons, I get the you backtrack too far 
> exception, it happens randlmly, it can happen after clicking 10 times 
> the button, or after clicking 5, or sometimes it doesn't even happen.
> 
> this is what Im doing at the end of the WOActionResult methods,
> 
> 
> if (this.didBacktrack()){
>   session().defaultEditingContext().revert();
>   // handle and prepare to report errors
>   // this.errors.addObject("Unable to process page after back 
> button was pressed.");
>   return this.context().page();
> } 
> 
> I read it somewhere in the wiki,  but it seems its not working..
> 
> Any suggestions.?
> 
> thanks
> 
> Gustavo
>   
> ___
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list  (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40mdimension.com
> 
> This email sent to msch...@mdimension.com
 ___
 Do not post admin requests to the list. They will be ignored.
 Webobjects-dev mailing list  (Webobje