openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Linskey (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-184) use DB2 Diagnostic interface to report extended error diagnostics on SQL Exception
Date Wed, 28 Mar 2007 16:02:25 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Patrick Linskey updated OPENJPA-184:
------------------------------------


> This message will be appended to the persistence exception 
> error message already created by OpenJPA and it will be written 
> to SQL logging channel (if active).

I've found that doing logging and then throwing the same content in an exception becomes confusing.
I'd prefer to see the core code only throw the exception. I believe that we discussed putting
code in place that always logs all exceptions at OpenJPA's boundaries a while ago; I prefer
that solution for people that can't manage to get exceptions logged / handled properly by
their own frameworks. Thoughts?

> org.apache.openjpa.jdbc.sql.SQLException class is modified so 
> in the event of an exception if the Dictionary is DB2, to call the Dictionary 
> routines above.

I'd prefer not to see DB2-specific logic put into SQLException. How about changing SQLException
to always call some new method in DBDictionary, and just only do something in the method in
DB2Dictionary?

> use DB2 Diagnostic interface to report extended error diagnostics on SQL Exception
> ----------------------------------------------------------------------------------
>
>                 Key: OPENJPA-184
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-184
>             Project: OpenJPA
>          Issue Type: New Feature
>         Environment: DB2 database
>            Reporter: David Wisneski
>
> When using DB2 database and the SQLException occurs 
> if the SQLException instance supports the DB2Diagnosable interface, 
> extended error information from the SQLCA will be written to the SQL channel. 
> The message format produced by DB2Diagnosable writer is
>  
> 	 SQLCA OUTPUT[Errp=SQLDMISR, Errd=[-2146893819, 5, 0, 0, -957, 0]]
> Errp is the name of the DB2 module that detected the error and Errd are 6 integers of
diagnostic information, SQLWARN are 6 characters 
> of warning flags..  Often this additional information can be used by an administrator
in doing problem determination.
> This message will be appended to the persistence exception error message already created
by OpenJPA
> and it will be written to SQL logging channel (if active).
> DB2Dictionary class is modified to use java reflection on the SQLException instance to
determine 
> if it supports DB2Diagnosble methods "getErrp" and if so 
> it invokes the methods to retrieve Errp and Errd fields, formats and logs the error message.
> Reflection is used so that the DB2Dictionary does not contain any compile time or runtime

> dependency on the DB2 jdbc driver.  If the DB2Diagnosable methods do not exist on the
SQLException
> instance,  no extended error information is logged.  
> org.apache.openjpa.jdbc.sql.SQLException class is modified so in the event of an exception

> if the Dictionary is DB2, to call the Dictionary routines above.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message