ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edwin Lukaweski" <serj...@rogers.com>
Subject Re: finding unique keys
Date Fri, 15 Sep 2006 20:15:17 GMT
That was easy.....thanks

Edwin
  ----- Original Message ----- 
  From: Jeff Butler 
  To: user-java@ibatis.apache.org 
  Sent: Friday, September 15, 2006 1:52 PM
  Subject: Re: finding unique keys


  Call the getErrorCode() method on the exception.  This will be -803 for duplicate keys on
DB2.

  Jeff Butler

   
  On 9/15/06, Edwin Lukaweski <serjann@rogers.com> wrote: 
    Great!

        Now....I guess when the insert fails, via iBatis and an SQL_Map, I will get an SQLExceptiion.
Is there an easy way to find the -803?

        I want to intercept it and re-throw only non 803 exceptions.

    thanks,
    Edwin

    ----- Original Message ----- 
    From: Jeff Butler 
    To: user-java@ibatis.apache.org 
    Sent: Friday, September 15, 2006 12:08 PM
    Subject: Re: finding unique keys

     
    I just looked to see how Spring does it with DB2.  They do look for -803 as the error
code from the SqlException.  So I think your plan sounds good.

    Jeff Butler


     
    On 9/15/06, Edwin Lukaweski <serjann@rogers.com > wrote: 
      Thanks for all the feed back!!!

      Some answers:

         1) I am using DB2 for z/OS version 7

         2) Yes, UUID's are by definition 'universally unique', excpept whe two
      are gengerated, say by two different JVMs,  within the same millisecond.
      The, they turn out to be duplicates.

         3) I like the idea of doing an optimistic INSERT. I have always had 
      trouble figuring which sql code to look for that represents this situation.
      As best I can tell, it is SQLCODE 803. So, if I see this code in an
      exception, loop again, otherwise throw a real sqlexception.

      What do you think?

      thanks,
      Edwin

      ----- Original Message -----
      From: "Larry Meadors" < lmeadors@apache.org>
      To: < user-java@ibatis.apache.org>
      Sent: Friday, September 15, 2006 11:03 AM 
      Subject: Re: finding unique keys


      > +1 ;-)
      >
      > Larry
      >
      >
      > On 9/15/06, Jeff Butler < jeffgbutler@gmail.com> wrote:
      >>
      >> Some thoughts...
      >>
      >> 1. Aren't UUID's "universally unique" by definition?  Are you sure you
      >> need
      >> to do this? 
      >>
      >> 2. Table locking is almost always a bad idea.  I had a similar situation
      >> to
      >> yours in that past, and decided to take the optomistic route, meaning...
      >>
      >> - generate the key 
      >> - insert the record
      >> - if the insert blows because of a duplicate key, then generate a new key
      >> and try again
      >>
      >> Since the likelihood of generating a duplicate UUID should be very low, 
      >> this
      >> approcah will work in the vast majority of cases.
      >>
      >>
      >> Jeff Butler
      >>
      >>
      >>
      >>
      >> On 9/15/06, Edwin Lukaweski < serjann@rogers.com> wrote:
      >> > Thanks for the answer.
      >> >
      >> >    I am stuck with an existing table definition, in a schema, that I
      >> cannot
      >> > modify at this point due to being in production. 
      >> >
      >> >    So, this is the best method I can come up with.
      >> >
      >> >    also....now you have tweaked my curiosity. In addition to the advice
      >> > I
      >> > am seeking, it I could alter the table definition to use some form of

      >> > auto-increment, how would I retrieve the generated value in iBatis?
      >> >
      >> >    So.....I now have two questions.
      >> >
      >> > thanks,
      >> > Ediwn
      >> >
      >> > ----- Original Message -----
      >> > From: "Larry Meadors" < lmeadors@apache.org>
      >> > To: < user-java@ibatis.apache.org>
      >> > Sent: Friday, September 15, 2006 10:14 AM 
      >> > Subject: Re: finding unique keys
      >> >
      >> >
      >> > > One question: Why not just let the database do it and have it tell

      >> > > you
      >> > > the generated key? 
      >> > >
      >> > > Larry
      >> > >
      >> > >
      >> > > On 9/15/06, Edwin Lukaweski < serjann@rogers.com> wrote:
      >> > >>
      >> > >>
      >> > >> Hi:
      >> > >>
      >> > >>     I have a situation for which I need some advice while using

      >> > >> iBatis.
      >> > >>
      >> > >>     What I would like to do is:
      >> > >>
      >> > >>     1) generate a unique UUID style value in my Java program

      >> > >>
      >> > >>     2) lock a table, say tabxx
      >> > >>
      >> > >>     3) SELECT on the table to see if the UUID exists as a key
      >> > >> 
      >> > >>     4) if so, add 1 to the key and go to step 3
      >> > >>
      >> > >>     5) if the key does NOT exist, insert the record
      >> > >>
      >> > >>     6) unlock the table 
      >> > >>
      >> > >>     Can anyone get me advice as to how to do this with iBatis?
      >> > >>
      >> > >> Thanks, very musch, in advance
      >> > >> 
      >> > >> Edwin
      >> > >>
      >> > >
      >> >
      >> >
      >> >
      >>
      >>
      >







Mime
View raw message