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 <jeffgbutler@gmail.com>
> *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
> > >> > >>
> > >> > >
> > >> >
> > >> >
> > >> >
> > >>
> > >>
> > >
> >
> >
> >
>
|