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

From: Chuck Hill (chil..lobal-village.net)
Date: Tue Jul 17 2007 - 18:54:52 EDT

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

    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,r
    > trim,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.primaryKeysForNewRowsWith
    >>>>>>> Entity(JDBCChannel.java:537)
    >>>>>>> at
    >>>>>>> com.webobjects.eoaccess.EODatabaseContext._batchNewPrimaryKeysWi
    >>>>>>> thEntity(EODatabaseContext.java:5900)
    >>>>>>> at
    >>>>>>> com.webobjects.eoaccess.EODatabaseContext.prepareForSaveWithCoor
    >>>>>>> dinator(EODatabaseContext.java:5883)
    >>>>>>> at
    >>>>>>> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInE
    >>>>>>> ditingContext(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 : Tue Jul 17 2007 - 18:56:16 EDT