Re: SQL Server Driver and Classpath problem
Hi Tim, If the version of the JDBC driver supports SQL Server 2005, then the driver class in the eomodel connection dictionary should be "com.microsoft.sqlserver.jdbc.SQLServerDriver" not "com.microsoft.jdbc.sqlserver.SQLServerDriver" as the error states below. Running a query against the connection gives me this error: "JDBC connection failed for driver :'com.microsoft.jdbc.sqlserver.SQLServerDriver'. Driver not found in Java Runtime!" Regards Peter Vandoros Software Engineer Etech Group Pty Ltd Level 3/21 Victoria St Melbourne VIC 3000 Australia Ph: +61 3 9639 9677 Fax: +61 3 9639 9577 -- IMPORTANT: This e-mail message and any attachments are confidential and may be privileged. If received in error, please reply to this message and destroy all copies and any attachments. You should check this message and any attachments for viruses or defects. Our liability is limited to resupplying any affected message or attachments. For more information about Etech Group, please visit us at http://www.etechgroup.com.au . ___ 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 [EMAIL PROTECTED]
SQL Server Driver and Classpath problem
All: I'm stumped. I have a working model and app that accesses a remote db server running SQL Server 2000. This service is being upgraded to SQLServer 2005 so I have test server to, um, test against. The drivers for the old server are embedded in my model and plist containing the data for the connection dictionary is in by the app Resources. This all works great for connecting to the old server. Testing the new server: I am removing the old drivers from my model and embedding the new SQLServer 2005 driver in the model. To do this I'm dropping the jar into Libraries and then selecting "Add to Build Path." To remove the old one's I'm using "Remove from Build Path" and then deleting them from the project. Then, in my app, I change the url for my connection dictionary to the url to connect to the new server -- jdbc:sqlserver://server.ucla.edu:1433;DatabaseName=db Running a query against the connection gives me this error: "JDBC connection failed for driver :'com.microsoft.jdbc.sqlserver.SQLServerDriver'. Driver not found in Java Runtime!" I've tried putting the driver everywhere including adding it to the app itself and also /Library/Java/Extensions and /Library/WebObjects/ Extensions -- just to be thorough. When I do make changes in Eclipse the .classpath file looks to be appropriately updated and sqljdbc.jar is always in the build path. I just can't for the life of me figure out why I'm having so much difficulty with this. So, I need help to save my sanity. Tim ___ 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 [EMAIL PROTECTED]
Re: History on WO query: Is there a special name for the design pattern describes EO itself?
On Aug 5, 2008, at 3:42 AM, Daniel Beatty wrote: Georg recalled and told me a story about the Gamma et all book on Design Patterns. He said that it was influenced by the work at NeXT and the patterns that remained undocumented outside of NeXT up until that point. What strikes me as odd today is how slowly the point and foundation of that concept has permeated academia. As usual my comment comes a month too late. Oh well... In 2003 one of the most respected names in our industry - Martin Fowler - wrote a book with the dramatic title "Patterns of Enterprise Application Architecture". When I read it, I was shocked. What Martin describes as a bleeding edge was not more then EOF1 that was first release around 1993 or 1994 (if I am not mistaken). When I asked him if he never ever heard of WO, he was honest enough to tell me that he knew the name but never had time to look at it. end of story... -- georg -- "I believe in an open mind, but not so open that your brains fall out." Arthur Hays Sulzberger ___ 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 [EMAIL PROTECTED]
Re: new Session being created
Good to know if I have a need to use something like that again. Thanks, Guido On 04.09.08 22:43, "Andrew Lindesay" <[EMAIL PROTECTED]> wrote: > Hello Guido; > > Yes OpenJMS is terrible under load. ActiveMQ is a bit better, but > SwiftMQ in my experience has been very good despite being a bit of a > performance to configure. > > http://www.swiftmq.com/ > > cheers. > >>> I tend to use a JMS topic to distribute this information around >>> instead. This works very well. >> >> Taught by bad experience with OpenJMS never to trust a JMS tool I >> still >> prefer the database for that. >> >> OpenJMS locks up under load. From my experience it is not a matter >> if it >> locks up but when. > > ___ > Andrew Lindesay > www.lindesay.co.nz > ___ 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 [EMAIL PROTECTED]
Re: new Session being created
Hello Guido; Yes OpenJMS is terrible under load. ActiveMQ is a bit better, but SwiftMQ in my experience has been very good despite being a bit of a performance to configure. Actually I should say that "very good" is a bit of an understatement -- it doesn't seem to slip-up in my usage. cheers. ___ Andrew Lindesay www.lindesay.co.nz ___ 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 [EMAIL PROTECTED]
Re: new Session being created
Hello Guido; Yes OpenJMS is terrible under load. ActiveMQ is a bit better, but SwiftMQ in my experience has been very good despite being a bit of a performance to configure. http://www.swiftmq.com/ cheers. I tend to use a JMS topic to distribute this information around instead. This works very well. Taught by bad experience with OpenJMS never to trust a JMS tool I still prefer the database for that. OpenJMS locks up under load. From my experience it is not a matter if it locks up but when. ___ Andrew Lindesay www.lindesay.co.nz ___ 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 [EMAIL PROTECTED]
Re: new Session being created
Thanks for all your collective feedback. I'm going to experiment with a couple implementations to see what works best. On Sep 4, 2008, at 9:30 PM, Guido Neitzer wrote: On 04.09.08 22:23, "Andrew Lindesay" <[EMAIL PROTECTED]> wrote: I tend to use a JMS topic to distribute this information around instead. This works very well. Taught by bad experience with OpenJMS never to trust a JMS tool I still prefer the database for that. OpenJMS locks up under load. From my experience it is not a matter if it locks up but when. 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/joshpaul%40gmail.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Re: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation... does not contain value for attribute named NeededByEOF0 with snapshot key: NeededByEOF0
Hello Stephane, Thanks for your prompt reply. I am exploring this issue in the manner you have advised. Meanwhile, below are my findings from app: The EmpCls entity in problem has couple of flattened attributes; flattened from a to-many relationship. The app was working fine in various other flows of fetching and creating new object. But in a scenario where we tried to update 'isActv' attribute value, we encountered this error. The same code in my development machine working fine, of course data in my database is little bit different from Live data, as usually, but this same flow failed to operate in deployed Live app. Please advise. Thank You, Shravan Kumar. M - --- On Thu, 9/4/08, Stephane Guyot <[EMAIL PROTECTED]> wrote: > From: Stephane Guyot <[EMAIL PROTECTED]> > Subject: Re: rowDiffsForAttributes: snapshot in > com.webobjects.eoaccess.EODatabaseOperation... does not contain value for > attribute named NeededByEOF0 with snapshot key: NeededByEOF0 > To: "WebObjects Development" > Cc: [EMAIL PROTECTED] > Date: Thursday, September 4, 2008, 11:09 PM > Hi Shravan, > > i think your trouble is the consequence of "Missing > Fault Handler". > Are you using propagate primary key in your model for a > relationship ? > > You can Google "Missing Fault Handler" > Read that : > http://developer.apple.com/documentation/WebObjects/ > Reference/API5.2.4/com/webobjects/eoaccess/ > EODatabaseContext.html#missingObjectGlobalIDs() > and try " implement the delegate method > databaseContextFailedToFetchObject." > > You can Google "NeededByEOF0 " > > Read that : > http://en.wikibooks.org/wiki/Programming:WebObjects/EOF/ > Using_EOF/Problems > > HTH, > > Stephane > > > Le 4 sept. 08 à 13:05, shravan kumar a écrit : > > > Hello Group, > > > > Can any one advise me what could be reason for this > error and a > > resolution for the same asap: > > > > rowDiffsForAttributes: snapshot in > > com.webobjects.eoaccess.EODatabaseOperation > {_dbSnapshot = {clsGdID > > = > ; > clsID = 9512; > > clsNme = "Mat yt"; clsNum = "608"; > clsRom = > > > ; > clsSec = "1"; > > distID = 192; empFName = "MAR"; empLName = > "BANET"; empNum = "178"; > > isActv = 0; schID = 234; }; _entity = > "EmpCls"; _newRow = {clsGdID > > = > ; > clsID = 9512; > > clsNme = "Mat yt"; clsNum = "608"; > clsRom = > > > ; > clsSec = "1"; > > distID = 192; empFName = "MAR"; empLName = > "BANET"; empNum = "178"; > > isActv = 1; schID = 234; }; _object = "{values = > {clsNum = "608"; > > empNum = "178"; clsNme = "Mat yt"; > emps = > > > " 1cefde4 > > ( _EOIntegralKeyGlobalID[EmpCls > > (java.lang.Integer)862]>)>"; empLName = > "BANET"; clsRom = > > > ; > clsSec = "1"; > > dist = " (com.webobjects.eoaccess.EOAccessFaultHandler > > _EOIntegralKeyGlobalID[District > (java.lang.Integer)192])>"; isActv > > = 1; empFName = "MARION"; sch = > " > [Sch (java.lang.Integer)234]>"; grd = > "null"; }; this = " > 191777e _EOIntegralKeyGlobalID[EmpCls > (java.lang.Integer)8512562] > > >"; }"; _adaptorOps = ({_qualifier = > "((clsID = 9512) and (schID = > > 234) and ( clsNme = 'Mat yt') and (clsNum = > '608') and (clsSec = > > '1') and (clsRom = null) and (clsGdID = null) > and (distID = 1682) > > and (empNum = '178') and (isActv = 0))"; > _adaptorOperator = > > "EOAdaptorUpdateOperator"; _entity = > "EmpCls"; _changedValues = > > {(isActv = 1; }; }); _globalID = > _EOIntegralKeyGlobalID[EmpCls > > (java.lang.Integer)8512562]; _databaseOperator = > > "EODatabaseUpdateOperator"; } does not > contain value for attribute > > named NeededByEOF0 with snapshot key: NeededByEOF0 > > -- > > Thank You > > Shravan Kumar. M > > --- > > > > ___ > > 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/ > > > stephane.guyot11%40wanadoo.fr > > > > This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Re: new Session being created
On 04.09.08 22:23, "Andrew Lindesay" <[EMAIL PROTECTED]> wrote: > I tend to use a JMS topic to distribute this information around > instead. This works very well. Taught by bad experience with OpenJMS never to trust a JMS tool I still prefer the database for that. OpenJMS locks up under load. From my experience it is not a matter if it locks up but when. 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 [EMAIL PROTECTED]
Re: new Session being created
Hello; I tend to use a JMS topic to distribute this information around instead. This works very well. cheers. Do you have any concerns about read/write to the db being overwhelming? (We're using the status as a percentage of process completion.) Depends on how frequently you are updating that. Normally I don't think a quick update and select would cause trouble. But I have a feeling you're doing something weird ... I normally use either the AjaxLongResponse or an ERXLongResponseTask and there the calling page can ask the thread for the status - which can be a percentage or whatever you need to know. The database I normally use to communicate the status of long running tasks between applications or instances. ___ Andrew Lindesay www.lindesay.co.nz ___ 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 [EMAIL PROTECTED]
Re: new Session being created
On 04.09.08 21:32, "Josh Paul" <[EMAIL PROTECTED]> wrote: > That's an approach I thought about, and am considering. > > Do you have any concerns about read/write to the db being > overwhelming? (We're using the status as a percentage of process > completion.) Depends on how frequently you are updating that. Normally I don't think a quick update and select would cause trouble. But I have a feeling you're doing something weird ... I normally use either the AjaxLongResponse or an ERXLongResponseTask and there the calling page can ask the thread for the status - which can be a percentage or whatever you need to know. The database I normally use to communicate the status of long running tasks between applications or instances. 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 [EMAIL PROTECTED]
Re: new Session being created
That's an approach I thought about, and am considering. Do you have any concerns about read/write to the db being overwhelming? (We're using the status as a percentage of process completion.) On Sep 4, 2008, at 8:24 PM, Guido Neitzer wrote: What I normally do in these cases is store the status information in a table in the database - as I really don't want to touch my session from a DA that is called from a thread parallel to the RR loop. I only have to make sure to always get fresh information from the DB, that's about it. cug On 04.09.08 21:17, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm not storing the id in cookies, as this will ultimately wind up as a web service. I have moved the thread, which seems to have helped (as there's no new session being created). Now I just need to figure out why the 'status' isn't being set (or read) correctly. On Sep 4, 2008, at 5:52 PM, Chuck Hill wrote: On Sep 4, 2008, at 5:43 PM, Josh Paul wrote: I'm not swallowing exceptions anywhere, and if I am they're printing to stdout. I do think the session is locked or not checked in. I need to investigate further. That would give you deadlock or unlocked access, not create a new session. Are you storing the session ID in cookies too? Chuck On Sep 4, 2008, at 3:41 PM, Guido Neitzer wrote: Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: 100%. I left out the fact that this is related to a Thread, as that's where the status is being created. So, I have a DA that fires the process and another DA that checks in on it. The issue is that when checking, a new Session keeps getting created. Thoughts? On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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/chill%40global-village .net This email sent to [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: new Session being created
What I normally do in these cases is store the status information in a table in the database - as I really don't want to touch my session from a DA that is called from a thread parallel to the RR loop. I only have to make sure to always get fresh information from the DB, that's about it. cug On 04.09.08 21:17, "Josh Paul" <[EMAIL PROTECTED]> wrote: > I'm not storing the id in cookies, as this will ultimately wind up as > a web service. > > I have moved the thread, which seems to have helped (as there's no new > session being created). Now I just need to figure out why the 'status' > isn't being set (or read) correctly. > > On Sep 4, 2008, at 5:52 PM, Chuck Hill wrote: > >> On Sep 4, 2008, at 5:43 PM, Josh Paul wrote: >> >>> I'm not swallowing exceptions anywhere, and if I am they're >>> printing to stdout. >>> >>> I do think the session is locked or not checked in. I need to >>> investigate further. >> >> That would give you deadlock or unlocked access, not create a new >> session. >> >> Are you storing the session ID in cookies too? >> >> >> Chuck >> >> >>> On Sep 4, 2008, at 3:41 PM, Guido Neitzer wrote: >>> Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: > 100%. > > I left out the fact that this is related to a Thread, as that's > where > the status is being created. So, I have a DA that fires the process > and another DA that checks in on it. The issue is that when > checking, > a new Session keeps getting created. > > Thoughts? > > On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: > >> And you are sure, your session is not terminated somewhere else? >> >> cug >> >> On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: >> >>> I'm using WO 5.3 with a version of Wonder about 1 week old... >>> >>> On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: >>> On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: > That sort of thing should work. Which version of WO? There > may > have > been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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/chill%40global-village >>> .net >>> >>> This email sent to [EMAIL PROTECTED] >>> >> >> -- >> 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 [EMAIL PROTECTED]
Re: new Session being created
I'm not storing the id in cookies, as this will ultimately wind up as a web service. I have moved the thread, which seems to have helped (as there's no new session being created). Now I just need to figure out why the 'status' isn't being set (or read) correctly. On Sep 4, 2008, at 5:52 PM, Chuck Hill wrote: On Sep 4, 2008, at 5:43 PM, Josh Paul wrote: I'm not swallowing exceptions anywhere, and if I am they're printing to stdout. I do think the session is locked or not checked in. I need to investigate further. That would give you deadlock or unlocked access, not create a new session. Are you storing the session ID in cookies too? Chuck On Sep 4, 2008, at 3:41 PM, Guido Neitzer wrote: Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: 100%. I left out the fact that this is related to a Thread, as that's where the status is being created. So, I have a DA that fires the process and another DA that checks in on it. The issue is that when checking, a new Session keeps getting created. Thoughts? On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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/chill%40global-village.net This email sent to [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: Do DA's add a page to the app's cache ?
On Sep 4, 2008, at 6:34 PM, Owen McKerrow wrote: Hi Chuck, On 05/09/2008, at 10:39 AM, Chuck Hill wrote: protected void savePageInPageCache(WOComponent aPage) { if (aPage.context().request().requestHandlerKey().equals("wa") { super.savePageInPageCache(aPage); } } I can see a savePage(WOComponent aPage) and a savePageInPermanentCache(WOComponent aPageComponent) in session, but no savePageInPageCache(WOComponent aPage). Im assuming you mean savePageInPermanentCache ? No, savePage. I grabbed the 5.4 API by mistake. If so how does it work ? That is from the doco "The permanent page cache is designed to hold components which are frequently accessed." is there only one "copy" of the component within the cache no matter how many times its called ? Otherwise I would have thought you would have run into the same problem i.e. the other part of doco says "Objects can fall out of the permanent page cache if the permanent page cache's size is exceeded." I don't use that. Or is it just a matter of the DA's being cached in the permantCache while the other pages are going into the normal cache so they frequent AJAX calls to the DA don't effect the cache's of the rest of the pages ? Just a matter of me being in a hurry, clicking the wrong link and pasting the wrong method. :-) 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
So, I need a method on EORlationship so EOGenerator can check a Relationship to see not only if it is inherited, but if it's destination entity is different than the inherited method's destination Entity. Currently I have: #if (!$relationship.inherited) I need something along the lines of: #if (($relationship.inherited && $relationship.destination.name != $relationship.relationshipOnParent.destination.name) || (! $relationship.inherited)) What do you think, Mike? Dave On Sep 4, 2008, at 1:46 PM, Mike Schrag wrote: Not ENTIRELY true ... you can override the return type to be a subclass of the parent classes' return type. ___ 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 [EMAIL PROTECTED]
Re: clearing a toMany relationship fault
On 05/09/2008, at 3:47 AM, Mike Schrag wrote: Shallow and Deep, with an optional depth setting? Shallow is the current EO and its toMany, then stops. Deep continues on through the graph to a depth of 'depth' ? Shallow is a wrapper method of Deep with 'depth = 0' ? This could be a very expensive operation if mis-used, but is badly needed. Ultimately I think this has to be rules-based ... This same problem happens when serializing object graphs over JSON services ... Which to-many's do you include? Which do you live as faults? I've looked at it a million ways and I think you can only ever do it right with a d2wish rules definition that lets you pick the context you're in to determine which keypaths end up in vs out and faulted vs not. Okay - creating these rules is quite simple. You have two properties lists: er.extensions.ERXGenericRecord.relationshipCacheWhiteList = {\ _ALL = "any,relationship,named,from,any,entity";\ _MISFITS = "Entity,Names,That,Don't,apply,to,_ALL";\ EntityName = "comma,separated,keypaths,that,can,be,refreshed";\ } er.extensions.ERXGenericRecord.relationshipCacheBlackList = {\ _ALL = "any,relationship,named,from,any,entity";\ _MISFITS = "Entity,Names,That,Don't,apply,to,_ALL";\ EntityName = "comma,separated,keypaths,that,cannot,be,refreshed";\ } er.extensions.ERXGenericRecord.reverseToManyRelationshipsRefresh=true How's that? 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 [EMAIL PROTECTED]
Re: Do DA's add a page to the app's cache ?
Hi Chuck, On 05/09/2008, at 10:39 AM, Chuck Hill wrote: protected void savePageInPageCache(WOComponent aPage) { if (aPage.context().request().requestHandlerKey().equals("wa") { super.savePageInPageCache(aPage); } } I can see a savePage(WOComponent aPage) and a savePageInPermanentCache (WOComponent aPageComponent) in session, but no savePageInPageCache (WOComponent aPage). Im assuming you mean savePageInPermanentCache ? If so how does it work ? That is from the doco "The permanent page cache is designed to hold components which are frequently accessed." is there only one "copy" of the component within the cache no matter how many times its called ? Otherwise I would have thought you would have run into the same problem i.e. the other part of doco says "Objects can fall out of the permanent page cache if the permanent page cache's size is exceeded." Or is it just a matter of the DA's being cached in the permantCache while the other pages are going into the normal cache so they frequent AJAX calls to the DA don't effect the cache's of the rest of the pages ? Owen ___ 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 [EMAIL PROTECTED]
Re: new Session being created
On Sep 4, 2008, at 5:43 PM, Josh Paul wrote: I'm not swallowing exceptions anywhere, and if I am they're printing to stdout. I do think the session is locked or not checked in. I need to investigate further. That would give you deadlock or unlocked access, not create a new session. Are you storing the session ID in cookies too? Chuck On Sep 4, 2008, at 3:41 PM, Guido Neitzer wrote: Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: 100%. I left out the fact that this is related to a Thread, as that's where the status is being created. So, I have a DA that fires the process and another DA that checks in on it. The issue is that when checking, a new Session keeps getting created. Thoughts? On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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/chill%40global-village.net This email sent to [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: new Session being created
I'm not swallowing exceptions anywhere, and if I am they're printing to stdout. I do think the session is locked or not checked in. I need to investigate further. Thanks. On Sep 4, 2008, at 3:41 PM, Guido Neitzer wrote: Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: 100%. I left out the fact that this is related to a Thread, as that's where the status is being created. So, I have a DA that fires the process and another DA that checks in on it. The issue is that when checking, a new Session keeps getting created. Thoughts? On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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 [EMAIL PROTECTED]
Re: Do DA's add a page to the app's cache ?
On Sep 4, 2008, at 5:31 PM, William Hatch wrote: I'm pretty sure that whenever you instance a new component using pageWithName... it gets added to the page cache. I get around this with the hackish method of adding this line in the components constructor: session().savePageInPermanentCache(this); Does that not greatly increase memory usage? Chuck which is no where near as nice as what Wonder does, but does work. I've never had memory problems. Using this, you can instantiate the components in your DA, set them up however, then get the result string from generateResponse etc to ship it back to your js handler to do whatever with, in most my cases it's InnerHTML type thing. Hope that helps. Bill On Sep 4, 2008, at 7:48 PM, Owen McKerrow wrote: Hi All, We have an app that has some small hand made AJAX on it (not the cool stuff from project wonder) and we're having an issue with page cacheing on the Applications side. I had set the AJAX action up as a call to a DA which I had though did not add to/effect the sessions page cache. So either that assumption is wrong or I haven't made a clean break between the DA and the session after all. Anyways heres the error we're getting... "The application backtracking limit of 30 has been exceeded." Any suggestions ? Is turning off caching an option ? Owen McKerrow WebMaster, emlab Ph : +61 02 4221 5517 http://emlab.uow.edu.au - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - People who prefer typing to pointing then seem to prefer acronyms to save typing :-) -Denis Stanton, On people using Command Line Interfaces ___ 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/wkhatch %40me.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: Do DA's add a page to the app's cache ?
On Sep 4, 2008, at 4:48 PM, Owen McKerrow wrote: Hi All, We have an app that has some small hand made AJAX on it (not the cool stuff from project wonder) and we're having an issue with page cacheing on the Applications side. I had set the AJAX action up as a call to a DA which I had though did not add to/effect the sessions page cache. So either that assumption is wrong or I haven't made a clean break between the DA and the session after all. All pages that get created go into the page cache. Anyways heres the error we're getting... "The application backtracking limit of 30 has been exceeded." The stuff in Wonder is very cool... Any suggestions ? Does the result returned from the DA have any component actions in it? If not, you can disable all caching of pages returned by direct actions by adding this to Session: protected void savePageInPageCache(WOComponent aPage) { if (aPage.context().request().requestHandlerKey().equals("wa") { super.savePageInPageCache(aPage); } } If all pages returned by direct actions is a bit too broad, you will find some way (an interface, something in some object's userInfo, thread local storage) to indicate the pages you don't want to cache. If the result returned from the DA does have component actions in it, then you have bigger problems. Is turning off caching an option ? I think you will find that it really is not. 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 [EMAIL PROTECTED]
Re: Do DA's add a page to the app's cache ?
I'm pretty sure that whenever you instance a new component using pageWithName... it gets added to the page cache. I get around this with the hackish method of adding this line in the components constructor: session().savePageInPermanentCache(this); which is no where near as nice as what Wonder does, but does work. I've never had memory problems. Using this, you can instantiate the components in your DA, set them up however, then get the result string from generateResponse etc to ship it back to your js handler to do whatever with, in most my cases it's InnerHTML type thing. Hope that helps. Bill On Sep 4, 2008, at 7:48 PM, Owen McKerrow wrote: Hi All, We have an app that has some small hand made AJAX on it (not the cool stuff from project wonder) and we're having an issue with page cacheing on the Applications side. I had set the AJAX action up as a call to a DA which I had though did not add to/effect the sessions page cache. So either that assumption is wrong or I haven't made a clean break between the DA and the session after all. Anyways heres the error we're getting... "The application backtracking limit of 30 has been exceeded." Any suggestions ? Is turning off caching an option ? Owen McKerrow WebMaster, emlab Ph : +61 02 4221 5517 http://emlab.uow.edu.au - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - People who prefer typing to pointing then seem to prefer acronyms to save typing :-) -Denis Stanton, On people using Command Line Interfaces ___ 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/wkhatch%40me.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Re: How to use ERJgroupsSynchronizer framework without Wonder?
Unfortunately (or fortunately, depending on how you look at it :) ), you need to drink the Wonder koolaid to use ERXJGroups notification. This is one that is very hard to do properly without hackery and a lot of the Wonder tricks depend on eachother -- especially down in EOF. I would be very hesitant recommending that you pull it apart, because you're just going to run into nasty problems. You likely need to commit to using ERXEC, ERXModelGroup, etc. So while you're not going to necessarily gut your app, adding this ability to an existing non-Wonder app is definitely going to require some work. The basic rules still apply -- extend ERXApp, extend ERXSession, and use ERXEC.newEditingContext instead of new EOEditingContext, but with an existing app, you are just a lot more of these to find and a lot more testing to do (for instance, with a big existing app, you might find that you already have delegates on things that Wonder requires being a delegate for). We've been using the ERXJGroups notification in our non-WOnder app without issues for a while now. The only issue we've been having is with JGroups itself and concurrent restart of some of our app instances. I do remember though that I had to dive deep into WOnder to figure out all the dependencies and load order to make it work. I suspect the reason why we haven't seen any issues yet is because we pretty much have all the editing context "fixes" that WOnder's ERXEC does and we don't have conflicts with delegates since don't setup our own delegates for anything. The code that is used to initialise ERXJGroups is: EODatabaseContext.setContextClassToRegister( ERXDatabaseContext.class ); /* initialise the synchronizer */ ERXObjectStoreCoordinatorSynchronizer.initialize(); This code is executed early on in the application loading (actually in the framework's principal class) before any model is loaded. Also, it uses an old version of WOnder (the latest one at the time I did this). Regards Peter Vandoros Software Engineer Etech Group Pty Ltd Level 3/21 Victoria St Melbourne VIC 3000 Australia Ph: +61 3 9639 9677 Fax: +61 3 9639 9577 -- IMPORTANT: This e-mail message and any attachments are confidential and may be privileged. If received in error, please reply to this message and destroy all copies and any attachments. You should check this message and any attachments for viruses or defects. Our liability is limited to resupplying any affected message or attachments. For more information about Etech Group, please visit us at http://www.etechgroup.com.au . ___ 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 [EMAIL PROTECTED]
Do DA's add a page to the app's cache ?
Hi All, We have an app that has some small hand made AJAX on it (not the cool stuff from project wonder) and we're having an issue with page cacheing on the Applications side. I had set the AJAX action up as a call to a DA which I had though did not add to/effect the sessions page cache. So either that assumption is wrong or I haven't made a clean break between the DA and the session after all. Anyways heres the error we're getting... "The application backtracking limit of 30 has been exceeded." Any suggestions ? Is turning off caching an option ? Owen McKerrow WebMaster, emlab Ph : +61 02 4221 5517 http://emlab.uow.edu.au - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - People who prefer typing to pointing then seem to prefer acronyms to save typing :-) -Denis Stanton, On people using Command Line Interfaces ___ 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 [EMAIL PROTECTED]
Re: new Session being created
Only thought I have is that it might not be a good idea to fire that DA from a spawned thread from the RR loop. You might end up trying to check out a session from the session store that is already checked out. Not sure what would cause the creation of a new session though ... maybe that it is throwing an exception while trying to access the old (but locked) session and this could create a new session. Are you swallowing exceptions somewhere? cug On 04.09.08 16:33, "Josh Paul" <[EMAIL PROTECTED]> wrote: > 100%. > > I left out the fact that this is related to a Thread, as that's where > the status is being created. So, I have a DA that fires the process > and another DA that checks in on it. The issue is that when checking, > a new Session keeps getting created. > > Thoughts? > > On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: > >> And you are sure, your session is not terminated somewhere else? >> >> cug >> >> On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: >> >>> I'm using WO 5.3 with a version of Wonder about 1 week old... >>> >>> On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: >>> On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: > That sort of thing should work. Which version of WO? There may > have > been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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 [EMAIL PROTECTED]
Re: new Session being created
100%. I left out the fact that this is related to a Thread, as that's where the status is being created. So, I have a DA that fires the process and another DA that checks in on it. The issue is that when checking, a new Session keeps getting created. Thoughts? On Sep 4, 2008, at 3:26 PM, Guido Neitzer wrote: And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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 [EMAIL PROTECTED]
Re: new Session being created
And you are sure, your session is not terminated somewhere else? cug On 04.09.08 15:59, "Josh Paul" <[EMAIL PROTECTED]> wrote: > I'm using WO 5.3 with a version of Wonder about 1 week old... > > On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: > >> On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: >> >>> That sort of thing should work. Which version of WO? There may have >>> been some related bugs in earlier versions of 5.4 >> >> As far as I know, that should work. But I always call >> "existingSession()" >> before I do anything else in a DA call. >> >> 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 [EMAIL PROTECTED]
Re: How to use ERJgroupsSynchronizer framework without Wonder?
On Sep 4, 2008, at 3:05 PM, Mike Schrag wrote: Which, of course :-P Wonder provides a solution for as well: http://webobjects.mdimension.com/wonder/api/er/extensions/foundation/ERXMulticastingDelegate.html oh .. right :) ... you DO need to be careful about load ordering with this, though, that you add the multicast delegate AFTER wonder fully initializes, or it will just blow yours away. What flavor of koolaid is that? Jim Jones? -- 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 [EMAIL PROTECTED]
Re: How to use ERJgroupsSynchronizer framework without Wonder?
Which, of course :-P Wonder provides a solution for as well: http://webobjects.mdimension.com/wonder/api/er/extensions/foundation/ERXMulticastingDelegate.html oh .. right :) ... you DO need to be careful about load ordering with this, though, that you add the multicast delegate AFTER wonder fully initializes, or it will just blow yours away. 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
On Sep 4, 2008, at 3:01 PM, Mike Schrag wrote: Yeah, see, that's what I _thought_ but then when I tried to override: public NSArray lotCodes() ... in my Part class with public NSArray lotCodes() in my Intermediate class (subclass of Part) Yes, this is because while ManufacturedBatch is a subclass of LotCode, unlike the case of java arrays, NSArray is not a "subclass" of NSArray, so you don't ACTUALLY have covariant return types here. If you were returning a to-one relationship, this would work as expected. Ah, the wonderful magic of Java! 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 [EMAIL PROTECTED]
Re: How to use ERJgroupsSynchronizer framework without Wonder?
On Sep 4, 2008, at 2:59 PM, Mike Schrag wrote: We have the JMS change notification framework in place that we need to replace with the Jgroups implementation. We are not using Project Wonder. Unfortunately (or fortunately, depending on how you look at it :) ), you need to drink the Wonder koolaid to use ERXJGroups notification. This is one that is very hard to do properly without hackery and a lot of the Wonder tricks depend on eachother -- especially down in EOF. I would be very hesitant recommending that you pull it apart, because you're just going to run into nasty problems. You likely need to commit to using ERXEC, ERXModelGroup, etc. So while you're not going to necessarily gut your app, adding this ability to an existing non-Wonder app is definitely going to require some work. The basic rules still apply -- extend ERXApp, extend ERXSession, and use ERXEC.newEditingContext instead of new EOEditingContext, but with an existing app, you are just a lot more of these to find and a lot more testing to do (for instance, with a big existing app, you might find that you already have delegates on things that Wonder requires being a delegate for). Which, of course :-P Wonder provides a solution for as well: http://webobjects.mdimension.com/wonder/api/er/extensions/foundation/ERXMulticastingDelegate.html 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
Yeah, see, that's what I _thought_ but then when I tried to override: public NSArray lotCodes() ... in my Part class with public NSArray lotCodes() in my Intermediate class (subclass of Part) Yes, this is because while ManufacturedBatch is a subclass of LotCode, unlike the case of java arrays, NSArray is not a "subclass" of NSArray, so you don't ACTUALLY have covariant return types here. If you were returning a to-one relationship, this would work as expected. 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 [EMAIL PROTECTED]
Re: new Session being created
I'm using WO 5.3 with a version of Wonder about 1 week old... On Sep 4, 2008, at 2:50 PM, Guido Neitzer wrote: On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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 [EMAIL PROTECTED]
Re: How to use ERJgroupsSynchronizer framework without Wonder?
We have the JMS change notification framework in place that we need to replace with the Jgroups implementation. We are not using Project Wonder. Unfortunately (or fortunately, depending on how you look at it :) ), you need to drink the Wonder koolaid to use ERXJGroups notification. This is one that is very hard to do properly without hackery and a lot of the Wonder tricks depend on eachother -- especially down in EOF. I would be very hesitant recommending that you pull it apart, because you're just going to run into nasty problems. You likely need to commit to using ERXEC, ERXModelGroup, etc. So while you're not going to necessarily gut your app, adding this ability to an existing non- Wonder app is definitely going to require some work. The basic rules still apply -- extend ERXApp, extend ERXSession, and use ERXEC.newEditingContext instead of new EOEditingContext, but with an existing app, you are just a lot more of these to find and a lot more testing to do (for instance, with a big existing app, you might find that you already have delegates on things that Wonder requires being a delegate for). 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 [EMAIL PROTECTED]
Re: new Session being created
On 04.09.08 15:42, "Chuck Hill" <[EMAIL PROTECTED]> wrote: > That sort of thing should work. Which version of WO? There may have > been some related bugs in earlier versions of 5.4 As far as I know, that should work. But I always call "existingSession()" before I do anything else in a DA call. 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 [EMAIL PROTECTED]
Re: new Session being created
That sort of thing should work. Which version of WO? There may have been some related bugs in earlier versions of 5.4 Chuck On Sep 4, 2008, at 1:11 PM, Josh Paul wrote: I have a DirectAction which attempts to read information from a current session. However, when accessing the information, a new Session is created, thereby rendering the action useless. The action includes the sessionID via the wosid key: http://localhost/cgi-bin/WebObjects/Test.woa/-/wa/status?wosid=ees0hDQNM0wTL3nLXQbD8M Is there any reason why this should/could be occurring? ___ 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 [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
Yeah, see, that's what I _thought_ but then when I tried to override: public NSArray lotCodes() ... in my Part class with public NSArray lotCodes() in my Intermediate class (subclass of Part) I get Eclipse complaining: "The return type is incompatible with _Part.lotCodes()" with the suggested fix of changing the return type to: NSArray That doesn't seem right. Does it? Yes, I know I'm showing off my lack of Java knowledge. It's all WO's fault. It makes app development so easy that you can build great applications without fully understanding WTF is going on. Dave On Sep 4, 2008, at 1:46 PM, Mike Schrag wrote: Of course a subclass can't override the return type of an inherited method. That's a Java rule, not a EOF rule. Not ENTIRELY true ... you can override the return type to be a subclass of the parent classes' return type. 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/webobjects%40avendasora.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
How to use ERJgroupsSynchronizer framework without Wonder?
We have the JMS change notification framework in place that we need to replace with the Jgroups implementation. We are not using Project Wonder. I am trying to decipher the necessary steps to incorporate this framework into our existing apps. There really isn¹t any docs that explain the functionality of this so I have had to figure out things based on the code. Here is what I think I need to do. If someone can validate this list it would be appreciated 1. Need to incorporate ERJGroupsSynchronizer.framework into my code. 2. Looks like I need to call out ERJGroupsNotificationCenter.install() early on in my application initialization. This appears to create a subclass of the NSNotificationCenter. It seems that this needs to happen before the model gets loaded. 3. Then it looks like I need to call out ERXObjectStoreCoordinatorSynchronizer.initialize(). This looks like it needs to happen before any models get loaded. 4. Once I get a reference to a ERXObjectStoreCoordinatorSynchronizer then I can create a ERJGroupsSynchronizer. It seems that there must be some other steps that Wonder does that I might need to replicate. I saw a reference to ERXDatabase. Somewhere I would need to hook in and create a subclass of EODatabase I would imagine. Would it be possible to integrate Project Wonder without destroying my whole application? We have a base class that inherits from WOApplication (actually some thing like) WOApplication foundation.Application services.Application myapp.Application Can I simply change my foundation.Application to extend ERXApplication? Will that initialize the other parts of the stack properly? We don¹t have the ability to gut our application too much at this point. Thanks in advance for any tips Dov Rosenberg ___ 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 [EMAIL PROTECTED]
new Session being created
I have a DirectAction which attempts to read information from a current session. However, when accessing the information, a new Session is created, thereby rendering the action useless. The action includes the sessionID via the wosid key: http://localhost/cgi-bin/WebObjects/Test.woa/-/wa/status?wosid=ees0hDQNM0wTL3nLXQbD8M Is there any reason why this should/could be occurring? ___ 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 [EMAIL PROTECTED]
Re: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation... does not contain value for attribute named NeededByEOF0 with snapshot key: NeededByEOF0
Hi Shravan, i think your trouble is the consequence of "Missing Fault Handler". Are you using propagate primary key in your model for a relationship ? You can Google "Missing Fault Handler" Read that : http://developer.apple.com/documentation/WebObjects/ Reference/API5.2.4/com/webobjects/eoaccess/ EODatabaseContext.html#missingObjectGlobalIDs() and try " implement the delegate method databaseContextFailedToFetchObject." You can Google "NeededByEOF0 " Read that : http://en.wikibooks.org/wiki/Programming:WebObjects/EOF/ Using_EOF/Problems HTH, Stephane Le 4 sept. 08 à 13:05, shravan kumar a écrit : Hello Group, Can any one advise me what could be reason for this error and a resolution for the same asap: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation {_dbSnapshot = {clsGdID = ; clsID = 9512; clsNme = "Mat yt"; clsNum = "608"; clsRom = ; clsSec = "1"; distID = 192; empFName = "MAR"; empLName = "BANET"; empNum = "178"; isActv = 0; schID = 234; }; _entity = "EmpCls"; _newRow = {clsGdID = ; clsID = 9512; clsNme = "Mat yt"; clsNum = "608"; clsRom = ; clsSec = "1"; distID = 192; empFName = "MAR"; empLName = "BANET"; empNum = "178"; isActv = 1; schID = 234; }; _object = "{values = {clsNum = "608"; empNum = "178"; clsNme = "Mat yt"; emps = "((java.lang.Integer)862]>)>"; empLName = "BANET"; clsRom = ; clsSec = "1"; dist = "_EOIntegralKeyGlobalID[District (java.lang.Integer)192])>"; isActv = 1; empFName = "MARION"; sch = "[Sch (java.lang.Integer)234]>"; grd = "null"; }; this = "191777e _EOIntegralKeyGlobalID[EmpCls (java.lang.Integer)8512562] >"; }"; _adaptorOps = ({_qualifier = "((clsID = 9512) and (schID = 234) and ( clsNme = 'Mat yt') and (clsNum = '608') and (clsSec = '1') and (clsRom = null) and (clsGdID = null) and (distID = 1682) and (empNum = '178') and (isActv = 0))"; _adaptorOperator = "EOAdaptorUpdateOperator"; _entity = "EmpCls"; _changedValues = {(isActv = 1; }; }); _globalID = _EOIntegralKeyGlobalID[EmpCls (java.lang.Integer)8512562]; _databaseOperator = "EODatabaseUpdateOperator"; } does not contain value for attribute named NeededByEOF0 with snapshot key: NeededByEOF0 -- Thank You Shravan Kumar. M --- ___ 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/ stephane.guyot11%40wanadoo.fr This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Re: clearing a toMany relationship fault
Shallow and Deep, with an optional depth setting? Shallow is the current EO and its toMany, then stops. Deep continues on through the graph to a depth of 'depth' ? Shallow is a wrapper method of Deep with 'depth = 0' ? This could be a very expensive operation if mis-used, but is badly needed. Ultimately I think this has to be rules-based ... This same problem happens when serializing object graphs over JSON services ... Which to- many's do you include? Which do you live as faults? I've looked at it a million ways and I think you can only ever do it right with a d2wish rules definition that lets you pick the context you're in to determine which keypaths end up in vs out and faulted vs not. 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
Of course a subclass can't override the return type of an inherited method. That's a Java rule, not a EOF rule. Not ENTIRELY true ... you can override the return type to be a subclass of the parent classes' return type. 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 [EMAIL PROTECTED]
Re: clearing a toMany relationship fault in Java Client
I wasn't following the other thread, but off the top of my head, well, maybe you could do: eo.editingContext().refreshObject(eo); Which should cause it to get the latest stuff from the server? No? F On Sep 04, 2008, at 13:21, Ricardo Legorreta wrote: Any idea what I need to do? ___ 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 [EMAIL PROTECTED]
clearing a toMany relationship fault in Java Client
So far so good I tested ERXEOControlUtilities.clearSnapshotForRelationshipNamed it works ok... But for the server side only. I´ve problems in a Java Client since in the server I´ve the correct toManyRelationship NSArray data (i.e., refreshed) , but in the client side I´m still having the old cache NSArray data from the relationship. Any idea what I need to do? Ricardo. Date: Wed, 3 Sep 2008 11:29:27 -0700 From: Chuck Hill <[EMAIL PROTECTED]> Subject: Re: clearing a toMany relationship fault To: Lachlan Deck <[EMAIL PROTECTED]> Cc: Development WebObjects Message-ID: <[EMAIL PROTECTED]> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes This is something that really should get done as part of a refreshing fetch. I think bugs have been filed on this, but another voice increases the priority. Was there some other place you were thinking of having this called automatically? It might be useful to add a refresh() method to ERXGenericRecord that would refresh the snapshot and all to-many() relationships. But then... what about the related objects? How far do you go? Chuck On Sep 3, 2008, at 5:04 AM, Lachlan Deck wrote: Okay, so there's ERXEOControlUtilities.clearSnapshotForRelationshipNamed[InDatabase] (which saves me a few lines of code :) but which doesn't appear to be auto-called from anywhere(?). Would it be useful for there to be a property that does something like this automatically? What I've now got in my ERXGenericRecord subclass now is: public void awakeFromFetch( EOEditingContext editingContext ) { super.awakeFromFetch( editingContext ); if ( editingContext == EOSharedEditingContext.defaultSharedEditingContext() && ISHApplication .ishApplication ().hasFetchedInitialSharedRecordsForEntity( entityName() ) ) { for ( Enumeration< ? > en = classDescription().toOneRelationshipKeys().objectEnumerator(); en.hasMoreElements(); ) { String key = en.nextElement().toString(); EORelationship inverseRelationship = entity().relationshipNamed( key ).inverseRelationship(); if ( inverseRelationship != null && inverseRelationship.isToMany() ) { EOEnterpriseObject eo = ( EOEnterpriseObject )valueForKey( key ); if ( eo != null ) // this next line covers Anjo's code from the wiki page below ERXEOControlUtilities.clearSnapshotForRelationshipNamed( eo, inverseRelationship.name() ); } } } } This is working fine. Is there any suggestions on anything else that might need doing for completeness? On 03/09/2008, at 5:07 PM, Lachlan Deck wrote: Hi Simon, On 03/09/2008, at 4:37 PM, Simon McLean wrote: this might help: http://en.wikibooks.org/wiki/Programming:WebObjects/EOF/Using_EOF/Caching_and_Freshness#Refreshing_Many-to-Many_Relationships Yes - that's exactly the sort of stuff I'm trying to solve. Question: is there some property in Wonder that does this automatically? On 3 Sep 2008, at 07:34, Lachlan Deck wrote: Hi there, just wondering ... how would I go about clearing the faults for certain toMany relationships of an object. i.e., I'm iterating through certain toMany keys and I want to obtain the faults without firing them (best case scenario) and then clear them so that they are refreshed. Any suggestions? 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 [EMAIL PROTECTED]
Re: clearing a toMany relationship fault
I suspect the depth thing would not work for more cases than it would (not work meaning refreshing objects that you did not want refreshed). I was thinking more of something like relying on the Own Destination flag on each relationship. Or maybe a set of keypaths like the pre-fetching relationships in EOFetchSpecification. Chuck On Sep 4, 2008, at 9:27 AM, Michael DeMan wrote: Shallow and Deep, with an optional depth setting? Shallow is the current EO and its toMany, then stops. Deep continues on through the graph to a depth of 'depth' ? Shallow is a wrapper method of Deep with 'depth = 0' ? This could be a very expensive operation if mis-used, but is badly needed. - mike Chuck Hill wrote: This is something that really should get done as part of a refreshing fetch. I think bugs have been filed on this, but another voice increases the priority. Was there some other place you were thinking of having this called automatically? It might be useful to add a refresh() method to ERXGenericRecord that would refresh the snapshot and all to-many() relationships. But then... what about the related objects? How far do you go? Chuck On Sep 3, 2008, at 5:04 AM, Lachlan Deck wrote: Okay, so there's ERXEOControlUtilities .clearSnapshotForRelationshipNamed[InDatabase] (which saves me a few lines of code :) but which doesn't appear to be auto-called from anywhere(?). Would it be useful for there to be a property that does something like this automatically? What I've now got in my ERXGenericRecord subclass now is: public void awakeFromFetch( EOEditingContext editingContext ) { super.awakeFromFetch( editingContext ); if ( editingContext == EOSharedEditingContext.defaultSharedEditingContext() && ISHApplication .ishApplication ().hasFetchedInitialSharedRecordsForEntity( entityName() ) ) { for ( Enumeration< ? > en = classDescription().toOneRelationshipKeys().objectEnumerator(); en.hasMoreElements(); ) { String key = en.nextElement().toString(); EORelationship inverseRelationship = entity().relationshipNamed( key ).inverseRelationship(); if ( inverseRelationship != null && inverseRelationship.isToMany() ) { EOEnterpriseObject eo = ( EOEnterpriseObject )valueForKey( key ); if ( eo != null ) // this next line covers Anjo's code from the wiki page below ERXEOControlUtilities.clearSnapshotForRelationshipNamed( eo, inverseRelationship.name() ); } } } } This is working fine. Is there any suggestions on anything else that might need doing for completeness? On 03/09/2008, at 5:07 PM, Lachlan Deck wrote: Hi Simon, On 03/09/2008, at 4:37 PM, Simon McLean wrote: this might help: http://en.wikibooks.org/wiki/Programming:WebObjects/EOF/Using_EOF/Caching_and_Freshness#Refreshing_Many-to-Many_Relationships Yes - that's exactly the sort of stuff I'm trying to solve. Question: is there some property in Wonder that does this automatically? On 3 Sep 2008, at 07:34, Lachlan Deck wrote: Hi there, just wondering ... how would I go about clearing the faults for certain toMany relationships of an object. i.e., I'm iterating through certain toMany keys and I want to obtain the faults without firing them (best case scenario) and then clear them so that they are refreshed. Any suggestions? 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/chill%40global-village.net This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
And here I was going to suggest trying Vertical Inheritance! Chuck On Sep 4, 2008, at 9:40 AM, David Avendasora wrote: You know, sometimes I really amaze myself at how far I can go down the wrong path before I realize how completely wrong something is. Of course a subclass can't override the return type of an inherited method. That's a Java rule, not a EOF rule. EOGenerator was saving my butt without me even knowing it. Sheesh. Dave On Sep 4, 2008, at 10:25 AM, David Avendasora wrote: Hi all, I have two Single-Table Inheritance structures in my application: Part -Intermediate --Finished LotCode -ManufacturedBatch --ManufacturedPart Currently I have the relationships modeled as: Part<->>LotCode (relationship named "lotCodes()") Intermediate<->>ManufacturedBatch (relationship is still called "lotCodes") Finished<->>ManufacturedPart (relationship is still called "lotCodes") The thing I just noticed is that in my generated _Entity.java classes there is no lotCodes() method defined because the EOGenerator template skips it due to being inherited. Which makes sense, but is not what I want. So the generated code does not _really_ agree with the EOModel. The app seems to work just fine up to now because I've never expected the lotCodes() relationship on an Intermediate to return an instance of ManufacturedBatch. But now I do. I just want to know if it is legal from an EOF standpoint to have an inherited relationship to have a different (yet child) destination entity before I go modifying my EOGen templates. I can't really see why it wouldn't be legal. Thanks! 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/webobjects%40avendasora.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED] -- 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 [EMAIL PROTECTED]
Re: Inherited Relationships using Different Destinations
You know, sometimes I really amaze myself at how far I can go down the wrong path before I realize how completely wrong something is. Of course a subclass can't override the return type of an inherited method. That's a Java rule, not a EOF rule. EOGenerator was saving my butt without me even knowing it. Sheesh. Dave On Sep 4, 2008, at 10:25 AM, David Avendasora wrote: Hi all, I have two Single-Table Inheritance structures in my application: Part -Intermediate --Finished LotCode -ManufacturedBatch --ManufacturedPart Currently I have the relationships modeled as: Part<->>LotCode (relationship named "lotCodes()") Intermediate<->>ManufacturedBatch (relationship is still called "lotCodes") Finished<->>ManufacturedPart (relationship is still called "lotCodes") The thing I just noticed is that in my generated _Entity.java classes there is no lotCodes() method defined because the EOGenerator template skips it due to being inherited. Which makes sense, but is not what I want. So the generated code does not _really_ agree with the EOModel. The app seems to work just fine up to now because I've never expected the lotCodes() relationship on an Intermediate to return an instance of ManufacturedBatch. But now I do. I just want to know if it is legal from an EOF standpoint to have an inherited relationship to have a different (yet child) destination entity before I go modifying my EOGen templates. I can't really see why it wouldn't be legal. Thanks! 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/webobjects%40avendasora.com This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Re: clearing a toMany relationship fault
Shallow and Deep, with an optional depth setting? Shallow is the current EO and its toMany, then stops. Deep continues on through the graph to a depth of 'depth' ? Shallow is a wrapper method of Deep with 'depth = 0' ? This could be a very expensive operation if mis-used, but is badly needed. - mike Chuck Hill wrote: This is something that really should get done as part of a refreshing fetch. I think bugs have been filed on this, but another voice increases the priority. Was there some other place you were thinking of having this called automatically? It might be useful to add a refresh() method to ERXGenericRecord that would refresh the snapshot and all to-many() relationships. But then... what about the related objects? How far do you go? Chuck On Sep 3, 2008, at 5:04 AM, Lachlan Deck wrote: Okay, so there's ERXEOControlUtilities.clearSnapshotForRelationshipNamed[InDatabase] (which saves me a few lines of code :) but which doesn't appear to be auto-called from anywhere(?). Would it be useful for there to be a property that does something like this automatically? What I've now got in my ERXGenericRecord subclass now is: public void awakeFromFetch( EOEditingContext editingContext ) { super.awakeFromFetch( editingContext ); if ( editingContext == EOSharedEditingContext.defaultSharedEditingContext() && ISHApplication.ishApplication().hasFetchedInitialSharedRecordsForEntity( entityName() ) ) { for ( Enumeration< ? > en = classDescription().toOneRelationshipKeys().objectEnumerator(); en.hasMoreElements(); ) { String key = en.nextElement().toString(); EORelationship inverseRelationship = entity().relationshipNamed( key ).inverseRelationship(); if ( inverseRelationship != null && inverseRelationship.isToMany() ) { EOEnterpriseObject eo = ( EOEnterpriseObject )valueForKey( key ); if ( eo != null ) // this next line covers Anjo's code from the wiki page below ERXEOControlUtilities.clearSnapshotForRelationshipNamed( eo, inverseRelationship.name() ); } } } } This is working fine. Is there any suggestions on anything else that might need doing for completeness? On 03/09/2008, at 5:07 PM, Lachlan Deck wrote: Hi Simon, On 03/09/2008, at 4:37 PM, Simon McLean wrote: this might help: http://en.wikibooks.org/wiki/Programming:WebObjects/EOF/Using_EOF/Caching_and_Freshness#Refreshing_Many-to-Many_Relationships Yes - that's exactly the sort of stuff I'm trying to solve. Question: is there some property in Wonder that does this automatically? On 3 Sep 2008, at 07:34, Lachlan Deck wrote: Hi there, just wondering ... how would I go about clearing the faults for certain toMany relationships of an object. i.e., I'm iterating through certain toMany keys and I want to obtain the faults without firing them (best case scenario) and then clear them so that they are refreshed. Any suggestions? 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/chill%40global-village.net This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Customizing random value generation
Hi all, I am working on the EO data generator discussed a while ago, in between of other things. So, since "hints" that affect value generation are wired into the generation process, I need to know what they are to use them. Below is a list of hint types I have, if anyone can come up with something else that is relevant, please let me know. Explanations are provided in comments. Note that a hint consists of a type and a value. The value is of the class that the hint type is parameterized with. A hint type is instantiated with an integer that is used as it's hash type, and to compare hint equality. The desired consequence of this is that hints with the same ID will override each other. For example if you first set an OVRD hint for a certain property, and then set a SEQ hint for the same property, the OVRD property will be removed from the hint cache. F If you are interested in the context in which this is used, Hint.java is attached: Hint.java Description: Binary data /** * Entity level hint, determines how many EOs should be generated for * any particular entity. */ public static final Type COUNT = new Type(0); /** * Determines how frequently a value will be set for a property * that allows null. */ public static final Type SPARSITY =new Type(1); /** * Overrides randomized value generation and instead uses the provided * List to randomly choose a value from. */ public static final Type> OVRD =new Type>(2); /** * Similar to [EMAIL PROTECTED] #OVRD}, but the values are not randomly chosen * from the List, but in sequence. */ public static final Type> SEQ = new Type>(2); /** * Instead of using the default value generator for the class of the * attribute, a custom provided AttGen is used. */ public static final Type CUSTOM = new Type(2); /** * An attribute generator for the given Class is used, and * then the value is converted to the type the attribute expects it in. */ public static final Type> CONVERT =new Type>(2); /** * The low boundary for randomly generated values. Different attribute type * generators will expect different value types for hints of this type: * * String attributes expect an Integer denoting the * minimum String length. * Numeric attributes expect a Number of the same type the * attribute is in, denoting the minimum allowed value for the attribute. * NSData attributes expect an Integer denoting the * minimum number of bytes used. * NSData attributes that are images expect a Dimension * denoting the minimum image size in pixels. * */ public static final Type MIN =new Type(3); /** * The high boundary for randomly generated values. Different attribute type * generators will expect different value types for hints of this type: * * String attributes expect an Integer denoting the * maximum String length. * Numeric attributes expect a Number of the same type the * attribute is in, denoting the maximum allowed value for the attribute. * NSData attributes expect an Integer denoting the * maximum number of bytes used. * NSData attributes that are images expect a Dimension * denoting the maximum image size in pixels. * */ public static final Type MAX =new Type(4); /** * Utilized only by NSData attributes, defines the attribute to be * the data of an image, the value of the hint of this type should a * String that defines the image format name, as expected by * [EMAIL PROTECTED] ImageIO#getImageWritersByFormatName(String)}. */ public static final Type IMAGE = new Type(5); ___ 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 [EMAIL PROTECTED]
Re: Strange SQL Statement generated....
As part of the update, did you move to a different machine? We were seeing strange EOF problems because we were using an updated JBDC driver and should have stayed with the original one. On Sep 3, 2008, at 10:05 PM, Owen McKerrow wrote: Hi All, Updating an old application and have come across a very weird situation. Code which was working fine 2 days ago now produces an error. So I made the simplest test case I could and yet I still get the error. GeneralInfo gi = (GeneralInfo)EOUtilities.objectWithFetchSpecificationAndBindings(ec, "GeneralInfo", "find", new NSDictionary()); gi.setUpdaterRunning(new Integer(3)); ec.saveChanges(); which produces the following SQL and error message 11:58:39,855 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - evaluateExpression: $OracleExpression: "SELECT t0.client_id, t0.common_rules, t0.general_info, t0.menu_Message, t0.updater_running FROM GENERAL_INFO t0 WHERE t0.client_id = ?" withBindings: 1:2(client_id)> 11:58:39,863 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - 1 row(s) processed 11:58:39,864 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Commit Internal Transaction 11:58:39,881 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Begin Internal Transaction 11:58:39,881 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - evaluateExpression: $OracleExpression: "SELECT t0.client_id, t0.common_rules, t0.general_info, t0.menu_Message, t0.updater_running FROM GENERAL_INFO t0 WHERE t0.client_id = ? FOR UPDATE" withBindings: 1:2(client_id)> 11:58:39,893 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - 1 row(s) processed 11:58:39,898 DEBUG [Thread-1] (Log.NSLogDebug:1546 appendln) - === Rollback Internal Transaction 11:58:39,898 DEBUG [Thread-1] (Main:187 doUpdate) - updateStatementForRow: qualifier may not be null 11:58:39,934 OFF [Thread-1] (Log.NSLogErr:1546 appendln) - EXCEPTION: updateStatementForRow: qualifier may not be null DATE/TIME: 2008-09-04 01:58:39 Etc/GMT null STACK TRACE: at _exceptionWithDatabaseContextInformationAdded(EODatabaseContext.java: 4685) at performChanges(EODatabaseContext.java:6393) at saveChangesInEditingContext(EOObjectStoreCoordinator.java:415) at saveChanges(EOEditingContext.java:3226) at doUpdate(SyncUtil.java:114) at run(SyncUtil.java:81) I don't understand why it wants to fetch the GeneralInfo object from the database again? And I don't think I have ever seen SQL "FOR UPDATE" which is tacked onto the end of the second select statement. Can anyone suggest what may be going on and why ? Owen McKerrow WebMaster, emlab Ph : +61 02 4221 5517 http://emlab.uow.edu.au - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "I like the way this project has somehow, against all common sense, got itself made." - Peter Jackson, "The Lord of The Rings" ___ 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/slk24%40outreach.psu.edu This email sent to [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
Inherited Relationships using Different Destinations
Hi all, I have two Single-Table Inheritance structures in my application: Part -Intermediate --Finished LotCode -ManufacturedBatch --ManufacturedPart Currently I have the relationships modeled as: Part<->>LotCode (relationship named "lotCodes()") Intermediate<->>ManufacturedBatch (relationship is still called "lotCodes") Finished<->>ManufacturedPart (relationship is still called "lotCodes") The thing I just noticed is that in my generated _Entity.java classes there is no lotCodes() method defined because the EOGenerator template skips it due to being inherited. Which makes sense, but is not what I want. So the generated code does not _really_ agree with the EOModel. The app seems to work just fine up to now because I've never expected the lotCodes() relationship on an Intermediate to return an instance of ManufacturedBatch. But now I do. I just want to know if it is legal from an EOF standpoint to have an inherited relationship to have a different (yet child) destination entity before I go modifying my EOGen templates. I can't really see why it wouldn't be legal. Thanks! 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 [EMAIL PROTECTED]
Re: performance bottleneck
You can also turn on the thing in Wonder that logs out timing of queries. Is the database in production running on the same machine as the web app? Are you connecting to that database as localhost/ 127.0.0.1 or the hostname? If hostname, check DNS -- this can kill you DNS is setup wrong (you get huge DNS lags) ... So check that locally you can resolve the hostname that appears in the URL, and check that your DNS servers on that machine are correct. Drivers, obviously. If you connect to the machine using a native db client on the production box (with the same hostnames etc), is it still slow? ms On Sep 4, 2008, at 3:27 AM, Q wrote: On 04/09/2008, at 3:35 PM, Lachlan Deck wrote: Hi there, I've been doing quite a bit of profiling on my app over the last few days ... and well on my dev machine it's working a treat. (However I do notice that using the displayGroup - even with using ERXBatchingDisplayGroup + ERXDatabaseDataSource that there's a few extra round-trips to the db that needn't be... but that's another optimisation to come). However, when I deploy my app to our intranet, the list pages are seriously slow (even moving between batches). I'm connecting the same database on both machines (mine connects remotely obviously) but there's some serious bottleneck somewhere that I can't figure out. Locally it's great, deployed is sluggish as anything. Unfortunately I can't find a profiler for FreeBSD (the platform of our deployment servers) ... so I'm wondering if anyone has any other ideas? Are you using the same version of the JDBC drivers? Is it also slow if you use direct connect? Have you checked Safari's "Inspect Element -> Network" to see where the browser's time is being spent? Is the JVM being allocated sufficient memory? You may want to try narrowing down with some debug timing output if it is slow to fetch the data, slow to render the components, or just slow to send the data to the browser. -- Seeya...Q Quinton Dolan - [EMAIL PROTECTED] Gold Coast, QLD, Australia (GMT+10) Ph: +61 419 729 806 ___ 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 [EMAIL PROTECTED] ___ 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 [EMAIL PROTECTED]
rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation... does not contain value for attribute named NeededByEOF0 with snapshot key: NeededByEOF0
Hello Group, Can any one advise me what could be reason for this error and a resolution for the same asap: rowDiffsForAttributes: snapshot in com.webobjects.eoaccess.EODatabaseOperation {_dbSnapshot = {clsGdID = ; clsID = 9512; clsNme = "Mat yt"; clsNum = "608"; clsRom = ; clsSec = "1"; distID = 192; empFName = "MAR"; empLName = "BANET"; empNum = "178"; isActv = 0; schID = 234; }; _entity = "EmpCls"; _newRow = {clsGdID = ; clsID = 9512; clsNme = "Mat yt"; clsNum = "608"; clsRom = ; clsSec = "1"; distID = 192; empFName = "MAR"; empLName = "BANET"; empNum = "178"; isActv = 1; schID = 234; }; _object = "{values = {clsNum = "608"; empNum = "178"; clsNme = "Mat yt"; emps = ")>"; empLName = "BANET"; clsRom = ; clsSec = "1"; dist = ""; isActv = 1; empFName = "MARION"; sch = ""; grd = "null"; }; this = ""; }"; _adaptorOps = ({_qualifier = "((clsID = 9512) and (schID = 234) and ( clsNme = 'Mat yt') and (clsNum = '608') and (clsSec = '1') and (clsRom = null) and (clsGdID = null) and (distID = 1682) and (empNum = '178') and (isActv = 0))"; _adaptorOperator = "EOAdaptorUpdateOperator"; _entity = "EmpCls"; _changedValues = {(isActv = 1; }; }); _globalID = _EOIntegralKeyGlobalID[EmpCls (java.lang.Integer)8512562]; _databaseOperator = "EODatabaseUpdateOperator"; } does not contain value for attribute named NeededByEOF0 with snapshot key: NeededByEOF0 -- Thank You Shravan Kumar. M --- ___ 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 [EMAIL PROTECTED]
Re: performance bottleneck
On 04/09/2008, at 3:35 PM, Lachlan Deck wrote: Hi there, I've been doing quite a bit of profiling on my app over the last few days ... and well on my dev machine it's working a treat. (However I do notice that using the displayGroup - even with using ERXBatchingDisplayGroup + ERXDatabaseDataSource that there's a few extra round-trips to the db that needn't be... but that's another optimisation to come). However, when I deploy my app to our intranet, the list pages are seriously slow (even moving between batches). I'm connecting the same database on both machines (mine connects remotely obviously) but there's some serious bottleneck somewhere that I can't figure out. Locally it's great, deployed is sluggish as anything. Unfortunately I can't find a profiler for FreeBSD (the platform of our deployment servers) ... so I'm wondering if anyone has any other ideas? Are you using the same version of the JDBC drivers? Is it also slow if you use direct connect? Have you checked Safari's "Inspect Element -> Network" to see where the browser's time is being spent? Is the JVM being allocated sufficient memory? You may want to try narrowing down with some debug timing output if it is slow to fetch the data, slow to render the components, or just slow to send the data to the browser. -- Seeya...Q Quinton Dolan - [EMAIL PROTECTED] Gold Coast, QLD, Australia (GMT+10) Ph: +61 419 729 806 ___ 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 [EMAIL PROTECTED]