RE: Sybase adapter changes?

From: Gentry, Michael \(Contractor\) ("Gentry,)
Date: Fri Jun 30 2006 - 10:38:57 EDT

  • Next message: Andrus Adamchik: "Re: Sybase adapter changes?"

    Judging by the release notes at:

    http://www.objectstyle.org/confluence/display/CAY/2006/03/23/Cayenne+ORM
    +1.2M12+Release

    I'd guess the nested DataContexts are a likely place to look?

    Of course, that brings up the question: is this a bug that should be
    fixed or should I just update my PK generator to store the auto-commit
    flag, set it true for my usage, then set it back to the original value?
    Also, do you think this would effect running stored procedures through
    Cayenne instead of JDBC directly, too?

    Thanks,

    /dev/mrg

    -----Original Message-----
    From: Andrus Adamchik [mailto:andru..bjectstyle.org]
    Sent: Friday, June 30, 2006 10:33 AM
    To: cayenne-de..ncubator.apache.org
    Subject: Re: Sybase adapter changes?

    IIRC transaction API changes also happened around M12.

    Andrus

    On Jun 30, 2006, at 3:19 PM, Gentry, Michael ((Contractor)) wrote:

    > M9: Pass (auto-commit = true)
    > M10: Pass (auto-commit = true)
    > M11: Pass (auto-commit = true)
    > M12: Fail (auto-commit = false)
    > RC1: Fail (auto-commit = false)
    >
    > Well, at least that provides a good starting point. :-)
    >
    > /dev/mrg
    >
    >
    > -----Original Message-----
    > From: Gentry, Michael (Contractor)
    > [mailto:michael_gentr..anniemae.com]
    >
    > Sent: Friday, June 30, 2006 9:47 AM
    > To: cayenne-de..ncubator.apache.org
    > Subject: RE: Sybase adapter changes?
    >
    >
    > Well, I don't really have DBA access (create table/etc) to any of our
    > Sybase servers. There *might* be a development database server
    > somewhere I could try it on. I'll ask around.
    >
    > On another note ...
    >
    > Installed 1.2 RC2 and ran the application. Same exception.
    >
    > Installed 1.2 M9 and ran the application. Generated primary key.
    >
    > So, something has definitely changed between those releases, but
    > I'm not
    > sure what. I'm not even really using Cayenne in the key generator (I
    > get the JDBC connection and call it directly).
    >
    > /dev/mrg
    >
    > PS. I might try installing all the releases between the two and see
    > where the breaking point is.
    >
    >
    >
    > -----Original Message-----
    > From: Andrus Adamchik [mailto:andru..bjectstyle.org]
    > Sent: Friday, June 30, 2006 3:57 AM
    > To: cayenne-de..ncubator.apache.org
    > Subject: Re: Sybase adapter changes?
    >
    >
    > This may be something related to the changes in the rest of Cayenne
    > (such as transaction code). I've been having problems with my Linux
    > Sybase installation lately (and it is not yet supported on Fedora
    > Core 5, so I can't put it on our new server), so the last few
    > releases haven't been tested on Sybase.
    >
    > Can you run Cayenne unit tests against Sybase and see if it generates
    > any failures?
    >
    > Andrus
    >
    > On Jun 29, 2006, at 10:27 PM, Gentry, Michael ((Contractor)) wrote:
    >> I have an application running fine "in production" using Cayenne
    >> 1.2M9,
    >> but when testing it locally with Cayenne 1.2 RC1, I get this
    >> exception:
    >>
    >> Exception = com.sybase.jdbc2.jdbc.SybSQLException: Stored procedure
    >> 'getpid' may be run only in unchained transaction mode. The 'SET
    >> CHAINED
    >> OFF' command will cause the current session to use unchained
    >> transaction
    >> mode.
    >>
    >> I didn't make any changes to the Cayenne portion, just twiddled a few
    >> Tapestry bits and was testing the application out. The error occurs
    >> when I insert a record and need a primary key -- I call a stored
    >> procedure directly using JDBC in my custom PK class (which has been
    >> working perfectly for over a year):
    >>
    >> public Object generatePkForDbEntity(DataNode dataNode, DbEntity
    >> ent)
    >> throws Exception
    >> {
    >> // Get our connection so we can call the stored procedure
    >> Connection connection =
    >> dataNode.getDataSource().getConnection();
    >> CallableStatement getPID = connection.prepareCall("{call
    >> getpid(?,?,?)}");
    >>
    >> // Prepare the stored procedure
    >> getPID.setInt(1, currentBlockSize); // Slot 1:
    >> Number of
    >> PIDs requested
    >> getPID.registerOutParameter(2, Types.BINARY); // Slot 2: First
    >> PID
    >> allocated
    >> getPID.registerOutParameter(3, Types.INTEGER); // Slot 3:
    >> Number of
    >> PIDs allocated
    >> try
    >> {
    >> // Call the stored procedure
    >> getPID.execute();
    >> ...
    >>
    >> I get the exception on the execute() line.
    >>
    >> I did diffs on the Sybase code, but didn't see any changes -- at
    >> least
    >> not since it was converted to Subversion.
    >>
    >> Anyone have ideas?
    >>
    >> Thanks!
    >>
    >> /dev/mrg
    >>
    >> PS. Auto commit is false.
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri Jun 30 2006 - 10:39:23 EDT