|
That was easy.....thanks
Edwin
----- Original Message -----
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 <[EMAIL PROTECTED]> 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,
----- Original Message -----
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 <[EMAIL PROTECTED] >
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" <
[EMAIL PROTECTED]> To: <
[email protected]> Sent: Friday, September 15, 2006
11:03 AM Subject: Re: finding unique keys
> +1
;-) > > Larry > > > On 9/15/06, Jeff Butler
<
[EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]>
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" < [EMAIL PROTECTED]> >> > To: <
[email protected]> >> > 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 < [EMAIL PROTECTED]>
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 >> > >> >> > > >>
> >> > >>
> >> >> >
|