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




Reply via email to