problem with weblogic connection pool. - Weblogic

This is a discussion on problem with weblogic connection pool. - Weblogic ; Hello, I have the following exception in the log. Can someone tell me where I can find any infos ? I use jdbc driver from inet software Opta 5.02, with XA connection (TXDataSource) and EJBs. Regards, Dom java.sql.SQLException: Connection is ...

+ Reply to Thread
Results 1 to 18 of 18

Thread: problem with weblogic connection pool.

  1. problem with weblogic connection pool.

    Hello,


    I have the following exception in the log. Can someone tell me where I can
    find any infos ?

    I use jdbc driver from inet software Opta 5.02, with XA connection
    (TXDataSource) and EJBs.

    Regards,
    Dom

    java.sql.SQLException: Connection is closed because a new connection was
    requested from the DataSource.
    at com.inet.pool.a.if(Unknown Source)
    at com.inet.pool.a.prepareStatement(Unknown Source)
    at weblogic.jdbc.jta.XAConnection.prepareStatement(XA Connection.java:422)
    at weblogic.jdbc.jta.Connection.prepareStatement(Conn ection.java:239)
    at
    weblogic.jdbc.rmi.internal.ConnectionImpl.prepareS tatement(ConnectionImpl.ja
    va:135)
    at
    weblogic.jdbc.rmi.SerialConnection.prepareStatemen t(SerialConnection.java:78
    )
    at
    com.dexia.sofaxis.client.business.ejbimpl.impl.Col lectiviteDAO.findCollectiv
    iteByPrimaryKey(CollectiviteDAO.java:209)
    at
    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean.findColle
    ctiviteValueAssemblerByCollectivite(ServicesCollec tiviteBean.java:328)
    at
    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    Impl.findCollectiviteValueAssemblerByCollectivite( ServicesCollectiviteBean_7
    4ircv_EOImpl.java:1620)
    at
    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    Impl_WLSkel.invoke(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:305)
    at
    weblogic.rmi.cluster.ReplicaAwareServerRef.invoke( ReplicaAwareServerRef.java
    :93)
    at
    weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:274)
    at weblogic.rmi.internal.BasicServerRef.dispatch(Basi cServerRef.java:167)
    at weblogic.rmi.internal.ServerRequest.sendOneWayRaw( ServerRequest.java:92)
    at weblogic.rmi.internal.ServerRequest.sendReceive(Se rverRequest.java:112)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    :263)
    at
    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    :230)
    at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.j ava:35)
    at $Proxy475.findCollectiviteValueAssemblerByCollecti vite(Unknown Source)
    at
    com.dexia.sofaxis.client.business.ServicesCollecti viteDelegate.findCollectiv
    iteValueAssemblerByCollectivite(ServicesCollectivi teDelegate.java:468)
    at
    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranControle.al imenterCartouche(EcranCont
    role.java:899)
    at
    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranRechercheAg entCreationControle.choisi
    rAgentCreationControleByVille(EcranRechercheAgentC reationControle.java:79)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.dexia.common.gui.WebServlet.mainProcess(WebSer vlet.java:228)
    at com.dexia.common.gui.WebServlet.processRequest(Web Servlet.java:278)
    at com.dexia.common.gui.WebServlet.doPost(WebServlet. java:416)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    :262)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    :198)
    at
    weblogic.servlet.internal.WebAppServletContext.inv okeServlet(WebAppServletCo
    ntext.java:2637)
    at
    weblogic.servlet.internal.ServletRequestImpl.execu te(ServletRequestImpl.java
    :2359)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:120)



  2. Re: problem with weblogic connection pool.



    Dominique Jean-Prost wrote:

    > Hello,
    >
    >
    > I have the following exception in the log. Can someone tell me where I can
    > find any infos ?
    >
    > I use jdbc driver from inet software Opta 5.02, with XA connection
    > (TXDataSource) and EJBs.
    >
    > Regards,
    > Dom


    Hi Dom. This is the first time I've seen this exception, and it's not
    a weblogic exception, it's an inet driver exception. I'd start by asking them
    what circumstances cause their driver to throw that.
    Joe

    >
    > java.sql.SQLException: Connection is closed because a new connection was
    > requested from the DataSource.
    > at com.inet.pool.a.if(Unknown Source)
    > at com.inet.pool.a.prepareStatement(Unknown Source)
    > at weblogic.jdbc.jta.XAConnection.prepareStatement(XA Connection.java:422)
    > at weblogic.jdbc.jta.Connection.prepareStatement(Conn ection.java:239)
    > at
    > weblogic.jdbc.rmi.internal.ConnectionImpl.prepareS tatement(ConnectionImpl.ja
    > va:135)
    > at
    > weblogic.jdbc.rmi.SerialConnection.prepareStatemen t(SerialConnection.java:78
    > )
    > at
    > com.dexia.sofaxis.client.business.ejbimpl.impl.Col lectiviteDAO.findCollectiv
    > iteByPrimaryKey(CollectiviteDAO.java:209)
    > at
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean.findColle
    > ctiviteValueAssemblerByCollectivite(ServicesCollec tiviteBean.java:328)
    > at
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > Impl.findCollectiviteValueAssemblerByCollectivite( ServicesCollectiviteBean_7
    > 4ircv_EOImpl.java:1620)
    > at
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > Impl_WLSkel.invoke(Unknown Source)
    > at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:305)
    > at
    > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke( ReplicaAwareServerRef.java
    > :93)
    > at
    > weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:274)
    > at weblogic.rmi.internal.BasicServerRef.dispatch(Basi cServerRef.java:167)
    > at weblogic.rmi.internal.ServerRequest.sendOneWayRaw( ServerRequest.java:92)
    > at weblogic.rmi.internal.ServerRequest.sendReceive(Se rverRequest.java:112)
    > at
    > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > :263)
    > at
    > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > :230)
    > at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.j ava:35)
    > at $Proxy475.findCollectiviteValueAssemblerByCollecti vite(Unknown Source)
    > at
    > com.dexia.sofaxis.client.business.ServicesCollecti viteDelegate.findCollectiv
    > iteValueAssemblerByCollectivite(ServicesCollectivi teDelegate.java:468)
    > at
    > com.dexia.sofaxis.ctrlmed.ctrlmed.EcranControle.al imenterCartouche(EcranCont
    > role.java:899)
    > at
    > com.dexia.sofaxis.ctrlmed.ctrlmed.EcranRechercheAg entCreationControle.choisi
    > rAgentCreationControleByVille(EcranRechercheAgentC reationControle.java:79)
    > at java.lang.reflect.Method.invoke(Native Method)
    > at com.dexia.common.gui.WebServlet.mainProcess(WebSer vlet.java:228)
    > at com.dexia.common.gui.WebServlet.processRequest(Web Servlet.java:278)
    > at com.dexia.common.gui.WebServlet.doPost(WebServlet. java:416)
    > at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
    > at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
    > at
    > weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > :262)
    > at
    > weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > :198)
    > at
    > weblogic.servlet.internal.WebAppServletContext.inv okeServlet(WebAppServletCo
    > ntext.java:2637)
    > at
    > weblogic.servlet.internal.ServletRequestImpl.execu te(ServletRequestImpl.java
    > :2359)
    > at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:139)
    > at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:120)
    >
    >



  3. Re: problem with weblogic connection pool.

    Hello,


    I've opened a case with InetSoftware. Here is the transcript of what they
    say :


    1st mail
    There seems to be a problem in the connection pool logic. The error message
    means that the pool manger has reused the connection for another request.
    With the reused of the connection object all links to the physical
    connection are deleted. This prevents that 2 transactions use the same
    physical connection.
    How do you have request the connection?
    *****************************
    My answer

    Well, it seem quite strange because I use always the same piece of code to
    get a connection : lookup of the jdbc datasource and then a getConnection on
    it.
    *************************************
    2nd mail
    It seems that you use some options that not work correctly with your version
    of the WebLogic application server. The connections pool seems to be
    corrupt.
    There are follow problems:
    - The pool think that you have close a connetion and reused it.
    - The pool think that the connection is not part of a XA transaction.
    - The DTCProxy is call confused that it crashed.
    questions:
    - Do you change the DataSource after the lookup? Do you call any setXXX
    methods?
    - Why you have set an specific isolation level for your beans? The MS SQL
    Server ignore it.


    I don't think this will really help.
    I have to say it's quite hard to deal with 2 different vendors.

    Regards,
    Dom




    "Joe Weinstein" a écrit dans le message de
    news:40ED5F3A.5020407@bea.com...
    >
    >
    > Dominique Jean-Prost wrote:
    >
    > > Hello,
    > >
    > >
    > > I have the following exception in the log. Can someone tell me where I

    can
    > > find any infos ?
    > >
    > > I use jdbc driver from inet software Opta 5.02, with XA connection
    > > (TXDataSource) and EJBs.
    > >
    > > Regards,
    > > Dom

    >
    > Hi Dom. This is the first time I've seen this exception, and it's not
    > a weblogic exception, it's an inet driver exception. I'd start by asking

    them
    > what circumstances cause their driver to throw that.
    > Joe
    >
    > >
    > > java.sql.SQLException: Connection is closed because a new connection was
    > > requested from the DataSource.
    > > at com.inet.pool.a.if(Unknown Source)
    > > at com.inet.pool.a.prepareStatement(Unknown Source)
    > > at

    weblogic.jdbc.jta.XAConnection.prepareStatement(XA Connection.java:422)
    > > at weblogic.jdbc.jta.Connection.prepareStatement(Conn ection.java:239)
    > > at
    > >

    weblogic.jdbc.rmi.internal.ConnectionImpl.prepareS tatement(ConnectionImpl.ja
    > > va:135)
    > > at
    > >

    weblogic.jdbc.rmi.SerialConnection.prepareStatemen t(SerialConnection.java:78
    > > )
    > > at
    > >

    com.dexia.sofaxis.client.business.ejbimpl.impl.Col lectiviteDAO.findCollectiv
    > > iteByPrimaryKey(CollectiviteDAO.java:209)
    > > at
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean.findColle
    > > ctiviteValueAssemblerByCollectivite(ServicesCollec tiviteBean.java:328)
    > > at
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > >

    Impl.findCollectiviteValueAssemblerByCollectivite( ServicesCollectiviteBean_7
    > > 4ircv_EOImpl.java:1620)
    > > at
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > > Impl_WLSkel.invoke(Unknown Source)
    > > at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:305)
    > > at
    > >

    weblogic.rmi.cluster.ReplicaAwareServerRef.invoke( ReplicaAwareServerRef.java
    > > :93)
    > > at
    > >

    weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:274)
    > > at

    weblogic.rmi.internal.BasicServerRef.dispatch(Basi cServerRef.java:167)
    > > at

    weblogic.rmi.internal.ServerRequest.sendOneWayRaw( ServerRequest.java:92)
    > > at

    weblogic.rmi.internal.ServerRequest.sendReceive(Se rverRequest.java:112)
    > > at
    > >

    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > > :263)
    > > at
    > >

    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > > :230)
    > > at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.j ava:35)
    > > at $Proxy475.findCollectiviteValueAssemblerByCollecti vite(Unknown

    Source)
    > > at
    > >

    com.dexia.sofaxis.client.business.ServicesCollecti viteDelegate.findCollectiv
    > > iteValueAssemblerByCollectivite(ServicesCollectivi teDelegate.java:468)
    > > at
    > >

    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranControle.al imenterCartouche(EcranCont
    > > role.java:899)
    > > at
    > >

    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranRechercheAg entCreationControle.choisi
    > >

    rAgentCreationControleByVille(EcranRechercheAgentC reationControle.java:79)
    > > at java.lang.reflect.Method.invoke(Native Method)
    > > at com.dexia.common.gui.WebServlet.mainProcess(WebSer vlet.java:228)
    > > at com.dexia.common.gui.WebServlet.processRequest(Web Servlet.java:278)
    > > at com.dexia.common.gui.WebServlet.doPost(WebServlet. java:416)
    > > at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
    > > at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
    > > at
    > >

    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > > :262)
    > > at
    > >

    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > > :198)
    > > at
    > >

    weblogic.servlet.internal.WebAppServletContext.inv okeServlet(WebAppServletCo
    > > ntext.java:2637)
    > > at
    > >

    weblogic.servlet.internal.ServletRequestImpl.execu te(ServletRequestImpl.java
    > > :2359)
    > > at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:139)
    > > at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:120)
    > >
    > >

    >




  4. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    > Ok. XA allows a connection to be used for more than one
    > transaction. One transaction can be suspended and another
    > started or continued etc.


    Joe,

    How does weblogic maintain integrity between two contending
    transactions?

    T1:
    update tb1 set nm = 'A' where id = 1;
    Do something else

    T2
    delete tbl where id = 1;

    What if T1 kicks off and does first step, and then gets suspended
    and T2 gets the same connection and deletes, the T1 gets control
    of the connection back to "Do something else"?

    --
    Galen Boyer

  5. Re: problem with weblogic connection pool.

    Hi again,


    I didn't precise I'm using wls 6.1 sp4. I think the option you suggest only
    exists in wls8.1, doesn't it ?

    Dom



    "Joe Weinstein" a écrit dans le message de
    news:40ed6738$1@mktnews1...
    > Hi,
    >
    > Ok. XA allows a connection to be used for more than one transaction. One

    transaction
    > can be suspended and another started or continued etc. However for this

    driver it may
    > be necessary to set the XA/Pool property to keep a connection associated

    with a
    > single tx for the life of the tx.:
    >
    >
    > keepXAConnTillTxComplete
    >
    > Set it to true, and let me know if this solves the problem.
    > Joe
    >
    > Dominique Jean-Prost wrote:
    >
    > > Hello,
    > >
    > >
    > > I've opened a case with InetSoftware. Here is the transcript of what

    they
    > > say :
    > >
    > >
    > > 1st mail
    > > There seems to be a problem in the connection pool logic. The error

    message
    > > means that the pool manger has reused the connection for another

    request.
    > > With the reused of the connection object all links to the physical
    > > connection are deleted. This prevents that 2 transactions use the same
    > > physical connection.
    > > How do you have request the connection?
    > > *****************************
    > > My answer
    > >
    > > Well, it seem quite strange because I use always the same piece of code

    to
    > > get a connection : lookup of the jdbc datasource and then a

    getConnection on
    > > it.
    > > *************************************
    > > 2nd mail
    > > It seems that you use some options that not work correctly with your

    version
    > > of the WebLogic application server. The connections pool seems to be
    > > corrupt.
    > > There are follow problems:
    > > - The pool think that you have close a connetion and reused it.
    > > - The pool think that the connection is not part of a XA transaction.
    > > - The DTCProxy is call confused that it crashed.
    > > questions:
    > > - Do you change the DataSource after the lookup? Do you call any setXXX
    > > methods?
    > > - Why you have set an specific isolation level for your beans? The MS

    SQL
    > > Server ignore it.
    > >
    > >
    > > I don't think this will really help.
    > > I have to say it's quite hard to deal with 2 different vendors.
    > >
    > > Regards,
    > > Dom
    > >
    > >
    > >
    > >
    > > "Joe Weinstein" a écrit dans le message de
    > > news:40ED5F3A.5020407@bea.com...
    > >
    > >>
    > >>Dominique Jean-Prost wrote:
    > >>
    > >>
    > >>>Hello,
    > >>>
    > >>>
    > >>>I have the following exception in the log. Can someone tell me where I

    > >
    > > can
    > >
    > >>>find any infos ?
    > >>>
    > >>>I use jdbc driver from inet software Opta 5.02, with XA connection
    > >>>(TXDataSource) and EJBs.
    > >>>
    > >>>Regards,
    > >>>Dom
    > >>
    > >>Hi Dom. This is the first time I've seen this exception, and it's not
    > >>a weblogic exception, it's an inet driver exception. I'd start by asking

    > >
    > > them
    > >
    > >>what circumstances cause their driver to throw that.
    > >>Joe
    > >>
    > >>
    > >>>java.sql.SQLException: Connection is closed because a new connection

    was
    > >>>requested from the DataSource.
    > >>>at com.inet.pool.a.if(Unknown Source)
    > >>>at com.inet.pool.a.prepareStatement(Unknown Source)
    > >>>at

    > >
    > > weblogic.jdbc.jta.XAConnection.prepareStatement(XA Connection.java:422)
    > >
    > >>>at weblogic.jdbc.jta.Connection.prepareStatement(Conn ection.java:239)
    > >>>at
    > >>>

    > >
    > >

    weblogic.jdbc.rmi.internal.ConnectionImpl.prepareS tatement(ConnectionImpl.ja
    > >
    > >>>va:135)
    > >>>at
    > >>>

    > >
    > >

    weblogic.jdbc.rmi.SerialConnection.prepareStatemen t(SerialConnection.java:78
    > >
    > >>>)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.client.business.ejbimpl.impl.Col lectiviteDAO.findCollectiv
    > >
    > >>>iteByPrimaryKey(CollectiviteDAO.java:209)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean.findColle
    > >
    > >>>ctiviteValueAssemblerByCollectivite(ServicesCollec tiviteBean.java:328)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > >
    > >

    Impl.findCollectiviteValueAssemblerByCollectivite( ServicesCollectiviteBean_7
    > >
    > >>>4ircv_EOImpl.java:1620)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    > >
    > >>>Impl_WLSkel.invoke(Unknown Source)
    > >>>at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:305)
    > >>>at
    > >>>

    > >
    > >

    weblogic.rmi.cluster.ReplicaAwareServerRef.invoke( ReplicaAwareServerRef.java
    > >
    > >>>:93)
    > >>>at
    > >>>

    > >
    > >

    weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:274)
    > >
    > >>>at

    > >
    > > weblogic.rmi.internal.BasicServerRef.dispatch(Basi cServerRef.java:167)
    > >
    > >>>at

    > >
    > > weblogic.rmi.internal.ServerRequest.sendOneWayRaw( ServerRequest.java:92)
    > >
    > >>>at

    > >
    > > weblogic.rmi.internal.ServerRequest.sendReceive(Se rverRequest.java:112)
    > >
    > >>>at
    > >>>

    > >
    > >

    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > >
    > >>>:263)
    > >>>at
    > >>>

    > >
    > >

    weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    > >
    > >>>:230)
    > >>>at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.j ava:35)
    > >>>at $Proxy475.findCollectiviteValueAssemblerByCollecti vite(Unknown

    > >
    > > Source)
    > >
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.client.business.ServicesCollecti viteDelegate.findCollectiv
    > >
    > >>>iteValueAssemblerByCollectivite(ServicesCollectivi teDelegate.java:468)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranControle.al imenterCartouche(EcranCont
    > >
    > >>>role.java:899)
    > >>>at
    > >>>

    > >
    > >

    com.dexia.sofaxis.ctrlmed.ctrlmed.EcranRechercheAg entCreationControle.choisi
    > >
    > >

    rAgentCreationControleByVille(EcranRechercheAgentC reationControle.java:79)
    > >
    > >>>at java.lang.reflect.Method.invoke(Native Method)
    > >>>at com.dexia.common.gui.WebServlet.mainProcess(WebSer vlet.java:228)
    > >>>at com.dexia.common.gui.WebServlet.processRequest(Web Servlet.java:278)
    > >>>at com.dexia.common.gui.WebServlet.doPost(WebServlet. java:416)
    > >>>at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
    > >>>at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
    > >>>at
    > >>>

    > >
    > >

    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > >
    > >>>:262)
    > >>>at
    > >>>

    > >
    > >

    weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    > >
    > >>>:198)
    > >>>at
    > >>>

    > >
    > >

    weblogic.servlet.internal.WebAppServletContext.inv okeServlet(WebAppServletCo
    > >
    > >>>ntext.java:2637)
    > >>>at
    > >>>

    > >
    > >

    weblogic.servlet.internal.ServletRequestImpl.execu te(ServletRequestImpl.java
    > >
    > >>>:2359)
    > >>>at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:139)
    > >>>at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:120)
    > >>>
    > >>>
    > >>

    > >
    > >

    >




  6. Re: problem with weblogic connection pool.

    Hi,

    Ok. XA allows a connection to be used for more than one transaction. One transaction
    can be suspended and another started or continued etc. However for this driver it may
    be necessary to set the XA/Pool property to keep a connection associated with a
    single tx for the life of the tx.:


    keepXAConnTillTxComplete

    Set it to true, and let me know if this solves the problem.
    Joe

    Dominique Jean-Prost wrote:

    > Hello,
    >
    >
    > I've opened a case with InetSoftware. Here is the transcript of what they
    > say :
    >
    >
    > 1st mail
    > There seems to be a problem in the connection pool logic. The error message
    > means that the pool manger has reused the connection for another request.
    > With the reused of the connection object all links to the physical
    > connection are deleted. This prevents that 2 transactions use the same
    > physical connection.
    > How do you have request the connection?
    > *****************************
    > My answer
    >
    > Well, it seem quite strange because I use always the same piece of code to
    > get a connection : lookup of the jdbc datasource and then a getConnection on
    > it.
    > *************************************
    > 2nd mail
    > It seems that you use some options that not work correctly with your version
    > of the WebLogic application server. The connections pool seems to be
    > corrupt.
    > There are follow problems:
    > - The pool think that you have close a connetion and reused it.
    > - The pool think that the connection is not part of a XA transaction.
    > - The DTCProxy is call confused that it crashed.
    > questions:
    > - Do you change the DataSource after the lookup? Do you call any setXXX
    > methods?
    > - Why you have set an specific isolation level for your beans? The MS SQL
    > Server ignore it.
    >
    >
    > I don't think this will really help.
    > I have to say it's quite hard to deal with 2 different vendors.
    >
    > Regards,
    > Dom
    >
    >
    >
    >
    > "Joe Weinstein" a écrit dans le message de
    > news:40ED5F3A.5020407@bea.com...
    >
    >>
    >>Dominique Jean-Prost wrote:
    >>
    >>
    >>>Hello,
    >>>
    >>>
    >>>I have the following exception in the log. Can someone tell me where I

    >
    > can
    >
    >>>find any infos ?
    >>>
    >>>I use jdbc driver from inet software Opta 5.02, with XA connection
    >>>(TXDataSource) and EJBs.
    >>>
    >>>Regards,
    >>>Dom

    >>
    >>Hi Dom. This is the first time I've seen this exception, and it's not
    >>a weblogic exception, it's an inet driver exception. I'd start by asking

    >
    > them
    >
    >>what circumstances cause their driver to throw that.
    >>Joe
    >>
    >>
    >>>java.sql.SQLException: Connection is closed because a new connection was
    >>>requested from the DataSource.
    >>>at com.inet.pool.a.if(Unknown Source)
    >>>at com.inet.pool.a.prepareStatement(Unknown Source)
    >>>at

    >
    > weblogic.jdbc.jta.XAConnection.prepareStatement(XA Connection.java:422)
    >
    >>>at weblogic.jdbc.jta.Connection.prepareStatement(Conn ection.java:239)
    >>>at
    >>>

    >
    > weblogic.jdbc.rmi.internal.ConnectionImpl.prepareS tatement(ConnectionImpl.ja
    >
    >>>va:135)
    >>>at
    >>>

    >
    > weblogic.jdbc.rmi.SerialConnection.prepareStatemen t(SerialConnection.java:78
    >
    >>>)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.client.business.ejbimpl.impl.Col lectiviteDAO.findCollectiv
    >
    >>>iteByPrimaryKey(CollectiviteDAO.java:209)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean.findColle
    >
    >>>ctiviteValueAssemblerByCollectivite(ServicesCollec tiviteBean.java:328)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    >
    > Impl.findCollectiviteValueAssemblerByCollectivite( ServicesCollectiviteBean_7
    >
    >>>4ircv_EOImpl.java:1620)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.client.business.ejbimpl.Services CollectiviteBean_74ircv_EO
    >
    >>>Impl_WLSkel.invoke(Unknown Source)
    >>>at weblogic.rmi.internal.BasicServerRef.invoke(BasicS erverRef.java:305)
    >>>at
    >>>

    >
    > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke( ReplicaAwareServerRef.java
    >
    >>>:93)
    >>>at
    >>>

    >
    > weblogic.rmi.internal.BasicServerRef.handleRequest (BasicServerRef.java:274)
    >
    >>>at

    >
    > weblogic.rmi.internal.BasicServerRef.dispatch(Basi cServerRef.java:167)
    >
    >>>at

    >
    > weblogic.rmi.internal.ServerRequest.sendOneWayRaw( ServerRequest.java:92)
    >
    >>>at

    >
    > weblogic.rmi.internal.ServerRequest.sendReceive(Se rverRequest.java:112)
    >
    >>>at
    >>>

    >
    > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    >
    >>>:263)
    >>>at
    >>>

    >
    > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke( ReplicaAwareRemoteRef.java
    >
    >>>:230)
    >>>at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.j ava:35)
    >>>at $Proxy475.findCollectiviteValueAssemblerByCollecti vite(Unknown

    >
    > Source)
    >
    >>>at
    >>>

    >
    > com.dexia.sofaxis.client.business.ServicesCollecti viteDelegate.findCollectiv
    >
    >>>iteValueAssemblerByCollectivite(ServicesCollectivi teDelegate.java:468)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.ctrlmed.ctrlmed.EcranControle.al imenterCartouche(EcranCont
    >
    >>>role.java:899)
    >>>at
    >>>

    >
    > com.dexia.sofaxis.ctrlmed.ctrlmed.EcranRechercheAg entCreationControle.choisi
    >
    > rAgentCreationControleByVille(EcranRechercheAgentC reationControle.java:79)
    >
    >>>at java.lang.reflect.Method.invoke(Native Method)
    >>>at com.dexia.common.gui.WebServlet.mainProcess(WebSer vlet.java:228)
    >>>at com.dexia.common.gui.WebServlet.processRequest(Web Servlet.java:278)
    >>>at com.dexia.common.gui.WebServlet.doPost(WebServlet. java:416)
    >>>at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
    >>>at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
    >>>at
    >>>

    >
    > weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    >
    >>>:262)
    >>>at
    >>>

    >
    > weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(ServletStubImpl.java
    >
    >>>:198)
    >>>at
    >>>

    >
    > weblogic.servlet.internal.WebAppServletContext.inv okeServlet(WebAppServletCo
    >
    >>>ntext.java:2637)
    >>>at
    >>>

    >
    > weblogic.servlet.internal.ServletRequestImpl.execu te(ServletRequestImpl.java
    >
    >>>:2359)
    >>>at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:139)
    >>>at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:120)
    >>>
    >>>

    >>

    >
    >



  7. Re: problem with weblogic connection pool.



    Galen Boyer wrote:

    > On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >>Ok. XA allows a connection to be used for more than one
    >>transaction. One transaction can be suspended and another
    >>started or continued etc.

    >
    >
    > Joe,
    >
    > How does weblogic maintain integrity between two contending
    > transactions?
    >
    > T1:
    > update tb1 set nm = 'A' where id = 1;
    > Do something else
    >
    > T2
    > delete tbl where id = 1;
    >
    > What if T1 kicks off and does first step, and then gets suspended
    > and T2 gets the same connection and deletes, the T1 gets control
    > of the connection back to "Do something else"?
    >


    It's up to the DBMS to handle this. Typically T2's call to delete will block
    because of locks held by T1. T1 may continue as needed, and when it commits
    or rolls back, the locks that are blocking T2 will be released, allowing it
    to continue.
    Joe


  8. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >
    > Galen Boyer wrote:
    >
    >> On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>
    >>>Ok. XA allows a connection to be used for more than one
    >>>transaction. One transaction can be suspended and another
    >>> started or continued etc.

    >> Joe, How does weblogic maintain integrity between two
    >> contending transactions? T1: update tb1 set nm = 'A' where id
    >> = 1; Do something else T2 delete tbl where id = 1; What if T1
    >> kicks off and does first step, and then gets suspended and T2
    >> gets the same connection and deletes, the T1 gets control of
    >> the connection back to "Do something else"?
    >>

    >
    > It's up to the DBMS to handle this. Typically T2's call to
    > delete will block because of locks held by T1. T1 may continue
    > as needed, and when it commits or rolls back, the locks that
    > are blocking T2 will be released, allowing it to continue. Joe


    But it is on the same connection. How is the database to know
    two different processes are using the same connection? If I open
    up a sqlplus session and start a transaction and then get up from
    my chair and my coworker comes in and does his own thing, the
    database will envelope them in the same transaction.

    --
    Galen Boyer

  9. Re: problem with weblogic connection pool.



    Galen Boyer wrote:

    > On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >>
    >>Galen Boyer wrote:
    >>
    >>
    >>>On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>>
    >>>
    >>>>Ok. XA allows a connection to be used for more than one
    >>>>transaction. One transaction can be suspended and another
    >>>>started or continued etc.
    >>>
    >>>Joe, How does weblogic maintain integrity between two
    >>>contending transactions? T1: update tb1 set nm = 'A' where id
    >>>= 1; Do something else T2 delete tbl where id = 1; What if T1
    >>>kicks off and does first step, and then gets suspended and T2
    >>>gets the same connection and deletes, the T1 gets control of
    >>>the connection back to "Do something else"?
    >>>

    >>
    >>It's up to the DBMS to handle this. Typically T2's call to
    >>delete will block because of locks held by T1. T1 may continue
    >>as needed, and when it commits or rolls back, the locks that
    >>are blocking T2 will be released, allowing it to continue. Joe

    >
    >
    > But it is on the same connection. How is the database to know
    > two different processes are using the same connection? If I open
    > up a sqlplus session and start a transaction and then get up from
    > my chair and my coworker comes in and does his own thing, the
    > database will envelope them in the same transaction.


    The XA API provides for named transactions, and Weblogic will
    call suspend() and resume() etc. as appropriate, to preset the
    transactional context needed for a given connection, so the
    DBMS knows to associate locks with the XA transaction in effect
    when the locks are obtained.
    Joe

    >



  10. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    > The XA API provides for named transactions, and Weblogic will
    > call suspend() and resume() etc. as appropriate, to preset the
    > transactional context needed for a given connection, so the
    > DBMS knows to associate locks with the XA transaction in effect
    > when the locks are obtained.
    > Joe


    I'll be damned. I see now. Never understood this before.

    Thanks.
    --
    Galen Boyer

  11. Re: problem with weblogic connection pool.



    Galen Boyer wrote:

    > On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >>The XA API provides for named transactions, and Weblogic will
    >>call suspend() and resume() etc. as appropriate, to preset the
    >>transactional context needed for a given connection, so the
    >>DBMS knows to associate locks with the XA transaction in effect
    >>when the locks are obtained.
    >>Joe

    >
    >
    > I'll be damned. I see now. Never understood this before.
    >
    > Thanks.


    Glad to help!
    Joe


  12. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >
    > Galen Boyer wrote:
    >
    >> On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>
    >>>The XA API provides for named transactions, and Weblogic will
    >>>call suspend() and resume() etc. as appropriate, to preset the
    >>>transactional context needed for a given connection, so the
    >>>DBMS knows to associate locks with the XA transaction in
    >>>effect when the locks are obtained. Joe

    >> I'll be damned. I see now. Never understood this before.
    >> Thanks.

    > Glad to help!
    > Joe


    Does this also mean that two different connections can support a
    single transaction? ie, a parent row could be inserted in
    conn1 and a child row in conn2?

    --
    Galen Boyer

  13. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >
    > Galen Boyer wrote:
    >
    >> On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>
    >>>
    >>>Galen Boyer wrote:
    >>>
    >>>
    >>>>On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>>>
    >>>>
    >>>>>The XA API provides for named transactions, and Weblogic
    >>>>>will call suspend() and resume() etc. as appropriate, to
    >>>>>preset the transactional context needed for a given
    >>>>>connection, so the DBMS knows to associate locks with the XA
    >>>>>transaction in effect when the locks are obtained. Joe
    >>>>
    >>>>I'll be damned. I see now. Never understood this before.
    >>>>Thanks.
    >>>
    >>>Glad to help!
    >>>Joe

    >> Does this also mean that two different connections can support
    >> a single transaction? ie, a parent row could be inserted in
    >> conn1 and a child row in conn2?

    >
    > Yes, in principal. Be warned that XA is not implemented
    > perfectly by most DBMSes, but yes this is perfectly within the
    > intent. In practice we offer a configuration for xa that has
    > weblogic retain a single connection (from a given DataSource)
    > for the life of the tx. This is to work around some driver's
    > bugs/limitations in their XA implementations, such as Oracle's
    > result sets being truncated unnexpectedly if a tx is suspended
    > and then resumed before the result set is fully drained. Other
    > drivers are OK with that... Another basic benefit of XA is
    > that there can be a transaction with *no* connection! If WLS
    > dies, killing all connections after the tx is prepared, but
    > before it is committed, A reboot of WLS will go through an XA
    > tx log and may be capable of committing the tx or rolling it
    > back with a new connection. Often the tx is rolled because
    > other resources involved in the tx may not be in a commitable
    > state. Beware that Oracle has a deeply ingrained weakness in
    > it's XA implementation that in-doubt XA transactions retain the
    > locks they need (as you'd expect), but oddly, as if Oracle was
    > like Sybase in the old days, the XA-locking of necessary
    > resources for a transaction are locked in a page-wise fashion,
    > which also locks logically unrelated data. This means that
    > until in-doubt XA transactions are procesed, other unrelated
    > transactions may block and fail... Joe Joe


    How does this work with package interfaces as opposed to dynamic
    SQL from the middle tier?

    --
    Galen Boyer

  14. Re: problem with weblogic connection pool.



    Galen Boyer wrote:

    > On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >>
    >>Galen Boyer wrote:
    >>
    >>
    >>>On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>>
    >>>
    >>>>The XA API provides for named transactions, and Weblogic will
    >>>>call suspend() and resume() etc. as appropriate, to preset the
    >>>>transactional context needed for a given connection, so the
    >>>>DBMS knows to associate locks with the XA transaction in
    >>>>effect when the locks are obtained. Joe
    >>>
    >>>I'll be damned. I see now. Never understood this before.
    >>>Thanks.

    >>
    >>Glad to help!
    >>Joe

    >
    >
    > Does this also mean that two different connections can support a
    > single transaction? ie, a parent row could be inserted in
    > conn1 and a child row in conn2?


    Yes, in principal. Be warned that XA is not implemented perfectly
    by most DBMSes, but yes this is perfectly within the intent. In
    practice we offer a configuration for xa that has weblogic retain
    a single connection (from a given DataSource) for the life of the
    tx. This is to work around some driver's bugs/limitations in their
    XA implementations, such as Oracle's result sets being truncated
    unnexpectedly if a tx is suspended and then resumed before the
    result set is fully drained. Other drivers are OK with that...
    Another basic benefit of XA is that there can be a transaction
    with *no* connection! If WLS dies, killing all connections after
    the tx is prepared, but before it is committed, A reboot of WLS
    will go through an XA tx log and may be capable of committing the
    tx or rolling it back with a new connection. Often the tx is rolled
    because other resources involved in the tx may not be in a commitable
    state. Beware that Oracle has a deeply ingrained weakness in it's
    XA implementation that in-doubt XA transactions retain the locks they
    need (as you'd expect), but oddly, as if Oracle was like Sybase in the old
    days, the XA-locking of necessary resources for a transaction are locked
    in a page-wise fashion, which also locks logically unrelated data. This
    means that until in-doubt XA transactions are procesed, other unrelated
    transactions may block and fail...
    Joe
    Joe
    >



  15. Re: problem with weblogic connection pool.

    On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >
    >> How does this work with package interfaces as opposed to
    >> dynamic SQL from the middle tier?

    >
    > That can't matter. It's the DBMS's responsibility to associate
    > locks with the tx in effect.
    > Joe


    I see. Nice convo.

    Thanks.
    --
    Galen Boyer

  16. Re: problem with weblogic connection pool.


    >>>>>On Thu, 08 Jul 2004, joeNOSPAM@bea.com wrote:
    >>>>>
    >>>>>>The XA API provides for named transactions, and Weblogic
    >>>>>>will call suspend() and resume() etc. as appropriate, to
    >>>>>>preset the transactional context needed for a given
    >>>>>>connection, so the DBMS knows to associate locks with the XA
    >>>>>>transaction in effect when the locks are obtained. Joe
    >>>>>
    >>>>>I'll be damned. I see now. Never understood this before.
    >>>>>Thanks.
    >>>>
    >>>>Glad to help!
    >>>>Joe
    >>>
    >>>Does this also mean that two different connections can support
    >>>a single transaction? ie, a parent row could be inserted in
    >>>conn1 and a child row in conn2?

    >>
    >>Yes, in principal. Be warned that XA is not implemented
    >>perfectly by most DBMSes, but yes this is perfectly within the
    >>intent. In practice we offer a configuration for xa that has
    >>weblogic retain a single connection (from a given DataSource)
    >>for the life of the tx. This is to work around some driver's
    >>bugs/limitations in their XA implementations, such as Oracle's
    >>result sets being truncated unnexpectedly if a tx is suspended
    >>and then resumed before the result set is fully drained. Other
    >>drivers are OK with that... Another basic benefit of XA is
    >>that there can be a transaction with *no* connection! If WLS
    >>dies, killing all connections after the tx is prepared, but
    >>before it is committed, A reboot of WLS will go through an XA
    >>tx log and may be capable of committing the tx or rolling it
    >>back with a new connection. Often the tx is rolled because
    >>other resources involved in the tx may not be in a commitable
    >>state. Beware that Oracle has a deeply ingrained weakness in
    >>it's XA implementation that in-doubt XA transactions retain the
    >>locks they need (as you'd expect), but oddly, as if Oracle was
    >>like Sybase in the old days, the XA-locking of necessary
    >>resources for a transaction are locked in a page-wise fashion,
    >>which also locks logically unrelated data. This means that
    >>until in-doubt XA transactions are procesed, other unrelated
    >>transactions may block and fail... Joe Joe

    >
    > How does this work with package interfaces as opposed to dynamic
    > SQL from the middle tier?


    That can't matter. It's the DBMS's responsibility to associate
    locks with the tx in effect.
    Joe


  17. Re: problem with weblogic connection pool.

    Hi,

    I am getting the following exception and once this exception is encountered, same exception is thrown for all subsequesnt transactions.
    I am using weblogic 8.1 SP3, jdbc tx datasource for ms sql server.

    Can anyone help?


    Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAER_PROTO : Routine was invoked in an inproper context start() failed on resource 'TXConnectionPoll': XAER_PROTO : Routine was invoked in an inproper context
    javax.transaction.xa.XAException: [BEA][SQLServer JDBC Driver]Transaction has to commit/rollback before another transaction starts.

  18. Re: problem with weblogic connection pool.

    Hi Dom,
    Were you able to fix that issue finally. If so, let me know the fix as i am also facing the same problem.

    Regards,
    Amitesh

+ Reply to Thread