Closing a Datasource

Hi,
we're just upgrading from Oracle9.2 to Oracle11.2 and in this process also swap out the old classes12.jar for the newer ojdbc6.jar Release 11.2.
Now I notice that the OracleDataSource.close() Method is deprecated. Does it still do anything? I'm asking because we have a Test that closes an old DataSource and creates a new one. But upon trying to get Connections from the newly created DataSource, we get an error stating that a ConnectionCache with this name already exists. I assume the old DataSource still exists with a Connection Cache although we called the close() method.
Does anyone know how to close an OracleDataSource? Or how to release its ConnectionCache?
Dirk

this is way to less information. if you use DataSources, note that conn.close() does not close the connection but just informs the DataPool that this connection is not needed anymore so that it can be reused.

Similar Messages

  • Connection object is getting closed before the stored procedure is complete

    Hi Everyone,
    I am facing an issue where by the java connection object is closed before the stored procedure it is connected to is complete.
    I am not sure if the fault is in SP or Connection pool.
    After spending some time, i could able to figure out that the procedure is taking a tad more time for processing as there are over 1000 records in the database tables it is dealing with.
    Would that be a potential cause ? or Am i required to handle it in Java only ?
    I want to know what could be possible causes for this issue ?
    Please Help.
    FYI,
    The following are the logs which says,
    XYZ (Stored Procedure) : Start Time is 1349217771302 Procedure started here
    INFO >2012-10-02 18:43:09,935 [ConnectionPool]: Closing connection: DataSource [ABC](684)
    INFO >2012-10-02 18:46:03,512 DAO[main]: XYZ : End Time is 1349217963512 Procedure ended here
    Thanks in Advance.

    Hi ,
    Thank you all for your quick response.
    Well it's my bad i dint provide you any code to look into thinking that i am dealt with a gen issue and also i am too paranoid to post any code i am dealing with in the forum (i am sorry).
    But here is some information for you,
    Database : Oracle 10g
    Java: 1.5 version
    We are using only One connection object for the entire java backend process .
    The SP is of over 1000 lines of code which for obvious reasons i can't past it here but this morning i figured out an issue in SP where by a query taking way more than usual time to execute which led to SP's poor performance and also the reason for why it is taking very long time than usual.
    This query is a simple SELECT query where it is trying fetch over 2000 records from a table of over 3 million records. The execution time is over 30-40 seconds which is the root cause of SP's poor performance.
    When i eliminated this from the logic and ran the query it could able process (inserting huge volume around 5000 records of data) in 1 second instead of 3-4 minutes earlier.
    I tried to replicate this issue (which occurred in our production server) in my local system but no luck as there was no connection issue here but only the substantial time difference.
    We are using a customized connection pool which is as follows,
    I am not sure what's going on here because it seems to be greek and latin to me.
    What we are doing in our DAO is we are using method of the below ConnectionPool.getInstance(SCHEMA) to get the connection object.
    Looking forward to seeking advice from you on how connection pool in general works.
    public class ConnectionPool extends Thread
         private static final ConnectionPool me = new ConnectionPool();
         private Hashtable dataSources = new Hashtable();
         private static final int MIN_TIMEOUT = 0;
         private long timeOut;
         private Hashtable cons = new Hashtable();
         private Hashtable active = new Hashtable();
        private boolean trace = false;
         private ConnectionPool()
              registerDataSources();
              this.timeOut = PropertyManager.getIntProperty("connectionPool.timeOut", MIN_TIMEOUT);
              setName("ConnectionPool");
              setPriority(MIN_PRIORITY);
              if (timeOut > 0)
                   start();
         private void registerDataSources()
            dataSources.clear();
              Properties props = System.getProperties();
              String app = props.getProperty("X", "Y");
              for(Enumeration e = props.keys(); e.hasMoreElements();)
                   String key = (String) e.nextElement();
                   if (key.startsWith(app + ".connectionPool.dataSources.") && key.endsWith(".selector"))
                        String ds = key.substring((app + ".connectionPool.dataSources.").length(), key.length() - ".selector".length());
                        LogManager.logStatus("Registering [" + ds + "] (selector) " +
                                  props.getProperty(app + ".connectionPool.dataSources." + ds + ".selector"));
                        dataSources.put(ds,
                             new GenDataSource(
                                  ds,
                                  props.getProperty(app + ".connectionPool.dataSources." + ds + ".selector")));
                        continue;                    
                   if (!key.startsWith(app + ".connectionPool.dataSources.") || !key.endsWith(".server"))
                        continue;
                   String ds = key.substring((app + ".connectionPool.dataSources.").length(), key.length() - ".server".length());
                   try
                        LogManager.logStatus("Registering [" + ds + "] " +
                                  props.getProperty(app + ".connectionPool.dataSources." + ds + ".url"));
                        loadDriver(props.getProperty(app + ".connectionPool.dataSources." + ds + ".driver"));
                   catch (Exception se)
                        LogManager.logException(se);
                   GenDataSource genDataSource = new GenDataSource(
                             ds,
                             props.getProperty(app + ".connectionPool.dataSources." + ds + ".useMatrix", "false").equals("true"),
                             props.getProperty(app + ".connectionPool.dataSources." + ds + ".server"),
                             props.getProperty(app + ".connectionPool.dataSources." + ds + ".url"),
                             props.getProperty(app + ".connectionPool.dataSources." + ds + ".user"),
                             props.getProperty(app + ".connectionPool.dataSources." + ds + ".password"));
                   // Set the schema if schema is defined in settings.xml file
                   if (genDataSource != null && props.getProperty(app + ".connectionPool.dataSources." + ds + ".schema") != null ) {
                        genDataSource.setSchema(props.getProperty(app + ".connectionPool.dataSources." + ds + ".schema"));
                   dataSources.put(ds, genDataSource);
         public static Connection getConnection(String dataSource) throws SQLException
              GenDataSource ds = (GenDataSource) me.dataSources.get(dataSource);
              if (me.timeOut <= 0)
                   if (ds.getSchema() != null )
                        return updateSchema ( ds);
                   else
                        return DriverManager.getConnection(ds.url(), ds.user(), ds.password());
              String key = dataSource;
              Stack free;
              GenPooledConnection pc = null;
              synchronized (me)
                   if ((free = (Stack) me.cons.get(key)) == null)
                        free = new Stack();
                        me.cons.put(key, free);
                   if (!free.empty())
                        pc = (GenPooledConnection) free.pop();
                   if (pc == null)
                        if (ds.getSchema() != null )
                             pc = new GenPooledConnection("DataSource [" + key + "]",
                                                 updateSchema ( ds), free, me.active, me.timeOut, me.trace);
                        else
                             pc = new GenPooledConnection("DataSource [" + key + "]",
                                       DriverManager.getConnection(ds.url(), ds.user(), ds.password()), free, me.active, me.timeOut, me.trace);
                   else
                        pc.touch();
              LogManager.logStatus("Using " + pc);
              me.active.put(pc.id(), pc);
              return pc;
         public void run()
              for(;;)
                   try
                        sleep(60 * 1000);
                        synchronized (me) {
                             for(Enumeration e = cons.elements(); e.hasMoreElements();)
                                  Stack stack = (Stack) e.nextElement();
                                  for (int i = stack.size()-1; i >= 0; i--)
                                       GenPooledConnection pc = (GenPooledConnection) stack.elementAt(i);
                                       if (pc.isExpired())
                                            stack.removeElementAt(i);
                   catch (Exception e)
                        GenUtil.reportException(e);
         private static Connection updateSchema ( GenDataSource ds) throws SQLException {
              Connection con = DriverManager.getConnection(ds.url(), ds.user(), ds.password());
              if (ds.getSchema() != null ) {
                   String sql = "SET SCHEMA  " + ds.getSchema()+ ";";
                   LogManager.logDebugMessage("updating the Schema with sql statement " + sql);
                   PreparedStatement ps = con.prepareStatement(sql);
                   ps.execute();
                   ps.close();
              return con;
    }Thanks.
    Edited by: EJP on 5/10/2012 14:09: added {noformat}{noformat} tags. Please use them.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • BUG: Business Components using Datasources on Websphere - statement closed

    Hi,
    This is an unusual combinatation, we are deploying business components projects on websphere with a SQL Server database. This was originally deployed all to Oracle. We have managed to convert the project sucessfully (JDeveloper 10.1.3) and on Websphere, however when we moved our application module configurations (bc4j.xcfg) to use JNDI data sources which works in Jdeveloper, we are encountering problems using websphere with business components and datasources.
    The statement closed error occurs when trying to calling executequery() method on the view object, not the first time the JSP page is accessed, but the second time. Refresh page all is good. Access page again error occurs. Very consistent.
    Our code will often do applicationmodule.findViewObject("name"), if not found then create it, otherwise use the vo and kapow bombs out on the executequery method if reusing the view object.
    ERROR
    DSRA9110E: Statement is closed.oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation.
    Statement: SELECT Groups.GROU_ID FROM GROUPS Groups WHERE (GROU_ID=1)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java(Compiled Code))
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java(Compiled Code))
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java(Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java(Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java(Inlined Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java(Inlined Compiled Code))
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java(Compiled Code))The datasource uses the connection pooling driver class com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource.
    Ampooling is on. It appears the jdbc prepared statement is being closed but bc4j is expecting to still be open?
    Any ideas on diagnosing the issue or app module config changes greatly appreciated.
    Mark

    Hi Steve,
    This is not a composition association. Actually, this is an association from a table to an intersection (many-to-many) table. The code in my service is based on the SRDemo, see SRServiceImpl#updateSkillsForCurrentStaff(List) and is called on a save button from a shuttle page.
    The current master is the master I want it to belong to. The link to the master gets correctly saved in the database (just as in the SRDemo). We can also navigate from the master view row to the find the detail view row using the generated RowIterator. However, this does not work from the master entity row to the detail entity row. The problem is really at the entity level.
    Thanx
    Olivier

  • Database connection timeouts and datasource errors

    Connections in the pool randomly die overnight. Stack traces show that for some reason, the evermind driver is being used even though the MySql connection pool is specified.
    Also, the evermind connection pool is saying connections aren't being closed, and the stack trace shows they're being allocated by entity beans that are definitely not left hanging around.
    Sometimes we get non-serializable errors when trying to retrieve the datasource (this is only after the other errors start). Some connections returned from the pool are still good, so the application limps along.
    EJBs and DAOs both use jdbc/SQLServerDSCore.
    Has anyone seen this problem?
    <data-sources>
         <data-source
              class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"
              name="SQLServerDSCore"
              location="jdbc/SQLServerDSCore"
              xa-location="jdbc/xa/SQLServerXACore"
              ejb-location="jdbc/SQLServerDSCore"
              connection-driver="com.mysql.jdbc.Driver"
              min-connections="5"
              username="xxx"
              password="xxx"
              staleness-timeout="3600"
              alive-poll-query="SELECT 1 FROM medispan"
              url="jdbc:mysql://1.2.3.4:3306/dbo?autoReconnect=true&autoReconnectForPools=true&cachePrepStmts=true&is-connection-validation-required=true"
              inactivity-timeout="30"
         >
              <property name="autoReconnect" value="true"/>
              <property name="autoReconnectForPools" value="true"/>
              <property name="is-connection-validation-required" value="true"/>
              <property name="cachePrepStmts" value="true"/>
         </data-source>
    </data-sources>

    Rick,
    OC4J 9.0.4.0.0 - BTW, do you know of any patches?As far as I know, there are no patches for the 9.0.4
    production version of OC4J stand-alone.
    I'm using container managed persistence,It was not clear to me, from your previous post, that you
    are using CMP entity beans.
    I found staleness-timeout and alive-poll-query
    somewhere on a website when trying to track this
    down. Here's four sources:Those sources refer to OrionServer -- and an older version, too, it seems.
    Like all other Oracle products that start out as somebody
    else's -- including, for example, JBuilder (that became "JDeveloper"), Apache Web Server (that became "Oracle HTTP Server") and TopLink -- their development paths diverge, until, eventually, there is absolutely no similarity between them at all. Hence, the latest versions of OC4J and "OrionServer" are so different, that you cannot be sure that something that works for "OrionServer" will work for OC4J.
    I recall reading something, somewhere, sometime about configuring OC4J to use different databases (other than Oracle), but I really don't remember any details (since it was not relevant to me, because we only use Oracle database). In any case, it is possible to use a non-Oracle database with OC4J.
    Good Luck,
    Avi.

  • Getting Error:closing a connection for you. Please help

    Hello All,
    I'm using jboss3.2.6. I used ejb2.1 (session bean and entity bean[BMP]). I did few data base transations in cmp and few in simple data source connection.
    I'm getting below errors occasionally
    'No managed connection exception
    java.lang.OutOfMemoryError: Java heap space
    [CachedConnectionManager] Closing a connection for you. Plea
    se close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@11ed0d
    5
    I've given below my dao connection code here,
    package com.drtrack.util;
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    public class DAOUtil {
    private static DataSource _ds;
    public Connection con;
    public DAOUtil() throws SQLException {
    try {
    if (_ds == null)
    assemble();
    if(_ds != null && con == null) {
    con = _ds.getConnection();
    }catch(SQLException ex) {
    ex.printStackTrace();
    private void assemble() {
    Context ic = null;
    try {
    ic = new InitialContext();
    DrTrackUtil drutil = new DrTrackUtil();
    _ds = (DataSource) ic.lookup("java:/" + drutil.getText("SOURCE_DIR"));
    drutil = null;
    }catch (Exception e) {
    e.printStackTrace();
    }finally {
    try {
    ic.close();
    }catch(NamingException ne) {}
    public void closeConnection() throws SQLException {
    if(con != null)
    con.close();
    con = null;
    }below is the code with get connection and doing transaction in it.
    public static AccountMasterValueBean getAccountMasterByAcctId(String acctId) {
    AccountMasterValueBean bean = null;
    DAOUtil dao = null;
    CallableStatement cst = null;
    ResultSet rs = null;
    try {
    dao = new DAOUtil();
    cst = dao.con.prepareCall(DrTrackConstants.MSSQL_USP_ACCOUNTMASTER_BY_ACCTID);
    cst.setObject(1, acctId);
    rs = cst.executeQuery();
    if(rs != null && rs.next()) {
    bean = new AccountMasterValueBean(
    Integer.valueOf(rs.getString("accountkeyid")),
    rs.getString("latitude"),
    rs.getString("longitude"));
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    if(rs != null){
    try {
    rs.close();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    rs = null;
    if(cst != null) {
    try{
    cst.close();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    cst = null;
    if(dao != null) {
    try {
    dao.closeConnection();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    dao = null;
    return bean;
    }I closed connections, resultsets and statements properly.
    Why I'm getting these errors.? Where I'm doing wrong. ? Please help me. I have to fix them ASAP.
    Thanks.

    Hello All,
    I'm using jboss3.2.6. I used ejb2.1 (session bean and entity bean[BMP]). I did few data base transations in cmp and few in simple data source connection.
    I'm getting below errors occasionally
    'No managed connection exception
    java.lang.OutOfMemoryError: Java heap space
    [CachedConnectionManager] Closing a connection for you. Plea
    se close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@11ed0d
    5
    I've given below my dao connection code here,
    package com.drtrack.util;
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    public class DAOUtil {
    private static DataSource _ds;
    public Connection con;
    public DAOUtil() throws SQLException {
    try {
    if (_ds == null)
    assemble();
    if(_ds != null && con == null) {
    con = _ds.getConnection();
    }catch(SQLException ex) {
    ex.printStackTrace();
    private void assemble() {
    Context ic = null;
    try {
    ic = new InitialContext();
    DrTrackUtil drutil = new DrTrackUtil();
    _ds = (DataSource) ic.lookup("java:/" + drutil.getText("SOURCE_DIR"));
    drutil = null;
    }catch (Exception e) {
    e.printStackTrace();
    }finally {
    try {
    ic.close();
    }catch(NamingException ne) {}
    public void closeConnection() throws SQLException {
    if(con != null)
    con.close();
    con = null;
    }below is the code with get connection and doing transaction in it.
    public static AccountMasterValueBean getAccountMasterByAcctId(String acctId) {
    AccountMasterValueBean bean = null;
    DAOUtil dao = null;
    CallableStatement cst = null;
    ResultSet rs = null;
    try {
    dao = new DAOUtil();
    cst = dao.con.prepareCall(DrTrackConstants.MSSQL_USP_ACCOUNTMASTER_BY_ACCTID);
    cst.setObject(1, acctId);
    rs = cst.executeQuery();
    if(rs != null && rs.next()) {
    bean = new AccountMasterValueBean(
    Integer.valueOf(rs.getString("accountkeyid")),
    rs.getString("latitude"),
    rs.getString("longitude"));
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    if(rs != null){
    try {
    rs.close();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    rs = null;
    if(cst != null) {
    try{
    cst.close();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    cst = null;
    if(dao != null) {
    try {
    dao.closeConnection();
    }catch(SQLException se) {
    logger.info("SQL Error: " + se);
    finally {
    dao = null;
    return bean;
    }I closed connections, resultsets and statements properly.
    Why I'm getting these errors.? Where I'm doing wrong. ? Please help me. I have to fix them ASAP.
    Thanks.

  • Closing connection

    Hello, I work with jdeveloper. I had 10.1.2 which used java version 1.4.2 and I used a simple connection class to call stored procedures in an Oracle db. I have jdeveloper 10.1.3 which uses java version 1.5.0 and the same class fails when I try to use ResultSets. I use to close the connection then return the resultset to whatever called it, now it tells me the connection is already closed when I try to access the resultset. I know this is why it's failing now, because it works if I don't close anything.
    Can someone tell me how/why this has changed, and what I can do about it?
    Thanks
    Classes that use to work:
    public class dbConn {
    public dbConn() {
    public static Connection getCon()
    InitialContext ctx = null;
    DataSource ds = null;
    Connection conn = null;
    try {
    ctx = new InitialContext();
    ds = (DataSource) ctx.lookup("jdbc/app1");
    conn = ds.getConnection();
    catch(Exception e){
    System.out.println("Connection Error");
    e.printStackTrace();
    return conn;
    public static void closeCon(CallableStatement proc, Connection conn)
    try {
    proc.close();
    conn.close();
    catch(SQLException e){
    System.out.println("Error closing connections: "+e);
    public static void main()
    public static ResultSet GenResSet(String uname, String procName)
    Connection conn = null;
    CallableStatement proc = null;
    ResultSet rs = null;
    String callString = "{ call "+procName+"(?,?) }";
    try {
    conn = dbConn.getCon();
    proc = conn.prepareCall(callString);
    proc.registerOutParameter(1,OracleTypes.CURSOR);
    proc.setString(2, uname);
    proc.execute();
    rs = (ResultSet)proc.getObject(1);
    catch(SQLException e) {
    System.out.println("sql error");
    e.printStackTrace();
    finally {
    dbConn.closeCon(proc,conn);
    return rs;
    }

    Ok thanks. So I can learn.. what exactly is my
    misconception about how it works? My beginner view is
    you stored a cursor set from a database query in a
    result set then you could iterate through it. Why
    does it have to be stored in a collection first? I
    was closing the connection before I returned it, or
    so I thought. It went through the finally code to
    close everytime, but I could still use the results.
    Maybe it wasn't closing them?That's exactly your misconception. After you close the connection, your ResultSet is not valid. In simple words, you need a live connection to fetch values from the ResultSet. In your method, you close the connection in the finally block and return the resultset. You will need to hold the results in something else, which would be some suitable collection.

  • Difference between closing the connection before and after committing user transaction?

              I was wondering what's the difference between closing the connection before committing
              the transaction versus closing the connection after committing the transaction?...
              for e.g....
              Scenario 1.........
              UserTransaction useretran;
              usertran.begin();
              Connection con = datasource.getCOnnection();
              // do bunch of stuff...
              conn.close();
              usertran.commit()
              Scenario 2...
              UserTransaction useretran;
              usertran.begin();
              Connection con = datasource.getCOnnection();
              // do bunch of stuff...
              usertran.commit()
              conn.close();
              thanks....
              Srini
              

    Hi. As long as you're sure there's a transaction going on, and the connection
    is a transaction-aware object (from a TxDataSource), either will be fine.
    In the first scenario the actual semantics of the close() call are less than
    normal, because we really don't close the connection or return it to the
    pool until the actual transaction commits, and in the second case, we have
    already taken the connection out of your service as of the commit().
    The second scenario is the usual coding style. If there's ever a chance your
    code will get non-transaction-aware connections, it is crucial to close
    connections, and I always recommend putting the close() in a finally block
    so it's guaranteed to happen.
    Joe
    srinivas wrote:
    I was wondering what's the difference between closing the connection before committing
    the transaction versus closing the connection after committing the transaction?...
    for e.g....
    Scenario 1......... UserTransaction useretran; usertran.begin(); Connection con =
    datasource.getCOnnection(); // do bunch of stuff... conn.close(); usertran.commit()
    Scenario 2... UserTransaction useretran; usertran.begin(); Connection con = datasource.getCOnnection();
    // do bunch of stuff... usertran.commit() conn.close();
    thanks....
    Srini

  • Connection is closed?

    Hi, i am using tomcat 4.1.24 and MS Access 2000 to create a web application. I try to use datasource to make database connection. After start the tomcat, i run my application. First i login to the application and then go to create user. However, fail to create user due to CONNECTION IS CLOSED (error message from SQLException).
    Questions:
    1)Why the connection is closed just after the logging is successful?
    2)Time out problem? How to configure the timeout of connection?
    Thanks.

    I'm sorry not having used tomcat I can not give you any more suggestions. When I searched (using the advanced search against the forums) I did see several answers dealing with tomcat timeout. I still do not think it is a timeout problem. I could be wrong but any connections including TCP connections, I have dealt with do not timeout in the time span you have.
    Try using the advanced search and see if any of the answers point the way.
    rykk

  • Closing the Report Viewer causes the application to hang

    Hi,
    Since a few days we are experiencing some problems with the Crystal Reports viewer. When closing a report viewer in our application, the application hangs for a few minutes. The strange thing is, that it only seems to happen on Windows 7 and Windows 2008 R2 Server.
    Our application with the integrated Crystal Report Viewer is running on 2 application servers :
    - Windows 2008 Server, versie 6.0 Build 6002, Service Pack 2
    - Windows 2008 R2 Server versie 6.1, Build 7600
    Crystal Reports version installed on both servers : 12.01.0007.1144
    On the 2008 Server, the application works correctly.
    On the 2008 R2 server, the application hangs for about 5 minutes while closing the report preview window.
    Both server have exactly the same version of Crystal Reports and the same application version.
    I'm having the same issue on a Windows 7 x64 (6.1 Build 7600).
    I've installed all updates and hotfixes up to SP3 Fix Pack (12.3.3.812 / 12.3.2003.812) but I'm still having the same problem.
    We didn't have this problem until a few days ago, so I assume it has something to do with a windows update which only affects Windows 7 and Windows 2008 R2.
    Please advice us with a possible workaround, because our application is distributed to a few thousand users ...
    Some more debug info :
    This is the call of from the main thread when the application hangs :
         [Managed to Native Transition]     
    >     mscorlib.dll!System.__ComObject.ReleaseSelf() + 0x5 bytes     
         mscorlib.dll!System.Runtime.InteropServices.Marshal.ReleaseComObject(object o) + 0x8b bytes     
         CrystalDecisions.Shared.dll!CrystalDecisions.Shared.SharedUtils.ReleaseComObject(object obj = {CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass}) + 0x75 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose(bool bDisposeManaged = true) + 0x1a2 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose() + 0x32 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.DisconnectEventRelay() + 0xfc bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.InternalClose(bool bSetupForNextReport = false, bool bAutoClose = true) + 0x10e bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Dispose(bool bDisposeManaged = true) + 0xad bytes     
         System.dll!System.ComponentModel.Component.Dispose() + 0x12 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.ClearCache(bool clearDocument = true) + 0x9d bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.InternalClose(bool bSetupForNextReport = true) + 0x81 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.Close() + 0x3f bytes     
         SyDelSoftControlLibCrystalReports.dll!SyDelSoft.ControlLib.CrystalReports.cReportForm.Dispose(bool disposing = true) + 0x55 bytes     
         SDProjects.exe!SDProjects.GUI.ReportForm.Dispose(bool disposing) + 0x38 bytes     
    SharedUtils.ReleaseComObject
    Kind regards,
    Frederic Hoornaert

    CrystalReportsDisposeIssue.crpe.Diagnostics.0.log
    --> Form3 closed
    ..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:17"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"7"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"6"
    N/A:-1,Closing engine,Elapsed Time,"2"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"6"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"5"
    N/A:-1,Closing engine,Elapsed Time,"2"
    --> Form2 closed
    ..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:52"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:52"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"4"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"3"
    N/A:-1,Closing engine,Elapsed Time,"2"
    --> Form1 closed..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:40:29"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"2"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"1"
    N/A:-1,Closing engine,Elapsed Time,"2"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"1"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"0"
    N/A:-1,Closing engine,Elapsed Time,"100017"
    CrystalReportsDisposeIssue.crpe.functions.0.log
    0xfb8     17:39:17.871          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:22>     IN          21     <==
    0xfb8     17:39:17.871     0     0     PESetUserSessionInfo               0     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:22>          21     <==
    0xfb8     17:39:17.874          3     PEClosePrintJob     report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt          0     jobN:3     IN          22     <==
    0xfb8     17:39:17.874     36     3     PEClosePrintJob     report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt          0     OUT     jobN:3          22     <==
    0xfb8     17:39:17.913          0     PECloseEngine               0     void     IN          22     <==
    0xfb8     17:39:17.913     3     0     PECloseEngine               0     OUT     void          22     <==
    0xfb8     17:39:17.923          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:39:17.923     3     0     PECloseEngine               0     OUT     void          0     <==
    0xfb8     17:39:52.421          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:23>     IN          0     <==
    0xfb8     17:39:52.421     0     0     PESetUserSessionInfo               1032     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:23>          0     <==
    0xfb8     17:39:52.423          1     PEClosePrintJob     report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt          0     jobN:1     IN          0     <==
    0xfb8     17:39:52.423     15     1     PEClosePrintJob     report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt          0     OUT     jobN:1          0     <==
    0xfb8     17:39:52.441          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:39:52.441     3     0     PECloseEngine               1032     OUT     void          0     <==
    0xfb8     17:40:29.281          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:24>     IN          0     <==
    0xfb8     17:40:29.281     0     0     PESetUserSessionInfo               1032     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:24>          0     <==
    0xfb8     17:40:29.283          2     PEClosePrintJob     report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt          0     jobN:2     IN          0     <==
    0xfb8     17:40:29.283     24     2     PEClosePrintJob     report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt          0     OUT     jobN:2          0     <==
    0xfb8     17:40:29.310          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:40:29.310     2     0     PECloseEngine               1032     OUT     void          0     <==
    0x1568     17:40:29.315          0     PECloseEngine               0     void     IN          0     <==
    0x1568     17:40:29.315     100018     0     PECloseEngine               0     OUT     void          0     <==

  • Opening and closing stock figure

    Hi Experts,
    How can i get the opening stock figure and closing stock figure for one month in SAP Buiness one 8.8?

    Hi,
    I found this on the forum; try this:
    DECLARE @FromDate DateTime
    DECLARE @ToDate DateTime
    /* SELECT T0.DocDate FROM OINM T0 where T0.DocDate >=[%0] */
    SET @FromDate = [%0]
    /* SELECT T0.DocDate FROM OINM T0 where T0.DocDate <=[%0] */
    SET @ToDate = [%1]
    Select X.DocDate, X.ItemCode,
    ((Select isnull(sum(InQty-OutQty),'0')From OINM T0 Where T0.ItemCode=X.ItemCode And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate < X.DocDate)) As 'OpeningStock',
    IsNull(max(X.price),0) as 'OpeningUnitPrice',
    ((Select isnull(sum(InQty-OutQty),'0')From OINM T0 Where T0.ItemCode=X.ItemCode And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate < X.DocDate)) *
    IsNull(max(X.price),0) AS 'OPENING VALUE',
    IsNull(sum(X.InQty),0) As 'Received Qty',
    IsNull(max(X.price),0) as 'Purchase  Unit Price',
    IsNull(sum(X.InQty),0) *
    IsNull(max(X.price),0) as 'PURCHASE VALUE',
    IsNull(sum(X.OutQty),0) As 'Consumed Qty',
    IsNull(max(X.price),0) as 'Sale Unit Price',
    IsNull(sum(X.OutQty),0) *
    IsNull(max(X.price),0) AS 'SALE VALUE',
    ((Select isnull(sum(InQty-OutQty),'0') From OINM T0 Where T0.ItemCode=X.ItemCode And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate < X.DocDate)+
    (Select isNULL(sum(T0.InQty),'0') From OINM T0 Where T0.ItemCode=X.ItemCode And T0.DocDate<=X.DocDate And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate = X.DocDate)-
    (Select isNULL(sum(T0.OutQty),'0') From OINM T0 Where T0.ItemCode=X.ItemCode And T0.DocDate<=X.DocDate And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate = X.DocDate)) As 'ClosingStock',
    ((((Select isnull(sum(InQty-OutQty),'0')From OINM T0 Where T0.ItemCode=X.ItemCode And
    (T0.DataSource='I' or T0.DataSource='N') And T0.DocDate < X.DocDate)) *
    IsNull(max(X.price),0)) + (IsNull(sum(X.InQty),0) * IsNull(max(X.price),0)) - (IsNull(sum(X.OutQty),0) *
    IsNull(max(X.price),0))) as 'Final Balance Value'
    FROM OINM X Where ItemCode=X.ItemCode And
    (X.DataSource='I' or X.DataSource='N')
    Group by X.DocDate,X.ItemCode
    Order by X.DocDate
    Hope this helps.
    Thanks,
    Joseph

  • Loosing datasource connection in a server thread

    Hi,
    In a backing bean I start a long term thread that uses the datasource connection taken from application module.
    Everything works fine but after a period of time between one and two hours the connection is lost and server throws a
    <BEA-001112> <Test "SELECT 1 FROM DUAL" set up for pool "AEE2010DS" failed with exception: "java.sql.SQLException: Connection Closed".>
    Is there any way to stop the server from closing the connection that is used in a separate thread, programmatically or using configuration?
    Any comment will be helpful,
    Thanks

    That looks like something external is killing the connection, either the DBMS or a firewall.

  • SQLException: Closed Connection, SQL state [null]; error code [17002]

    Hello All,
    I am supporting a Java 5 project on Tomcat. We've used Spring and Stored Procedure in the project.
    Recently we deployed our application in a GoLive environment and have started seeing Timeout errors in log files. After around two days we also have to restart Tomcat as users are no more able to login to access the application.
    Same application runs fine without any timeout issues on another environment.
    The only difference between two environments is that the Go-Live env has a firewall between Tomcat and Database and the other environment hosts both Tomcat and Database on same machine (i.e. no firewall).
    For GoLive env the only port open on firewall for JDBC connection is 1521 and is used in the connection string url for obtaining the connections.
    When there is a Timeout error, the N/w admin guy observed that the JDBC connection was not attempted on 1521 port, but on some random port which is not open on firewall, due to which the Database server logs also do not show entry for this connection attempt as it gets blocked by the firewall.
    I am not sure why a randam port should be used to connect when a specific port is mentioned in the connection url? Also what can be making this port switching?
    Application uses Apache DBCP with Spring to obtain connections.
    Has anyone experienced similar errors?
    Any suggestions/help on this issue is greatly appreciated!
    Many Thanks,
    CD
    ===============================
    Error Log Extract:
    Error while extracting database product name - falling back to empty error codes
    org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException: Closed Connection
    java.sql.SQLException: Closed Connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.PhysicalConnection.getMetaData(PhysicalConnection.java:1605)
    at org.apache.commons.dbcp.DelegatingConnection.getMetaData(DelegatingConnection.java:247)
    at org.apache.commons.dbcp.DelegatingConnection.getMetaData(DelegatingConnection.java:247)
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.getMetaData(PoolingDataSource.java:231)
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:172)
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:207)
    at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:187)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:126)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:92)
    at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:96)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:294)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:348)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:352)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:356)
    at com.o2.morse.dao.impl.sql.UserDaoImpl.batchLoad(UserDaoImpl.java:371)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
    at $Proxy3.batchLoad(Unknown Source)
    at com.o2.morse.domain.User.doHousekeeping(User.java:667)
    at com.o2.morse.domain.User$$FastClassByCGLIB$$372ff70b.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.domain.User$$EnhancerByCGLIB$$d5ac966a.doHousekeeping(<generated>)
    at com.o2.morse.scheduler.EndOfDay.run(EndOfDay.java:63)
    at com.o2.morse.scheduler.EndOfDay$$FastClassByCGLIB$$3b2d4927.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.scheduler.EndOfDay$$EnhancerByCGLIB$$488a9f86.run(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:248)
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:165)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
    Could not close JDBC Connection
    java.sql.SQLException: Already closed.
    at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:77)
    at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:180)
    at org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection(DataSourceUtils.java:286)
    at org.springframework.jdbc.datasource.DataSourceUtils.releaseConnection(DataSourceUtils.java:247)
    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion(DataSourceTransactionManager.java:297)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.cleanupAfterCompletion(AbstractPlatformTransactionManager.java:754)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:615)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:560)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing(TransactionAspectSupport.java:284)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:100)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
    at $Proxy3.batchLoad(Unknown Source)
    at com.o2.morse.domain.User.doHousekeeping(User.java:667)
    at com.o2.morse.domain.User$$FastClassByCGLIB$$372ff70b.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.domain.User$$EnhancerByCGLIB$$d5ac966a.doHousekeeping(<generated>)
    at com.o2.morse.scheduler.EndOfDay.run(EndOfDay.java:63)
    at com.o2.morse.scheduler.EndOfDay$$FastClassByCGLIB$$3b2d4927.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.scheduler.EndOfDay$$EnhancerByCGLIB$$488a9f86.run(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:248)
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:165)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
    Application exception overridden by rollback exception
    org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [SELECT ID_USER_DETAILS, USERNAME, CREATED_ON, LAST_LOGIN FROM USER_DETAILS  WHERE STATUS = 157 AND SUPERUSER <> 'Y']; SQL state [null]; error code [17002] ; Io exception: Connection timed out; nested exception is java.sql.SQLException: Io exception: Connection timed out
    java.sql.SQLException: Io exception: Connection timed out
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
    at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:820)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
    at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:845)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1313)
    at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
    at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:205)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:333)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:282)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:348)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:352)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:356)
    at com.o2.morse.dao.impl.sql.UserDaoImpl.batchLoad(UserDaoImpl.java:371)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
    at $Proxy3.batchLoad(Unknown Source)
    at com.o2.morse.domain.User.doHousekeeping(User.java:667)
    at com.o2.morse.domain.User$$FastClassByCGLIB$$372ff70b.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.domain.User$$EnhancerByCGLIB$$d5ac966a.doHousekeeping(<generated>)
    at com.o2.morse.scheduler.EndOfDay.run(EndOfDay.java:63)
    at com.o2.morse.scheduler.EndOfDay$$FastClassByCGLIB$$3b2d4927.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:705)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    at com.o2.morse.scheduler.EndOfDay$$EnhancerByCGLIB$$488a9f86.run(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:248)
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:165)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
    Batch Job Failed: org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLException: Closed Connection

    I am using latest Jrockit 16)5, ojdbc6_g.jar,spring.jar Weblogic 10.3 and Oracle 10G 10.2.4 .. whatever but always get "Closed Connection"
    java.lang.Throwable: Closed Connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
    at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:750)
    at oracle.jdbc.OracleConnectionWrapper.createStatement(OracleConnectionWrapper.java:183)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7053)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

  • New error with upgrade jboss/tomcat: "Connection handle has been closed and is unusable"

    Hi,
    This error suddenly appeared when we upgraded from jboss3/tomcat5.0 to jboss4.2/tomcat5.5.
    here's the usecase:
    1) User clicks on report link
    2) Crystal reports web componnent displays screen to fill in report parameters.
    3) user enters parameters and clicks submit
    4) System throws Exception
    The same reports worked fine with jboss 3.2.6/tomcat 5.0. We haven't touched anything in this realm.
    Log Excerpt:
    09:42:18,842 INFO  [datasource] Openning rowset
    09:42:18,904 ERROR [reportdefinition] com.crystaldecisions.reports.queryengine.driverImpl.m: JDBC Error: Connection handle has been closed and is unusable
    09:42:18,905 ERROR [datasource] Failed to open rowset: the query failed to open rowset
    com.crystaldecisions.reports.reportdefinition.datainterface.g: JDBC Error: Connection handle has been closed and is unusable
         at com.crystaldecisions.reports.reportdefinition.datainterface.d.a(Unknown Source)
    To try to narrow down the problem, I've updated the jdbc configuration to
         <track-statements>true</track-statements>   
    here's a recap:
    This Boolean element specifies whether to check for unclosed statements when a connection is returned to the pool. If it is true, a warning message is issued for each unclosed statement. If the log4j category org.jboss.resource.adapter.jdbc.WrappedConnection has trace level enabled, a stack trace of the connection close call is logged as well. This is a debug feature that can be turned off in production.
    Interestingly enough, this error appears slightly upstream:
    (CachedConnectionManager.java:526) - Closing a connection for you.  Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@c76003
    java.lang.Throwable: STACKTRACE
         at
    org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
         at com.crystaldecisions.reports.queryengine.driverImpl.k.a(Unknown Source)
         at com.crystaldecisions.reports.queryengine.driverImpl.o.if(Unknown Source)
         at com.crystaldecisions.reports.queryengine.av.new(Unknown Source)
         at com.crystaldecisions.reports.queryengine.av.byte(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.j.a(Unknown Source)
         at com.crystaldecisions.reports.dataengine.ba.try(Unknown Source)
         at com.crystaldecisions.reports.common.av.a(Unknown Source)
         at com.crystaldecisions.reports.common.ag.a(Unknown Source)
         at com.businessobjects.reports.sdk.b.e.a(Unknown Source)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(Unknown
    So the question arises:
    1) Is the jboss datasource overly/aggressively closing result sets?
    2) or is there a coding error in CRXIR2?
    thanks,
    bill
    Full stack trace:
    [2008-03-13 17:26:18,905] [INFO ] org.jboss.resource.connectionmanager.CachedConnectionManager (CachedConnectionManager.java:526) - Closing a connection for you.  Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@c76003
    java.lang.Throwable: STACKTRACE
         at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:290)
         at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:417)
         at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
         at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
         at com.crystaldecisions.reports.queryengine.driverImpl.k.a(Unknown Source)
         at com.crystaldecisions.reports.queryengine.driverImpl.o.if(Unknown Source)
         at com.crystaldecisions.reports.queryengine.av.new(Unknown Source)
         at com.crystaldecisions.reports.queryengine.av.byte(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.b.a(Unknown Source)
         at com.crystaldecisions.reports.reportdefinition.datainterface.j.a(Unknown Source)
         at com.crystaldecisions.reports.dataengine.ba.try(Unknown Source)
         at com.crystaldecisions.reports.common.av.a(Unknown Source)
         at com.crystaldecisions.reports.common.ag.a(Unknown Source)
         at com.businessobjects.reports.sdk.b.e.a(Unknown Source)
         at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.y.a(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.r.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.cf.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.z.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ak.if(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ad.int(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.bk.for(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.v.a(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.v.if(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.DatabaseController.setTableLocation(Unknown Source)
         at com.crystaldecisions.reports.sdk.DatabaseController.setTableLocation(Unknown Source)
         at org.apache.jsp.reports.processreport_jsp.switchTables(processreport_jsp.java:131)
         at org.apache.jsp.reports.processreport_jsp.loadReport(processreport_jsp.java:68)
         at org.apache.jsp.reports.processreport_jsp._jspService(processreport_jsp.java:227)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.participate.shared.pagecache.client.PageCacheFilter.doFilter(PageCacheFilter.java:760)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.participate.util.servlet.ExpiredPasswordFilter.doFilter(ExpiredPasswordFilter.java:92)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.participate.pe.channels.client.servlet.ChannelUrlFilter.processUrl(ChannelUrlFilter.java:168)
         at com.participate.pe.channels.client.servlet.ChannelUrlFilter.doFilter(ChannelUrlFilter.java:100)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.participate.util.servlet.BlockIpAddressFilter.doFilter(BlockIpAddressFilter.java:224)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.outstart.multiapp.filters.KeepOtherSessionsAliveFilter.doFilter(KeepOtherSessionsAliveFilter.java:88)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.participate.util.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:151)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Thread.java:619)

    <p>
    OK. I found the problem along with a workaround.
    </p>
    <p>
    <strong>The problem:</strong>
    </p>
    <p>
    a programming practice clashes with a new jboss 'safety check'.
    </p>
    <p>
    <strong>Programming practice:</strong>
    </p>
    <p>
    crystal reports gets a database connection in one jsp page, then tries to use it on another jsp/servlet
    </p>
    <p>
    <strong>Jboss safety check:</strong>
    Jboss/tomcat new comes configured out-of-the-box with a 'cached connection
    manager', which
    </p>
    <p>
    "Check[s] for unclosed connections and transaction terminated checks in servlets/jsps."
    </p>
    <p>
    <strong> Summary</strong>
    </p>
    <p>
    In short, if a servlet/jsp ends and it leaves a database connection open, Jboss will automatically close it.
    </p>
    <p>
    </p>
    <p>
    <strong>Workaround:</strong><br />
    Comment out two entries in these two files:
    </p>
    <p>
    1) conf/jboss4/pe/deploy/jboss-web.deployer/server.xml
    </p>
    <p>
    2) conf/jboss4/pe/deploy/jboss-web.deployer/META-INF/jboss-service.xml
    </p>
    <p>
    The two entries:
    </p>
    <p>
    </p>
    <p>
    1)
    </p>
    <p>
                 <Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"<br />
                    cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"<br />
                    transactionManagerObjectName="jboss:service=TransactionManager" /><br />
    </p>
    <p>
    2)
    </p>
    <p>
          <depends>jboss.jca:service=CachedConnectionManager</depends><br />
    </p>
    <p>
    </p>
    <p>
    <strong>Comments on the workaround</strong>
    </p>
    <p>
    The 'cached connection manager' basically makes sure that the application cleans up after bad programmers. It seems most helpful in development, load testing, or trouble shooting.
    </p>
    <p>
    In production,  you can likely  comment them out with minimal
    impact on the application.
    </p>

  • Database connection is not closing in the database pool

    Hi,
    i am using tomcat 6.0 and mysql 5.0 database server
    and implementing the DBCP in my application
    and my context.xml is this
    <Resource name="jdbc/racecourse" auth="Container" type="javax.sql.DataSource"
    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    maxActive="200" maxIdle="10" maxWait="1000" removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="true"
    username="betting" password="race" driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/betting?autoReconnect=true"
    description="race"/>
    My problem is the connections in the mysql server are becoming idle instead of closing . due to this i am getting connection error 
    please help me how to slove this error
    try { DataSource ds = null;     Context context = new InitialContext(); Context envCtx = (Context) context.lookup("java:comp/env"); ds =  (DataSource)envCtx.lookup("jdbc/racecourse"); if (ds != null) { cons = ds.getConnection(); } String query3="select max(meetingdate) from meeting"; Statement st3= cons.createStatement(); ResultSet rs3=st3.executeQuery(query3); String srno45=""; while(rs3.next()) {   srno45=rs3.getString(1); } String query="select callcount from callcounter where dateofrace='"+srno45+"'"; Statement stat = cons.createStatement(); ResultSet rs =stat.executeQuery(query); String a=""; int i=1; String cc1="1"; while(rs.next()) { a=rs.getString(1); i=Integer.parseInt(a); //Integer b=new Integer(i); i++; cc1=Integer.toString(i); } session.setAttribute("b123",cc1); String query1="update callcounter set callcount='"+cc1+"' where dateofrace='"+srno45+"'"; Statement stat1 = cons.createStatement(); stat1.executeUpdate(query1); cons.close(); } catch(Exception e) { out.println("saleaction"+e); } finally { try {           if (cons != null)             cons.close();         } catch (SQLException e3) { System.out.println("saleaction"+e3); } } }

    i am declaring on the top of the try block
    connection cons=null;
    try
              DataSource ds = null;
               Context context = new InitialContext();
                Context envCtx = (Context) context.lookup("java:comp/env");
                ds =  (DataSource)envCtx.lookup("jdbc/racecourse");
               if (ds != null)
                         cons = ds.getConnection();
               String query3="select max(meetingdate) from meeting";
               Statement st3= cons.createStatement();
               ResultSet rs3=st3.executeQuery(query3);
               String srno45="";
               while(rs3.next())
                srno45=rs3.getString(1);
              String query="select callcount from callcounter where dateofrace='"+srno45+"'";
              Statement stat = cons.createStatement();
               ResultSet rs =stat.executeQuery(query);
              String a="";
              int i=1;
              String cc1="1";               
                   while(rs.next())
                    a=rs.getString(1);
                    i=Integer.parseInt(a);
                    //Integer b=new Integer(i);
                    i++;
                    cc1=Integer.toString(i);
                   session.setAttribute("b123",cc1);
                   String query1="update callcounter set callcount='"+cc1+"' where dateofrace='"+srno45+"'";
              Statement stat1 = cons.createStatement();
              stat1.executeUpdate(query1);
              cons.close();
              catch(Exception e)
              out.println("saleaction"+e);
         finally
              try {
              if (cons != null)
                cons.close();
            } catch (SQLException e3)
                   System.out.println("saleaction"+e3);
         }

  • How to configure Oracle Datasource in Tomcat

    Hello,
    My configuration of a Tomcat Datasource (oracle) appears to be wrong. Either that or my oraclejdbc.jar file is in the wrong place. Perhaps my classpath setting is wrong. Any help is appreciated.
    Tomcat console error:
    20070423 20:46:22.514 http-8080-Processor24(0x005878d2)
    JdbcUtil#getDataSourceObject() Throw com.waveset.util.ConfigurationError: Failed to load JDBC DataSource 'java:comp/env/jdbc/wrsPool':
    ==> javax.naming.OperationNotSupportedException: Can't generate an absolute name for this namespace
    Trace output from JdbcUtil:
    XPRESS exception:
    Can't call method getDataSourceObject on class com.waveset.util.JdbcUtil ==> com.waveset.util.ConfigurationError: Failed to load JDBC DataSource 'java:comp/env/jdbc/wrsPool': ==> javax.naming.OperationNotSupportedException: Can't generate an absolute name for this namespace
    XPRESS exception:
    Can't call method queryRecords on class com.waveset.util.JdbcUtil ==> java.lang.NullPointerException:
    The express code used to call JdbcUtil follows:
    <defvar name='dataSource'>
    <new class='javax.sql.DataSource'/>
    </defvar>
    <set name='dataSource'>
    <invoke name='getDataSourceObject' class='com.waveset.util.JdbcUtil'>
    <null/>
    <s>java:comp/env/jdbc/wrsPool</s>
    <null/>
    </invoke>
    </set>
    The Tomcat configuration *.xml file
    <?xml version='1.0' encoding='utf-8'?>
    <Context docBase="wavex" path="/wavex" useNaming="false" workDir="work\Catalina\localhost\wavex">
    <Resource name="jdbc/waveexPool " type="javax.sql.DataSource"/>
    <Resource name="jdbc/wrsPool" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/waveexPool ">
    <parameter>
    <name>url</name>
    <value>jdbc:sqlserver://localhost:1433;DatabaseName=WaveEx</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value></value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>4</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>5000</value>
    </parameter>
    <parameter>
    <name>driverClassName</name>
    <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
    </parameter>
    <parameter>
    <name>username</name>
    <value></value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>2</value>
    </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/wrsPool">
    <parameter>
    <name>url</name>
    <value>jdbc:oracle:thin:@vega.vf.lmco.com:1521:dev2</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value></value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>4</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>5000</value>
    </parameter>
    <parameter>
    <name>driverClassName</name>
    <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
    <name>username</name>
    <value></value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>2</value>
    </parameter>
    </ResourceParams>
    </Context>
    Environment is:
    IDM 7.0 on Windows 2000, sql server houses the repository.
    Tomcat 5.0.28 with JDK 1.6

    thanks for the reply, i have configured the connection pool settings in the tomcat.
    I created a class with static method, which will return the connection object.
    whenever i need the connection object, iam invoking the static method, once its usage is over iam closing thew connection..
    is it the right way of using the connection object in the web application.

Maybe you are looking for

  • How can I do this flare in Illustrator?

    Need to recreate a logo which I think it was originally done in Photoshop, but I prefer the sharp edged vectors of Illustrator for the main part of the logo. Please ignore all the greeny blue pink rubbish. What I want to recreate is the white flare w

  • BOM change after Purchase order creation

    Dear all My client requirement is an error message should appear when the end users are trying to change the BOM after the purchase order creation for the BOM items and the system should allow the BOM change only after the PO cancellation. Please thr

  • Apps crash when I try to print

    When I press "cmd+P" in certain programs, I get the spinning beach ball, and an eventual crash of the app. The following apps have the problem: Mail, Stickies, Safari, and NeoOffice (Adobe apps print fine). Watching "top" in a Terminal window while M

  • Installation Error 16

    I tried installing the trail version of Acrobat X Pro, and kept getting Error 16. This is the trial version I downloaded off the Adobe Website. I am running Windows Vista 32-bit with Service Patch 2. I tried uninstalling all my other adobe products,

  • I start to do it but that what all what i can do"i need big help"

    i post last day abut need for code for my project but i just could to do thise code with the help that i got bcz i don't know how to do more& i don't have time with my other projects so i hope that there is eny one have ready look like this simple pa