Re: Question for Java developers on Hibernate

I use this in a dev environment to catch errors and sql text:
 
CREATE TABLE stats$error_log (
        err_dt          TIMESTAMP,
        db_user         VARCHAR2(30),
        msg_stack       VARCHAR2(2000),
        sqltxt          VARCHAR2(1000))
tablespace users;
 
CREATE OR REPLACE TRIGGER log_server_errors
  AFTER SERVERERROR
  ON DATABASE
DECLARE
          v_sqltext VARCHAR2(1000);
          nl_sqltext ora_name_list_t;
  BEGIN
          -- Capture entire error text
          FOR i IN 1 .. ora_sql_txt(nl_sqltext) LOOP
            v_sqltext := v_sqltext || nl_sqltext(i);
          END LOOP;
          INSERT INTO STATS$ERROR_LOG
          (err_dt, db_user, msg_stack, sqltxt)
          VALUES
          (systimestamp,
           sys.login_user,
           dbms_utility.format_error_stack, v_sqltext);
  END log_server_errors;
/
 
You can change the tablespace to one that's convenient to use (in our 
environment USERS is there but unused).

David Fitzjarrell


From: "Blanchard, William G" <William.Blanchard@xxxxxxxxxxxxx>
To: cicciuxdba@xxxxxxxxx; oracle-l-freelists <oracle-l@xxxxxxxxxxxxx>
Sent: Thursday, July 28, 2011 9:00 AM
Subject: RE: Question for Java developers on Hibernate


This has everything to do with lazy or incompetent developers and nothing to do 
with Java or Hibernate.  You can log the sql statements using log4j or via a 
configuration property.
 
 
WGB
 
From:oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Guillermo Alan Bort
Sent: Thursday, July 28, 2011 9:47 AM
To: oracle-l-freelists
Subject: Question for Java developers on Hibernate
 
So... I'm very annoyed today with one of out beloved developers...

Due to some "security" measures (in fact it was a political issue) we had to do 
a database refresh and upgrade all in one step using expdp. It's not all that 
bad, but the dev team that is supposed to use the new database is having a lot 
of trouble with the new DB (everything from synonyms to grants had to be 
reviewed, thank god for TOAD's "compare database" feature).

The problem is that the database was refreshed from the production DB and the 
old dev DB had a few modifications, so basically now they are having trouble 
with the dev version of the app (missing columns/tables?). 

The app is a java monster that uses hibernate to connect to Oracle (did I ever 
mention my aversion to frameworks?) and when I asked exactly WHAT table was 
missing the dev team didn't seem to have an answer, all they are getting is 
ORA-942... so I asked for the SQL Query and the reply was that they are using 
hibernate and that it doesn't allow them to see the queries.

I honestly know very little about java and even less about hibernate, but there 
must be a way to see this (other that tracing the session)... so my question to 
those of you who know hibernate or work with hibernate is how do you see what 
query the framework is executing?

and if hibernate doesn't actually have a way to easily log what its doing... 
well I'm amazed that anyone would choose it for production use.

thanks :-)
Alan.-
_____________

The information contained in this message is proprietary and/or confidential. 
If you are not the intended recipient, please: (i) delete the message and all 
copies; (ii) do not disclose, distribute or use the message in any manner; and 
(iii) notify the sender immediately. In addition, please be aware that any 
message addressed to our domain is subject to archiving and review by persons 
other than the intended recipient. Thank you.
_____________

Other related posts: