Kathey Marsden wrote:
Lance J. Andersen wrote:
Kathey Marsden wrote:
There was a discussion started in DERBY-401 on this but I thought I
would submit it as a separate thread. The JDBC 4.0 spec says in
section 8.5.1..
"A NonTransient SQLException must extend the class
SQLNonTransientException. A NonTransient SQLException would be thrown
in instances where a retry of the same operation would fail unless
the cause of the
SQLException is corrected. After a NonTransient SQLException occurs,
the
application can assume that the connection is still valid. For
SQLState class values
that indicate non-transient errors but which are not specified in
the following table,
an implementation may throw an instance of the class
SQLNonTransientException."
TABLE 8-1 specifies which NonTransientSQLException subclass must be
thrown
for a a given SQLState class value:
TABLE 8-1 NonTransientSQLExeceptions Subclasses
SQL State Class SQLNonTransientException Subclass
.....
08 SQLNonTransientConnectionException
.....
Derby has quite a few exceptions which are SESSION_SEVERITY or
greater which are not SQLState Class '08'. These exception cause
loss of connection by the application. There is a list at the
bottom of this mail. I thought all of these should be
SQLNonTransientConnectionExceptions,
SQLNonTransientConnectionException aligns with SQL State class value
08 from 23.1, table 32 of the sql2003 spec.
Thank you Lance for looking at this.
The DRDA Spec section 8.1 defines SQLState mappings to 58XXX which
don't fall into table 32 and would seem to conflict with the 08006
exceptions. Any thoughts on what to do with these?
I have not looked at the DRDA spec, but i was puzzled by the mapping
based on table 32. I really cannot do specific mappings for specs like
DRDA in JDBC or I have to do the same for other protocols such as TDS.
I just do not see where DRDA came up with 58 as a valid class value?
Of course, it could be buried in another chapter of SQL2003 in another
document.
regards
lance
Kathey