Re: Eclipse 3.2.2, WOLips 2.0.0.4118 and SybasePlugin not generating primary key

From: Ulrich Köster (ulric..bjectstyle.org)
Date: Wed Jul 18 2007 - 02:29:40 EDT

  • Next message: Mike Schrag: "Re: Converting woa to eclipse, have the strangest of errors..."

    Just an idea. Has the vm used for wo development changed recently?

    Uli
    Am 18.07.2007 um 00:54 schrieb Chuck Hill:

    >
    > On Jul 17, 2007, at 3:49 PM, Jerry Haynes wrote:
    >
    >> The plugin is blank in both the working and non-working versions.
    >
    > I'll have to question your assertion that the "working" version was
    > using the plugin you indicated then. Try defining the plugin class
    > in the connection dictionary and see what happens.
    >
    > Chuck
    >
    >
    >> The output was identical.
    >>
    >>
    >> {plugin = ""; jdbc2Info = {NON_NULLABLE_COLUMNS = "T";
    >> ANSI92_CONFORMANCE = "ANSI92EntryLevel"; DRIVER_NAME = "jConnect
    >> (TM) for JDBC (TM)"; DBMS_NAME = "Sybase SQL Server"; typeInfo =
    >> {money = {defaultJDBCType = ("DECIMAL"); createParams = "2";
    >> maxScale = "4"; minScale = "4"; isNullable = "T"; isSearchable =
    >> "T"; precision = "19"; }; binary = {createParams = "1"; isNullable
    >> = "T"; isSearchable = "T"; precision = "255"; defaultJDBCType =
    >> ("BINARY"); }; smalldatetime = {createParams = "0"; isNullable =
    >> "T"; isSearchable = "T"; precision = "16"; defaultJDBCType =
    >> ("TIMESTAMP"); }; sysname = {createParams = "1"; isNullable = "T";
    >> isSearchable = "T"; precision = "30"; defaultJDBCType =
    >> ("VARCHAR"); }; double precision = {createParams = "0"; isNullable
    >> = "T"; isSearchable = "T"; precision = "15"; defaultJDBCType =
    >> ("DOUBLE"); }; smallint = {createParams = "0"; isNullable = "T";
    >> isSearchable = "T"; precision = "5"; defaultJDBCType =
    >> ("SMALLINT"); }; bit = {createParams = "0"; isNullable = "F";
    >> isSearchable = "T"; precision = "1"; defaultJDBCType = ("BIT"); };
    >> varbinary = {createParams = "1"; isNullable = "T"; isSearchable =
    >> "T"; precision = "255"; defaultJDBCType = ("VARBINARY"); }; int =
    >> {createParams = "0"; isNullable = "T"; isSearchable = "T";
    >> precision = "10"; defaultJDBCType = ("INTEGER"); }; decimal =
    >> {defaultJDBCType = ("DECIMAL"); createParams = "2"; maxScale =
    >> "38"; minScale = "0"; isNullable = "T"; isSearchable = "T";
    >> precision = "38"; }; numeric = {defaultJDBCType = ("NUMERIC");
    >> createParams = "2"; maxScale = "38"; minScale = "0"; isNullable =
    >> "T"; isSearchable = "T"; precision = "38"; }; char = {createParams
    >> = "1"; isNullable = "T"; isSearchable = "T"; precision = "255";
    >> defaultJDBCType = ("CHAR"); }; text = {createParams = "0";
    >> isNullable = "T"; isSearchable = "F"; precision = "2147483647";
    >> defaultJDBCType = ("LONG VARCHAR"); }; datetime = {createParams =
    >> "0"; isNullable = "T"; isSearchable = "T"; precision = "23";
    >> defaultJDBCType = ("TIMESTAMP"); }; smallmoney = {defaultJDBCType
    >> = ("DECIMAL"); createParams = "2"; maxScale = "4"; minScale = "4";
    >> isNullable = "T"; isSearchable = "T"; precision = "10"; }; varchar
    >> = {createParams = "1"; isNullable = "T"; isSearchable = "T";
    >> precision = "255"; defaultJDBCType = ("VARCHAR"); }; image =
    >> {createParams = "0"; isNullable = "T"; isSearchable = "F";
    >> precision = "2147483647"; defaultJDBCType = ("LONG VARBINARY"); };
    >> float = {createParams = "0"; isNullable = "T"; isSearchable = "T";
    >> precision = "8"; defaultJDBCType = ("DOUBLE"); }; tinyint =
    >> {createParams = "0"; isNullable = "T"; isSearchable = "T";
    >> precision = "3"; defaultJDBCType = ("TINYINT"); }; real =
    >> {createParams = "0"; isNullable = "T"; isSearchable = "T";
    >> precision = "7"; defaultJDBCType = ("REAL"); }; extended type =
    >> {createParams = "0"; isNullable = "T"; isSearchable = "F";
    >> precision = "2147483647"; defaultJDBCType = ("OTHER"); }; };
    >> IDENTIFIER_QUOTE_STRING = """; DRIVER_VER = "jConnect (TM) for JDBC
    >> (TM)/5.5(Build 25152)/P/EBF10106/JDK12/Mon Feb 25 19:10:53 2002";
    >> STRING_FUNCTIONS =
    >> "ascii,char,concat,difference,insert,length,lcase,ltrim,repeat,right,
    >> rtrim,soundex,space,substring,ucase"; }; username = "fldadj";
    >> driver = "com.sybase.jdbc2.jdbc.SybDriver"; password = "*******";
    >> URL = "jdbc:sybase:Tds:*******:8000"; }
    >>
    >>
    >> Jerry
    >>
    >>
    >> On Jul 17, 2007, at 5:51 PM, Chuck Hill wrote:
    >>
    >>>
    >>> On Jul 17, 2007, at 2:47 PM, Jerry Haynes wrote:
    >>>
    >>>> Yes, I am relying on the connection dictionary in the model. For
    >>>> this project I just change the username in Application.java to
    >>>> bounce between Dev and Production.
    >>>>
    >>>> Application.java:
    >>>> //Get the FAS EOModel for this project.
    >>>> EOModel fasModel = EOModelGroup.defaultGroup().modelNamed
    >>>> (System.getProperty("FASModelName"));
    >>>> //Get the connection dictionary from the model.
    >>>> NSDictionary fasModelDict = fasModel.connectionDictionary();
    >>>> //Duplicate the connection dictionary and replace the login name.
    >>>> NSMutableDictionary fasConnectDict = new NSMutableDictionary();
    >>>> fasConnectDict.addEntriesFromDictionary(fasModelDict);
    >>>> fasConnectDict.setObjectForKey(fasUserLoginName, "username");
    >>>> fasConnectDict.setObjectForKey("********", "password");
    >>>> fasModel.setConnectionDictionary(fasConnectDict);
    >>>
    >>> Try logging it out here to see if the correct plugin class is
    >>> set. It should be
    >>> plugin = "org.objectstyle.woproject.util.SybasePlugIn";
    >>>
    >>> Chuck
    >>>
    >>>>
    >>>> Properties file:
    >>>> FASModelName=fas
    >>>>
    >>>> #Unquote for FAS Test
    >>>> FASUserName=fldadj
    >>>>
    >>>> #Unquote for FAS Production
    >>>> #FASUserName=fieldadj
    >>>>
    >>>>
    >>>>
    >>>> Jerry
    >>>>
    >>>>
    >>>> On Jul 17, 2007, at 5:26 PM, Chuck Hill wrote:
    >>>>
    >>>>> Cross posting to WOLips as this is where this topic belongs.
    >>>>>
    >>>>> On Jul 17, 2007, at 2:09 PM, Jerry Haynes wrote:
    >>>>>
    >>>>>> I never figured out the issue with Eclipse 3.2.2 and WOLips
    >>>>>> 2.0.0.4118 but downgrading worked.
    >>>>>>
    >>>>>> I installed a second copy of Eclipse 3.2.2 with WOLips
    >>>>>> 2.0.0.3702. I chose this version randomly. I had no issues
    >>>>>> with my project with this setup. Records were successfully
    >>>>>> created.
    >>>>>>
    >>>>>> Because my original installation of Eclipse contains other
    >>>>>> plug-ins, I installed a third version of Eclipse 3.2.2 with
    >>>>>> WOLips 2.0.0.4118. The problem re-appeared.
    >>>>>>
    >>>>>> Nothing else changed on my computer except the version of
    >>>>>> WOLips. This will teach me to stop updating when nothing was
    >>>>>> broken in the first place.
    >>>>>>
    >>>>>> Any new ideas would be appreciated.
    >>>>>
    >>>>> None of the WOLips or Eclipse code runs in the JVM when your
    >>>>> app runs so I don't see how this can be causing the problem.
    >>>>>
    >>>>> Are you relying on the connection dictionary in the model or
    >>>>> setting it dynamically at runtime?
    >>>>>
    >>>>> Chuck
    >>>>>
    >>>>>
    >>>>>
    >>>>>> On Jul 16, 2007, at 5:37 PM, Chuck Hill wrote:
    >>>>>>
    >>>>>>> Did you forget to set the plugin class in the model
    >>>>>>> connection dictionary?
    >>>>>>>
    >>>>>>> Chuck
    >>>>>>>
    >>>>>>>
    >>>>>>> On Jul 16, 2007, at 2:32 PM, Jerry Haynes wrote:
    >>>>>>>
    >>>>>>>> I think my problem began when I updated WOLips to 2.0.0.4118
    >>>>>>>> but I'm not exactly sure. I'm getting the error below while
    >>>>>>>> creating a new record in a Sybase database. I've tried
    >>>>>>>> starting up the project in java 1.4 and 1.5 but the problem
    >>>>>>>> persists.
    >>>>>>>>
    >>>>>>>> I've used the the SybasePlugin.java (or one similar to the
    >>>>>>>> one in the link below) for several years but my project
    >>>>>>>> doesn't seem to be using it anymore. I threw some logging
    >>>>>>>> into the newPrimaryKeys method but I never see the output.
    >>>>>>>>
    >>>>>>>> Is this a Eclipse/WOLips newbie problem?
    >>>>>>>>
    >>>>>>>> SybasePlugIn
    >>>>>>>> <http://docjar.org/html/api/org/objectstyle/woproject/util/
    >>>>>>>> SybasePlugIn.java.html>
    >>>>>>>>
    >>>>>>>> The SybasePlugIn is supposed to use eo_sequence_table
    >>>>>>>> instead of EO_PK_TABLE. I do have a EoPkForTable stored
    >>>>>>>> procedure in my model.
    >>>>>>>>
    >>>>>>>>
    >>>>>>>>
    >>>>>>>> [2007-07-16 17:02:25 EDT] <Thread-1> evaluateExpression:
    >>>>>>>> <com.webobjects.jdbcadaptor.SybasePlugIn$SybaseExpression:
    >>>>>>>> "UPDATE EO_PK_TABLE SET PK = PK WHERE NAME =
    >>>>>>>> 'dbo.VendTransaction'">
    >>>>>>>> [2007-07-16 17:02:26 EDT] <Thread-1> unable to find primary
    >>>>>>>> key value for dbo.VendTransaction
    >>>>>>>> [2007-07-16 17:02:26 EDT] <Thread-1>
    >>>>>>>> com.webobjects.jdbcadaptor.JDBCAdaptorException:
    >>>>>>>> EvaluateExpression failed:
    >>>>>>>> <com.webobjects.jdbcadaptor.SybasePlugIn$SybaseExpression:
    >>>>>>>> "UPDATE EO_PK_TABLE SET PK = PK WHERE NAME =
    >>>>>>>> 'dbo.VendTransaction'">:
    >>>>>>>> Next exception:SQL State:42000 -- error code: 208 --
    >>>>>>>> msg: EO_PK_TABLE not found. Specify owner.objectname or use
    >>>>>>>> sp_help to check whether the object exists (sp_help may
    >>>>>>>> produce lots of output).
    >>>>>>>>
    >>>>>>>> at
    >>>>>>>> com.webobjects.jdbcadaptor.JDBCContext._jdbcErrorWithChannel
    >>>>>>>> (JDBCContext.java:138)
    >>>>>>>> at
    >>>>>>>> com.webobjects.jdbcadaptor.JDBCChannel._evaluateExpression
    >>>>>>>> (JDBCChannel.java:310)
    >>>>>>>> at com.webobjects.jdbcadaptor.JDBCChannel.evaluateExpression
    >>>>>>>> (JDBCChannel.java:261)
    >>>>>>>> at com.webobjects.jdbcadaptor.JDBCPlugIn.newPrimaryKeys
    >>>>>>>> (JDBCPlugIn.java:561)
    >>>>>>>> at
    >>>>>>>> com.webobjects.jdbcadaptor.JDBCChannel.primaryKeysForNewRowsWit
    >>>>>>>> hEntity(JDBCChannel.java:537)
    >>>>>>>> at
    >>>>>>>> com.webobjects.eoaccess.EODatabaseContext._batchNewPrimaryKeysW
    >>>>>>>> ithEntity(EODatabaseContext.java:5900)
    >>>>>>>> at
    >>>>>>>> com.webobjects.eoaccess.EODatabaseContext.prepareForSaveWithCoo
    >>>>>>>> rdinator(EODatabaseContext.java:5883)
    >>>>>>>> at
    >>>>>>>> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesIn
    >>>>>>>> EditingContext(EOObjectStoreCoordinator.java:409)
    >>>>>>>> at com.webobjects.eocontrol.EOEditingContext.saveChanges
    >>>>>>>> (EOEditingContext.java:3226)
    >>>>>>>> at SyncCRC.syncCRC(SyncCRC.java:137)
    >>>>>>>> at SyncCRCPage.performAction(SyncCRCPage.java:60)
    >>>>>>>> at com.webobjects.woextensions.WOLongResponsePage.run
    >>>>>>>> (WOLongResponsePage.java:155)
    >>>>>>>> at java.lang.Thread.run(Thread.java:613)
    >>>>>>>>
    >>>>>>>> Thanks,
    >>>>>>>> Jerry Haynes
    >>>>>>>>
    >>>>>>>>
    >>>>>>>> _______________________________________________
    >>>>>>>> Do not post admin requests to the list. They will be ignored.
    >>>>>>>> Webobjects-dev mailing list (Webobjects-
    >>>>>>>> de..ists.apple.com)
    >>>>>>>> Help/Unsubscribe/Update your Subscription:
    >>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/chill%
    >>>>>>>> 40global-village.net
    >>>>>>>>
    >>>>>>>> This email sent to chil..lobal-village.net
    >>>>>>>>
    >>>>>>>
    >>>>>>> --
    >>>>>>>
    >>>>>>> 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
    >>>>>>>
    >>>>>>>
    >>>>>>>
    >>>>>>>
    >>>>>>
    >>>>>>
    >>>>>
    >>>>> --
    >>>>>
    >>>>> 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
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    >>>>
    >>>>
    >>>
    >>> --
    >>>
    >>> 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
    >>>
    >>>
    >>>
    >>>
    >>
    >>
    >
    > --
    >
    > 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
    >
    >
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Jul 18 2007 - 02:29:55 EDT