KeepXAConnTillTxComplete

Not sure if I should post this error here or in the WorkShop forum. Anyway,
I am using WLS 7 sp2 with an Informix DBMS. I need to use Distributed
Transactions so I am re-configuring a few of my DataSources and Connection
Pools to use the Informix XA driver. Some of my Web Service methods use the
DataBase Control while others access EJB's.
When I access a Web Service that uses a DB Control, I get the following
error:
weblogic.jws.control.ControlException: ControlException on control
dbCtrl[Cannot set transaction isolation level for the XA connection if the
XA connection pool does not have "KeepXAConnTillTxComplete" attribute set to
true. Note that, however, setting this attribute means that each XA
connection is associated with the global transaction until it completes and
may limit scalability.]
Can someone please explain this?
TIA,
Tim

Hi Nick,
Sorry my bad I was not clear on that. I did mean to say that.
I will file a request to get these workarounds for different drivers
documented. Thanks for pointing it out.
regards
sree
"Nick Minutello" <[email protected]> wrote
in message news:3cf42456$[email protected]..
>
>
Setting a connection pool property wont fix the problem.
You have to set an XML attribute KeepXAConnTillTxComplete="true" in the<JDBCConnectionPool>
element, as follows:
<JDBCConnectionPool
DriverName="com.jnetdirect.jsql.JSQLXADataSource"
InitialCapacity="10" LoginDelaySeconds="0" MaxCapacity="10"KeepXAConnTillTxComplete="true"
Name="SQLServerConnectionPool"
Password="{3DES}iDx47CCB9/npwl5EiDtgfg=="
Properties="user=sa"
RefreshMinutes="5" Targets="myserver"
TestConnectionsOnReserve="true" TestTableName="fxo_auto_evt_que"URL="jdbc:JSQLConnect://localhost/database=Weblogic"/>
>
And it is not documented.
Regards,
Nick
"Sree Bodapati" <[email protected]> wrote:
You have to set it in the connection pool properties.
hth
sree
"Nick Minutello" <[email protected]>
wrote
in message news:3cf18c5b$[email protected]..
I am trying to execute:
Connection conn = dataSource.getConnection();
CallableStatement statement = conn.prepareCall(sql);
with a TRANSACTION_SERIALIZABLE isolation level, and I receive theattached error
(see error2.txt).
The question is that in the exception error message, it refers to asetting of KeepXAConnTillTxComplete
- however, I cannot find any information as to where this setting isset...
Regards,
Nick

Similar Messages

  • DS sends updates to DB only in commit (can't find modified data in same TX)

    Hello experts!
    We have a physical data service mapping a simple Oracle database table. When we update one record in the database (invoking submit on the DS), and use a function in that same dataservice to get the refreshed record, the updated column comes with the OLD value. But after the transaction ends (we isolated this is a simple JWS), the database gets updated.
    The most strange fact: we also did a test using another Data Service to do the update, now mapping a stored procedure to do the updates (without commits in body). Then the test works fine.
    The conclusion I can reach is DSP is holding the instance somewhere after the submit() and is not sending it to the database connection. I understand that the commit is not performed, but if I do a query in the same TX, I should see my changed, shouldn't I?
    We use WL 8.1.6 with DSP 2.5.
    We´d appreciate very much if yuo guys could help.
    Thanks,
    Zica.

    Let me get your scenario straight
    client starts a transaction
    client calls submit to update a data services
    client calls read to re-read the update value (does not see update)
    client ends the transaction
    If you read now, you will see the update
    And you're wondering why the first read doesn't seem the update values?
    By default, ALDSP 2.5 reads are through an EJB that has trans-attrib=NotSupported - which means if you do a read within a transaction, that transaction is suspended the call is made without any transaction, then the transaction is resumed. So this is one reason you don't see the read. To do the read via an EJB method with trans-attribute=Required. See TRANSACTION SUPPORT at http://e-docs.bea.com/aldsp/docs25/javadoc/com/bea/dsp/dsmediator/client/DataServiceFactory.html
    If you are using the control, the control will need to specify
    @jc:LiquidData ReadTransactionAttribute="Required"
    That is only part of the solution. You will also need to configure your connection pool with the property KeepXAConnTillTxComplete="true" to ensure that your read is on the same connection as your write.
    <JDBCConnectionPool CapacityIncrement="2"
    KeepXAConnTillTxComplete="true" />
    Then I have to ask - if your client already has the modified DataObject in memory, what's the purpose of re-reading it? If all you need is a clean ChangeSummary so you can do more changes (the ChangeSummary is not cleared when you call submit), you can simply call myDataObject..getDataGraph().getChangeSummary().beginLogging()

  • How to migrate the datasource from Bea 8.1 to Bea 10

    Hi,
    I have to migrate an application from bea 8.1 to 10.
    the configuration in 8.1 is as follow : (config.xml)
    <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver"
    InitialCapacity="10" KeepXAConnTillTxComplete="true"
    MaxCapacity="150" Name="adiosPool" Password="adios47"
    Properties="user=adios47"
    RemoveInfectedConnectionsEnabled="false"
    ShrinkFrequencySeconds="600" StatementCacheSize="100"
    SupportsLocalTransaction="false" Targets="server"
    TestConnectionsOnCreate="false" TestConnectionsOnReserve="true"
    TestFrequencySeconds="60" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@AXHE0.application.hvb.de:1521:AXHE0"/>
    <JDBCTxDataSource JNDIName="weblogic.jdbc.jts.adiosPool"
    Name="adiosPool" PoolName="adiosPool" Targets="server"/>
    and that is my new configuration : (config.xml)
    <jdbc-system-resource>
    <name>adiosPool</name>
    <descriptor-file-name>jdbc/adiosPool-0758-jdbc.xml</descriptor-file-name>
    </jdbc-system-resource>
    jdbc/adiosPool-0758-jdbc.xml :
    <?xml version='1.0' encoding='UTF-8'?>
    <jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd">
    <name>adiosPool</name>
    <jdbc-driver-params>
    <url>jdbc:oracle:thin:@AXHE0.application.hvb.de:1521:AXHE0</url>
    <driver-name>oracle.jdbc.OracleDriver</driver-name>
    <properties>
    <property>
    <name>user</name>
    <value>adios47</value>
    </property>
    <property>
    <name>portNumber</name>
    <value>1521</value>
    </property>
    <property>
    <name>SID</name>
    <value>HVAEE0</value>
    </property>
    <property>
    <name>serverName</name>
    <value>AXHE0.application.hvb.de</value>
    </property>
    </properties>
    <password-encrypted>{3DES}PMWtUXqoHT8=</password-encrypted>
    </jdbc-driver-params>
    <jdbc-connection-pool-params>
    <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
    </jdbc-connection-pool-params>
    <jdbc-data-source-params>
    <jndi-name>weblogic.jdbc.jts.adiosPool</jndi-name>
    <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>
    </jdbc-data-source-params>
    </jdbc-data-source>
    but when I start the server I get the following exception :
    START SERVER
    javax.naming.NameNotFoundException: While trying to lookup 'weblogic.jdbc.jts.adiosPool' didn't find subcontext 'jdbc'. Resolved 'weblogic'; remaining name
    'jdbc/jts/adiosPool'
    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1138)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:246)
    at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:171)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:205)
    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:213)
    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    what's wrong ?
    Thanks for your ideas

    Hi,
    This is realated to Upgrading your domain.You can upgrade your domain from bea weblogic8.1SP4 to Bea weblogic 10.You need to use the upgrade tool from bea weblogic platform10.You can start the Upgrade wizard tool from Windows Start->All Programs->BEA Products->Tools->DomianUpgradeWizard.The tool will take you to upgrade the domain automatically.Once you have upgraded the domian everything(database connection pools,users,groups,any other resources) in 8.1 domian will be changed to 10.
    Bea Support Complete upgradation of Application as well as application data from 8.1 to 9.2 or 10.0
    Thanks
    Bishnu
    Regards
    Bishnu

  • SQL operations are not allowed with no global transaction by default for X

    Hi All,
    I am getting the above mentioned error.
    java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA drivers. If the XA driver supports performing SQL operations with no global transaction, explicitly allow it by setting "SupportsLocalTransaction" JDBC connection pool property to true. In this case, a
    lso remember to complete the local transaction before using the connection again for global transaction, else a XAER_OUTSIDE XAException may result. To complete a local transaction, you can either set auto commit to true or call Connection.commit() or Connection.rollback().
    I am developing a web application. I have jsp, servlets, JDBC classes.
    I am using DataSource and Connection pools.
    I am on WLS 8.1 sp3 and Oracle 10.1.
    Part of My Config file looks as follows:
    <JDBCConnectionPool DriverName="weblogic.jdbcx.oracle.OracleDataSource" KeepLogicalConnOpenOnRelease="true" KeepXAConnTillTxComplete="false" Name="AUMDataSource" NeedTxCtxOnClose="false" NewXAConnForCommit="false" Password="{3DES}AKRkWgdzXN8WrXSRtSvJ6g==" Properties="user=pibsrmgr;portNumber=1521;SID=pibsrdod;serverName=pibsrdod.dtu.mlam.ml.com" RollbackLocalTxUponConnClose="true" SupportsLocalTransaction="false" Targets="myserver" TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:bea:oracle://pibsrdod.dtu.mlam.ml.com:1521" XAEndOnlyOnce="false" />
    <JDBCTxDataSource EnableTwoPhaseCommit="true" JNDIName="jdbc/AUMDataSource" Name="AUMDataSource" PoolName="AUMDataSource" Targets="myserver" />
    Any help will be appreciated.
    Thanks
    ---Radhe

    Hi,
    Regarding Transactions , the following link can helpful to you .
    Regards,
    Prasanna Yalam

  • ORA-01002: fetch out of sequence using multiple XA datasources

    Hi,
    I have a problem accessing multiple XA datasources :
    - launch an sql request on datasource 1
    - rs.next() on the resultset
    - use the data to launch another sql request on datasource 2
    After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
    After further investigation, I noticed that :
    - the problem doesn't occur if the same datasource is used for the 2 requests
    - if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
    Anyone experiencing the same problem ?
    Thanks in advance
    Nicolas
    Here's my configuration :
    - Weblogic 8.1 SP4
    - JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
    - Oracle 10g
    - Oracle thin driver xa 10.1.0.2.0
    A JSP I use to reproduce the problem :
    <pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList,
                        java.sql.Connection,
                        java.sql.PreparedStatement,
                        java.sql.ResultSet,
                        java.sql.SQLException,
                        javax.naming.InitialContext,
                        javax.naming.NamingException,
                        javax.sql.DataSource,
                        javax.transaction.UserTransaction"%>
    <%!
         public void launchTest() throws Exception {
              Connection cnx =null ;
              try {
                   getUserTransaction().begin();
                   // SQL access #1
                   cnx = getConnection("jdbc/xaDatasource1");
                   PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
                   ResultSet rs = stmt.executeQuery();
                   // iterate on resulset from SQL 1
                   int i=1;
                   while (rs.next()){ // SQL exception after 10 iterations
                        System.out.println(i + "");
                        i++;
                        // SQL access #2
                        Connection cnx2 = getConnection("jdbc/xaDatasource2");
                        // problem occurs even if we don't request
                        cnx2.close();
                        // end SQL access #2
                   getUserTransaction().commit();
              } catch (Exception e) {
                   e.printStackTrace();
                   try {
                        getUserTransaction().rollback();
                   } catch (Exception e1) {
                        e1.printStackTrace();
                        throw e;
              } finally {
                   try {
                        if (cnx != null && !cnx.isClosed())
                             cnx.close();
                   } catch (Exception e1) {
                        e1.printStackTrace();
         private UserTransaction getUserTransaction() throws NamingException {
              return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
         private Connection getConnection(String jndiName) throws NamingException, SQLException {
              DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
              return ds.getConnection();
    %>
    <%
    launchTest();
         SQL CODE :
         CREATE TABLE TEST_TABLE (     TEST_COL NUMBER(2));
         insert into test_table values(1);
         insert into test_table values(2);
         insert into test_table values(3);
         insert into test_table values(4);
         insert into test_table values(5);
         insert into test_table values(6);
         insert into test_table values(7);
         insert into test_table values(8);
         insert into test_table values(9);
         insert into test_table values(10);
         insert into test_table values(11);
    %>
    </pre>

    Nicolas Mervaillie wrote:
    Hi,
    I have a problem accessing multiple XA datasources :
    - launch an sql request on datasource 1
    - rs.next() on the resultset
    - use the data to launch another sql request on datasource 2
    After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
    After further investigation, I noticed that :
    - the problem doesn't occur if the same datasource is used for the 2 requests
    - if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
    Anyone experiencing the same problem ?Hi. This is a known weakness of Oracle. If the XA transactional context of a connection
    changes during a result set processing, even if it is switched back correctly, the result
    set is aborted. If the oracle driver has fetched 10 rows, that's all you get. The next
    call to next() that needs real DBMS communication will fail.
    By spec, an XA connection should be able to be swapped out and enlisted in different
    transactions at a per-call granularity, so our pools allow that by default. Try setting
    the KeepXAConnTillTxCOmplete setting in your pool.
    When a connection is put back in the pool, if it is an XA connection we will suspend
    any user tx, and test it with our own test tx, then re-enlist and re-start the user
    tx in flight. This may be the context switch that kills the oracle result set.
    Joe
    >
    Thanks in advance
    Nicolas
    Here's my configuration :
    - Weblogic 8.1 SP4
    - JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
    - Oracle 10g
    - Oracle thin driver xa 10.1.0.2.0
    A JSP I use to reproduce the problem :
    <pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList,
                        java.sql.Connection,
                        java.sql.PreparedStatement,
                        java.sql.ResultSet,
                        java.sql.SQLException,
                        javax.naming.InitialContext,
                        javax.naming.NamingException,
                        javax.sql.DataSource,
                        javax.transaction.UserTransaction"%>
    <%!
         public void launchTest() throws Exception {
              Connection cnx =null ;
              try {
                   getUserTransaction().begin();
                   // SQL access #1
                   cnx = getConnection("jdbc/xaDatasource1");
                   PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
                   ResultSet rs = stmt.executeQuery();
                   // iterate on resulset from SQL 1
                   int i=1;
                   while (rs.next()){ // SQL exception after 10 iterations
                        System.out.println(i + "");
                        i++;
                        // SQL access #2
                        Connection cnx2 = getConnection("jdbc/xaDatasource2");
                        // problem occurs even if we don't request
                        cnx2.close();
                        // end SQL access #2
                   getUserTransaction().commit();
              } catch (Exception e) {
                   e.printStackTrace();
                   try {
                        getUserTransaction().rollback();
                   } catch (Exception e1) {
                        e1.printStackTrace();
                        throw e;
              } finally {
                   try {
                        if (cnx != null && !cnx.isClosed())
                             cnx.close();
                   } catch (Exception e1) {
                        e1.printStackTrace();
         private UserTransaction getUserTransaction() throws NamingException {
              return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
         private Connection getConnection(String jndiName) throws NamingException, SQLException {
              DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
              return ds.getConnection();
    %>
    <%
    launchTest();
         SQL CODE :
         CREATE TABLE TEST_TABLE (     TEST_COL NUMBER(2));
         insert into test_table values(1);
         insert into test_table values(2);
         insert into test_table values(3);
         insert into test_table values(4);
         insert into test_table values(5);
         insert into test_table values(6);
         insert into test_table values(7);
         insert into test_table values(8);
         insert into test_table values(9);
         insert into test_table values(10);
         insert into test_table values(11);
    %>
    </pre>

  • Use of Remote JDBC  SQL Database External Resource

    Does anybody here uses a Remote JDBC External Resource to connect to a database? If so, can you tell me if had any impediment with this approach?
    I'm asking this because our company has a lot of tools to monitor a lot of weblogic assets (such as jdbc connection pools and datasources) and We'd like to monitor all BPM-to-database connections usage and pool health. Other feature that we'd like to give to BPM application is the weblogic's capability to use an Multi-DataSource (one logical DS that represents more than one phisical DS).
    Thanks and Best Regards,
    Luiz Rocha

    Hi,
    We are facing connection leak in our application .We have defined External resouce as Remote JDBC which is defined in weblogic config.Xml. If any body could explain is there is anyway to handle closing connections manually as we do in J2ee conn.close() in ALBPM ??? . I found runtime configuration in oracle implementation type when defining external resource (i.e supported type:oracle database) an attribute
    "*Connection idle time* (mins): The connection is closed after the defined time"
    But i dont find any equivalent entry in my config.xml as we do our implementation of type Remote JDBC.....
    Any advice on this and how connection closing happens in Normal scenarios within ALBPM will be very useful.
    Our connection pool attributes reads like.....(Note *the values of few attributes deleted)
    <JDBCConnectionPool AddOracleFlagToXAResource="true"
    CountOfTestFailuresTillFlush="1"
    DriverName=""
    InitialCapacity="150" KeepXAConnTillTxComplete="true"
    MaxCapacity="200" Name=""
    PasswordEncrypted=""
    Properties="user=" ShrinkingEnabled="false"
    SupportsLocalTransaction="true" Targets=""
    TestConnectionsOnCreate="false" TestConnectionsOnRelease="false"
    TestConnectionsOnReserve="true"
    TestTableName="SQL SELECT 1 FROM DUAL"
    URL=""
    XARetryDurationSeconds="300" XASetTransactionTimeout="true" XATransactionTimeout="420"/>
    .Advice us can the below attribute can be added in Connection pool properties or anything else......
    **{[(*Inactive Connection Timeout The number of inactive seconds on a reserved connection before WebLogic Server reclaims the connection and releases it back into the connection pool.***
    ***You can use the Inactive Connection Timeout feature to reclaim leaked connections - connections that were not explicitly closed by the application. Note that this feature is not intended to be used in place of properly closing connections.***
    ***When set to 0, the feature is disabled*.)}]**

  • XAER_RMFAIL : Resource manager is unavailable

    Weblogic 8.1, I don't recall which service pack, sp10? Maybe?
    Anyway, here's the relevant stack trace. We had a strange WLS implosion last
    night that we're tracking down. We saw these when our code was trying to get
    a connection out of the datapool.
    <Mar 1, 2006 10:09:12 PM PST> <Warning> <JTA> <BEA-110030> <XA resource
    [weblogic.jdbc.wrapper.JTSXAResourceImpl] has not responded in the last 120
    second(s).>
    01 Mar 2006 22:09:21,652 WARN com.pfizer.ecms.as.MetricsSession - logEvent:
    exception: start() failed on resource
    'weblogic.jdbc.wrapper.JTSXAResourceImpl': XAER_RMFAIL : Resource manager is
    unavailable
    javax.transaction.xa.XAException: Internal error: XAResource
    'weblogic.jdbc.wrapper.JTSXAResourceImpl' is unavailable
    at
    weblogic.transaction.internal.XAResourceDescriptor.checkResource(XAResourceD
    escriptor.java:1019)
    at
    weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResour
    ceDescriptor.java:572)
    at
    weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInf
    o.java:1068)
    at
    weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceI
    nfo.java:1001)
    at
    weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceIn
    fo.java:203)
    at
    weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTra
    nsactionImpl.java:419)
    at weblogic.jdbc.jts.Driver.createLocalConnection(Driver.java:207)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:154)
    at
    weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java
    :298)
    at
    com.pfizer.ecms.asutil.DataAccessManager.getConnection(DataAccessManager.jav
    a:117)
    Here's our configuration:
    <JDBCConnectionPool CapacityIncrement="1"
    DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="150" Name="OraclePool"
    Password="*****"
    Properties="user=******" ShrinkPeriodMinutes="5"
    Targets="myserver" TestConnectionsOnCreate="true"
    TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
    TestTableName="dual" URL="jdbc:oracle:thin:@garrison.back:1521:IC"/>
    <JDBCTxDataSource EnableTwoPhaseCommit="true"
    JNDIName="dbpool" Name="OracleSource"
    PoolName="OraclePool" Targets="myserver"/>
    Looking this up, I was pointed to a JTA FAQ page on edocs, and it basically
    said we should be Refreshing the connection pool, but the RefreshMinutes
    parameter is deprecated, and as you can see we're testing connections as is.
    We're puzzled by a couple of things, almost certainly application related,
    but still relevant. We have 150 connections allocated to the pool, but even
    at peak load during the day we bounce around the 40 mark. When we got the
    above exception, we were hitting the 150 ceiling. We don't quite know why
    yet.
    During this time, our DB server was pretty heaviliy loaded. There were some
    horrendous queries running, some data imports, etc. Bascially a bunch of
    stuff that happens at the beginning of the month. However, there weren't
    necessarily a lot of actual users on the system, just a select few.
    One of the things that was happening was a user was using the web interface,
    and sent off a huge horrible query. When it didn't come back in a reasonable
    amount of time, he simply hit "Refresh" on the page, thereby submitting the
    query again (thank you Sir, may I have another!). This was partly why the
    database was so heavily loaded.
    Now, we're puzzled by a couple of things. One, is the spike of actual
    connections in the DB Pool up to 150. This makes no sense.
    Second, is this error detailed above. I've tried some contrived
    experiements, and I can not raise this specific exception myself. My
    experiment was to issue a "update table set column = 1 where id = 1" in a
    generic SQL browser, thus locking the row, and then issue the identical
    command through a Session Bean call. It has happily sat there for up to 10
    minutes (600 seconds, which is our default <JTA Name="inf4.2"
    TimeoutSeconds="600"/> setting), and it eventually times out, but not with
    the same exception. Rather I get "java.sql.SQLException: ORA-01013: user
    requested cancel of current operation" from Weblogic, and
    "weblogic.transaction.internal.TimedOutException:" from my client.
    Apparently, according to the original exception, an XA Resource has not
    responded within 120 seconds, but through my testing, that XA resource isn't
    necessarily a SQL connection waiting on a query.
    Could someone provide insight as to what resource the system may be waiting
    on? For in theory, to me, that's what is consuming our DB Pool. I'm assuming
    that whatever they're waiting on (the DB apparently), they're ALL waiting on
    it, and the reason that the pool spikes is because the system can never find
    a "valid" connection, thus trying again with a new one. Is that what it
    happening?
    Clearly we basically have a tuning issue, but in fact, I'm looking for a
    stability solution. When this occurred, our system run 3 load balanced
    "legs". The middle leg was having the problem. When we dropped it, leg 3
    picked up and then IT had the problem. However, once we killed all 3 of them
    and restarted, they recovered.
    So I'm looking for some idea to keep Weblogic alive, even at the expense of
    booting off these offending transactions, and not having to restart the
    servers.
    Perhaps over time the system would have recovered on its own (most probably
    in fact), but if we can get things cut off early (as well as beating users
    that hit Refresh constantly when things "stick"), we can prevent these from
    escalating the effectively downing the whole site.
    Any thoughts would be appreciated.
    Regards,
    Will Hartung
    ([email protected])

    Will Hartung wrote:
    Weblogic 8.1, I don't recall which service pack, sp10? Maybe?Well, we're only up to sp5 here, so we'll have to catch up ;)
    Please try this:
    <JDBCConnectionPool CapacityIncrement="1"
    DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="45"
    MaxCapacity="45" Name="OraclePool"
    Password="*****"
    Properties="user=******"
    Targets="myserver" TestConnectionsOnCreate="true"
    TestConnectionsOnRelease="false" TestConnectionsOnReserve="true"
    KeepXAConnTillTxComplete="true"
    TestTableName="dual" URL="jdbc:oracle:thin:@garrison.back:1521:IC"/>
    <JDBCTxDataSource EnableTwoPhaseCommit="true"
    JNDIName="dbpool" Name="OracleSource"
    PoolName="OraclePool" Targets="myserver"/>
    You don't want the pool in flux at runtime, either shrinking or
    growing. Just have it make what you need at startup and keep it.
    Test-on-release is a waste of cycles. Also, I set keep-xa-con
    till tx complete, to ensure that only one connection is ever
    used for a given tx. XA allows connections to be changed at the
    granularity of a single JDBC call, but that provides no real
    benefit, and some overhead.
    Let me know if this helps, and do let me know what real
    service pack you're running.
    thanks
    Joe
    Anyway, here's the relevant stack trace. We had a strange WLS implosion last
    night that we're tracking down. We saw these when our code was trying to get
    a connection out of the datapool.
    <Mar 1, 2006 10:09:12 PM PST> <Warning> <JTA> <BEA-110030> <XA resource
    [weblogic.jdbc.wrapper.JTSXAResourceImpl] has not responded in the last 120
    second(s).>
    01 Mar 2006 22:09:21,652 WARN com.pfizer.ecms.as.MetricsSession - logEvent:
    exception: start() failed on resource
    'weblogic.jdbc.wrapper.JTSXAResourceImpl': XAER_RMFAIL : Resource manager is
    unavailable
    javax.transaction.xa.XAException: Internal error: XAResource
    'weblogic.jdbc.wrapper.JTSXAResourceImpl' is unavailable
    at
    weblogic.transaction.internal.XAResourceDescriptor.checkResource(XAResourceD
    escriptor.java:1019)
    at
    weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResour
    ceDescriptor.java:572)
    at
    weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInf
    o.java:1068)
    at
    weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceI
    nfo.java:1001)
    at
    weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceIn
    fo.java:203)
    at
    weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTra
    nsactionImpl.java:419)
    at weblogic.jdbc.jts.Driver.createLocalConnection(Driver.java:207)
    at weblogic.jdbc.jts.Driver.connect(Driver.java:154)
    at
    weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java
    :298)
    at
    com.pfizer.ecms.asutil.DataAccessManager.getConnection(DataAccessManager.jav
    a:117)
    Here's our configuration:
    <JDBCConnectionPool CapacityIncrement="1"
    DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="150" Name="OraclePool"
    Password="*****"
    Properties="user=******" ShrinkPeriodMinutes="5"
    Targets="myserver" TestConnectionsOnCreate="true"
    TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
    TestTableName="dual" URL="jdbc:oracle:thin:@garrison.back:1521:IC"/>
    <JDBCTxDataSource EnableTwoPhaseCommit="true"
    JNDIName="dbpool" Name="OracleSource"
    PoolName="OraclePool" Targets="myserver"/>
    Looking this up, I was pointed to a JTA FAQ page on edocs, and it basically
    said we should be Refreshing the connection pool, but the RefreshMinutes
    parameter is deprecated, and as you can see we're testing connections as is.
    We're puzzled by a couple of things, almost certainly application related,
    but still relevant. We have 150 connections allocated to the pool, but even
    at peak load during the day we bounce around the 40 mark. When we got the
    above exception, we were hitting the 150 ceiling. We don't quite know why
    yet.
    During this time, our DB server was pretty heaviliy loaded. There were some
    horrendous queries running, some data imports, etc. Bascially a bunch of
    stuff that happens at the beginning of the month. However, there weren't
    necessarily a lot of actual users on the system, just a select few.
    One of the things that was happening was a user was using the web interface,
    and sent off a huge horrible query. When it didn't come back in a reasonable
    amount of time, he simply hit "Refresh" on the page, thereby submitting the
    query again (thank you Sir, may I have another!). This was partly why the
    database was so heavily loaded.
    Now, we're puzzled by a couple of things. One, is the spike of actual
    connections in the DB Pool up to 150. This makes no sense.
    Second, is this error detailed above. I've tried some contrived
    experiements, and I can not raise this specific exception myself. My
    experiment was to issue a "update table set column = 1 where id = 1" in a
    generic SQL browser, thus locking the row, and then issue the identical
    command through a Session Bean call. It has happily sat there for up to 10
    minutes (600 seconds, which is our default <JTA Name="inf4.2"
    TimeoutSeconds="600"/> setting), and it eventually times out, but not with
    the same exception. Rather I get "java.sql.SQLException: ORA-01013: user
    requested cancel of current operation" from Weblogic, and
    "weblogic.transaction.internal.TimedOutException:" from my client.
    Apparently, according to the original exception, an XA Resource has not
    responded within 120 seconds, but through my testing, that XA resource isn't
    necessarily a SQL connection waiting on a query.
    Could someone provide insight as to what resource the system may be waiting
    on? For in theory, to me, that's what is consuming our DB Pool. I'm assuming
    that whatever they're waiting on (the DB apparently), they're ALL waiting on
    it, and the reason that the pool spikes is because the system can never find
    a "valid" connection, thus trying again with a new one. Is that what it
    happening?
    Clearly we basically have a tuning issue, but in fact, I'm looking for a
    stability solution. When this occurred, our system run 3 load balanced
    "legs". The middle leg was having the problem. When we dropped it, leg 3
    picked up and then IT had the problem. However, once we killed all 3 of them
    and restarted, they recovered.
    So I'm looking for some idea to keep Weblogic alive, even at the expense of
    booting off these offending transactions, and not having to restart the
    servers.
    Perhaps over time the system would have recovered on its own (most probably
    in fact), but if we can get things cut off early (as well as beating users
    that hit Refresh constantly when things "stick"), we can prevent these from
    escalating the effectively downing the whole site.
    Any thoughts would be appreciated.
    Regards,
    Will Hartung
    ([email protected])

  • Multipool with weblogic 8.1 sp3 and Oracle RAC

    Hi,
    I have an Oracle RAC define with 2 node.
    For each node I defined a simple ConnectionPool using the Oracle thin driver 10 g.
    Then I set a multipool that contains those conections pool.
    This is a good solution: It works... :-)
    Now I would like to use a XA Driver. The documentation say that it is not supported...
    I would like to figure out why?
    Does it mean that an EJB that connect to this multipool cannot participate in a XA transaction?
    Will it work if I use the param KeepXAConnTillTXComplete="true" on the connectionpool? which means that I will use the same conection throughout the transaction.
    Thank you
    Yann.

    Yann Albou wrote:
    Hi,
    I have an Oracle RAC define with 2 node.
    For each node I defined a simple ConnectionPool using the Oracle thin driver 10 g.
    Then I set a multipool that contains those conections pool.
    This is a good solution: It works... :-)
    Now I would like to use a XA Driver. The documentation say that it is not supported...
    I would like to figure out why?
    Does it mean that an EJB that connect to this multipool cannot participate in a XA transaction?
    Will it work if I use the param KeepXAConnTillTXComplete="true" on the connectionpool? which means that I will use the same conection throughout the transaction.
    Thank you
    Yann.Hi. The trouble with XA and multipools is that sometimes XA must recover after failures,
    and if a multipool is involved, the transaction coordinator cannot know whether the
    connection it gets from the multipool for recovery is talking to the same DBMS that was
    involved in the transaction that has to be recovered.
    Do check the 81sp3 documents on this issue.
    Joe

  • WLS 6.1 sp3 and XA and DB2

              Our configuration is:
              WLS 6.1 with sp3 on Solaris and DB2 7.2.7 on AIX running on remote server. Local
              DB2 client is installed on Solaris (LD_LIBRARY_PATH and other DB2 related variables
              are set accordingly).
              In some parts of our system we decided to use message-driven beans to process
              some work off side. In some of them we interact with database and send JMS messages
              to trigger some other MDBs. And we need all these operation to be one unit of
              work. Since we have operation on JMS and DB stores, we were forced to use XA and
              DB2 XA JDBC driver type 2.
              Most of the time things work fine ( always in our dev environment where WLS, DB2
              runs on the same Win2000 box), but rundomly we get JVM to crash on Solaris - like
              once a day or two. We are about to roll out to production but with these crashes
              we are confident about stablity of our app. We found that in most cases (but not
              all) those were related to the situation when DB2 connection were dropped or become
              invalid.
              On BEA website I found the information that WLS does not work in XA mode with
              DB2 7.1, because "APP driver falls back to NET driver". Does this still apply
              to DB2 7.2.7? If yes then I do not understand why Java->JNI call would fall back
              to Java->JNI->Java? Besides on IBM site there is nothing which says that type
              2 driver (so called APP one) requires JDBC client running on the same machine
              as database. If BEA claims that this indeed is the case, then it poses severe
              limitation to XA JDBC driver of IBM. Well, it means it is pretty much useless
              (who runs DB and app server on the same box ?)
              Today we just found new information about additional setting for XA connection
              pools that apply to DB2 and Sybase. For DB2 you need to set KeepXAConnTillTxComplete
              to true in your config.xml. We do not know yet if it is going to make things better
              (any input from BEA?)
              Can we get firm statement answer from BEA whether our configuration is supported
              or if not how we can achieve data/JMS integrity without using DB2 XA driver. Would
              using regular DB2 driver in pseudo-XA mode be a best work around, provided that
              the regular one is stable.
              How precisely WLS behave when it needs to orchestrate distributed transaction
              using pseudo-XA JDBC driver and fully-XA JMS server? In second phase does it first
              as DB to commit and if it succeeds it commits JMS, otherwise it rollbacks everything?
              We are very anxious to get our questions answered please.
              Thanks,
              Waldek
              

    Look for sometime around November. No exact date.
    Eric
    "Dominic Tulley" <[email protected]> wrote in message
    news:[email protected]..
    Thanks Eric,
    you know what I'm going to ask next right?
    Any ideas when SP4 comes out?
    Cheers,
    -Dominic
    "Eric Gross" <[email protected]> wrote in message
    news:[email protected]..
    The next version of Apache that we will support will be 2.0.42/2.0.43
    and
    the module for that will be included in the next Service Pack for6.1(SP4)
    and 7.0(SP2).
    The problem with Apache 2 is that when a new release comes out a newmodule
    needs to be compiled. Most of the time. For 2.0.42/2.0.43 this is notthe
    case.
    Regards,
    Eric
    "Dominic Tulley" <[email protected]> wrote in
    message
    news:3da3f246$[email protected]..
    I'm trying to set this up (initially just apache in front of a single
    WLS
    server but ultimately I want to put it in front of a cluster).
    I've installed Apache 2.0.40.
    I've copied the mod_wl_20.so file into the apache modules folder.
    I've edited the httpd.conf file and added the line:
    LoadModule weblogic_module modules/mod_wl_20.so
    When I run apache -t to check the configuration I get the following:
    C:\Program Files\Apache Group\Apache2\bin>apache -t
    Syntax error on line 173 of C:/Program Files/Apache
    Group/Apache2/conf/httpd.conf:
    Cannot load C:/Program Files/Apache Group/Apache2/modules/mod_wl_20.sointo
    server: The specified procedure could not be found.
    So what's going on here?
    Looking at previous postings it sounds like there's an issue with
    versions
    of apache after 2.0.39 but I can't find a download for that version.Also,
    it sounded like the issues were for WLS 7, not 6.1. Can this work
    with
    2.0.40 or am I wasting my time?
    If I get the mod_wl_20.so from dev2dev I get the "incompatible plugin"
    message that has been mentioned in this group already.
    Any suggestions appreciated,
    -Dominic

  • Exception when executing rules using portal

    Sorry for the unformatted post, but this is all I can do with the HTML client.....
    It looks like the p13nConsoleApp is not deployed properly.
    We are receiving the following exception when we execute a 'rule' in portal.
    ava.rmi.RemoteException: Error in ejbCreate:; nested exception is: javax.ejb.CreateException:
    javax.management.InstanceNotFoundException: Unable to find EventServiceConfig=null
    with parent twistDomain:ApplicationConfig=soe,Location=twist,Name=soe,Type=ApplicationConfigurationConfig.
    javax.ejb.CreateException: javax.management.InstanceNotFoundException: Unable
    to find EventServiceConfig=null with parent twistDomain:ApplicationConfig=soe,Location=twist,Name=soe,Type=ApplicationConfigurationConfig.
    at com.bea.p13n.events.internal.EventServiceBean.ejbCreate(EventServiceBean.java:154)
    at com.bea.p13n.events.internal.EventServiceBean_kh7q5h_Impl.ejbCreate(EventServiceBean_kh7q5h_Impl.java:117)
    at java.lang.reflect.Method.invoke(Native Method) at weblogic.ejb20.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:151)
    at weblogic.ejb20.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:101)
    at weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:148)
    at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:127) at
    weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java:61)
    at com.bea.p13n.events.internal.EventServiceBean_kh7q5h_EOImpl.dispatchEvent(EventServiceBean_kh7q5h_EOImpl.java:29)
    at com.bea.p13n.tracking.TrackingEventHelper.dispatchEvent(TrackingEventHelper.java:132)
    at com.bea.p13n.rules.advislets.RulesAdvisletImpl.sendRuleEvent(RulesAdvisletImpl.java:386)
    at com.bea.p13n.rules.advislets.RulesAdvisletImpl.getAdvice(RulesAdvisletImpl.java:211)
    at com.bea.p13n.advisor.internal.AdvisorImpl.getAdvice(AdvisorImpl.java:89) at
    com.bea.p13n.advisor.internal.CompoundAdvisletImpl.getAdvice(CompoundAdvisletImpl.java:102)
    at com.bea.p13n.advisor.internal.AdvisorImpl.getAdvice(AdvisorImpl.java:89) at
    com.bea.p13n.advisor.internal.EjbAdvisorImpl.getAdvice(EjbAdvisorImpl.java:77)
    at com.bea.p13n.advisor.internal.EjbAdvisorImpl_8wtzgj_EOImpl.getAdvice(EjbAdvisorImpl_8wtzgj_EOImpl.java:102)
    at com.bea.p13n.servlets.jsp.taglib.DivTag.includeBody(DivTag.java:115) at com.bea.p13n.servlets.jsp.taglib.DivTag.doStartTag(DivTag.java:181)
    at jsp_servlet.__billinginformation_mainsummary._jspService(__billinginformation_mainsummary.java:822)
    On the console it appears that the p13nConsoleApp is not deployed.
    Here is our config.xml file
    <?xml version="1.0" encoding="UTF-8"?> <!--Last updated on: Tue Mar 11 12:56:06
    GMT-07:00 2003, If your domain is active, please do not edit the config.xml file.
    Any changes made to that file while the domain is active will not have any effect
    on the domain's configuration and are likely to be lost. If your domain is inactive,
    you may edit this file with an XML editor. If you do so, please refer to the BEA
    Weblogic Server Configuration Reference documentation available from http://edocs.bea.com/wls/docs70/config_xml.
    In general, we recommend that changes to your configuration file be made through
    the Administration Console.--> <Domain ConfigurationVersion="7.0.0.0" Name="twistDomain">
    app tag removed <!--- Application Deployed="true" Name="p13nConsoleApp" Path="/opt/bea7sp1/weblogic700/portal/lib"
    TwoPhase="true"> <WebAppComponent Name="p13nConsole" Targets="twist" URI="p13nConsole.war"/>
    </Application> <Application Deployed="true" Name="soe" Path="./applications/soeApp.ear"
    StagedTargets="" TwoPhase="true"> <ApplicationConfiguration Name="soe" Targets="twist"
    URI="META-INF/application-config.xml"/> <EJBComponent Name="SOE_usermgmt" Targets="twist"
    URI="SOE_usermgmt.jar"/> <EJBComponent Name="accountMgmt" Targets="twist" URI="accountMgmt.jar"/>
    <EJBComponent Name="c2kmaintenance" Targets="twist" URI="c2kmaintenance.jar"/>
    <EJBComponent Name="ejbadvisor" Targets="twist" URI="ejbadvisor.jar"/> <EJBComponent
    Name="events" Targets="twist" URI="events.jar"/> <EJBComponent Name="failOver"
    Targets="twist" URI="failOver.jar"/> <EJBComponent Name="orderMgmt" Targets="twist"
    URI="orderMgmt.jar"/> <EJBComponent Name="pipeline" Targets="twist" URI="pipeline.jar"/>
    <EJBComponent Name="property" Targets="twist" URI="property.jar"/> <EJBComponent
    Name="referenceData" Targets="twist" URI="referenceData.jar"/> <EJBComponent Name="rules"
    Targets="twist" URI="rules.jar"/> <EJBComponent Name="services" Targets="twist"
    URI="services.jar"/> <EJBComponent Name="tuxedoServices" Targets="twist" URI="tuxedoServices.jar"/>
    <WebAppComponent Name="masterDataSync.war" URI="masterDataSync.war"/> <WebAppComponent
    Name="orderService" Targets="twist" URI="orderService.war"/> <WebAppComponent
    Name="orderServiceDataSync" Targets="twist" URI="dataSync.war"/> </Application>
    <ApplicationManager Name="twistDomain"/> <CachingRealm BasicRealm="C2kCustomRealm"
    CacheCaseSensitive="true" Name="SoeCachingRealm"/> <CustomRealm ConfigurationData="IgnorePrincipals=system,Administrators,everyone,guest,SoeUsers,admin;GroupName=SoeUsers"
    Name="C2kCustomRealm" RealmClassName="com.qwest.wireless.soe.security.C2kSecurityRealm"/>
    <EmbeddedLDAP Credential="{3DES}fEhMlTXHx3AEUUOg/nNBOWobvlCzwMdsztHoPLEE5Kc="
    Name="twistDomain"/> <FileRealm Name="wl_default_file_realm"/> <JDBCConnectionPool
    DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1" MaxCapacity="5"
    Name="dataSyncPool" Properties="user=portal7;password=portal7;dll=ocijdbc8;protocol=thin"
    Targets="twist,twist" TestConnectionsOnReserve="true" TestTableName="dual" URL="jdbc:oracle:thin:@pcsdev05:1521:soews104"/>
    <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="5" Name="jmsPool" Properties="user=jmstore;password=jmstore;dll=ocijdbc8;protocol=thin"
    Targets="twist" TestConnectionsOnReserve="true" TestTableName="dual" URL="jdbc:oracle:thin:@pcsdev05:1521:soews104"/>
    <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="10" Name="oracleCommercePool" Properties="user=portal7;password=portal7;dll=ocijdbc8;protocol=thin"
    Targets="twist" TestConnectionsOnReserve="true" TestTableName="dual" URL="jdbc:oracle:thin:@pcsdev05:1521:soews104"/>
    <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="20" Name="oraclePool" Properties="user=supdt;password=supdt;dll=ocijdbc8;protocol=thin"
    Targets="twist" TestConnectionsOnReserve="true" TestTableName="dual" URL="jdbc:oracle:thin:@pcsdev05:1521:soews104"/>
    <JDBCConnectionPool DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="5" Name="pdb" Properties="user=supdt;password=supdt;dll=ocijdbc8;protocol=thin"
    RefreshMinutes="2" Targets="twist" TestConnectionsOnReserve="true" TestTableName="dual"
    URL="jdbc:oracle:thin:@pcsdev05:1521:soews104"/> <JDBCConnectionPool ConnLeakProfilingEnabled="false"
    DriverName="oracle.jdbc.driver.OracleDriver" EnableResourceHealthMonitoring="true"
    InitialCapacity="1" JDBCXADebugLevel="0" KeepLogicalConnOpenOnRelease="false"
    KeepXAConnTillTxComplete="false" MaxCapacity="5" Name="rtma" NeedTxCtxOnClose="false"
    NewXAConnForCommit="false" PrepStmtCacheProfilingEnabled="false" PrepStmtCacheProfilingThreshold="10"
    PreparedStatementCacheSize="10" Properties="user=rtma;password=rtma;dll=ocijdbc8;protocol=thin"
    RecoverOnlyOnce="false" RefreshMinutes="2" SqlStmtMaxParamLength="10" SqlStmtParamLoggingEnabled="false"
    SqlStmtProfilingEnabled="false" Targets="twist" TestConnectionsOnReserve="true"
    TestTableName="dual" URL="jdbc:oracle:thin:@pcsc2k:1521:rtmatst" XAEndOnlyOnce="false"/>
    <JDBCDataSource JNDIName="jmsPool" Name="jmsPool" PoolName="jmsPool" Targets="twist"/>
    <JDBCDataSource JNDIName="oraclePool" Name="oraclePool" PoolName="oraclePool"
    Targets="twist"/> <JDBCDataSource JNDIName="oracleProductCatalogPool" Name="pdbsource"
    PoolName="pdb" Targets="twist"/> <JDBCDataSource JNDIName="oracleRtmaPool" Name="rtmasource"
    PoolName="rtma" RowPrefetchEnabled="false" RowPrefetchSize="48" StreamChunkSize="256"
    Targets="twist"/> <JDBCTxDataSource JNDIName="weblogic.jdbc.jts.commercePool"
    Name="commercePool" PoolName="oracleCommercePool" Targets="twist"/> <JDBCTxDataSource
    JNDIName="weblogic.jdbc.jts.dataSyncPool" Name="dataSyncPool" PoolName="dataSyncPool"
    Targets="twist,twist"/> <JDBCTxDataSource EnableTwoPhaseCommit="true" JNDIName="txOraclePool"
    Name="txOraclePool" PoolName="oraclePool" Targets="twist"/> <JMSJDBCStore ConnectionPool="jmsPool"
    Name="RebateMsgStore" PrefixName="rebate"/> <JMSServer Name="SoeJMSServer" Store="RebateMsgStore"
    Targets="twist"> <JMSQueue JNDIName="SoeOrderResubmit" Name="OrderResubmitJMSQueue"
    StoreEnabled="false"/> <JMSQueue JNDIName="SoeOrderSubmit" Name="OrderSubmitJMSQueue"
    StoreEnabled="false"/> <JMSQueue JNDIName="SoeReferenceDataRefresh" Name="ReferenceDataJMSQueue"
    StoreEnabled="false"/> <JMSQueue JNDIName="SoeTransactionHistoryLog" Name="TransactionHistoryLogJmsQueue"
    StoreEnabled="false"/> <JMSQueue JNDIName="CCARefundSubmit" Name="TuxServicesJMSQueue"
    RedeliveryDelayOverride="30000" StoreEnabled="true"/> <JMSTopic JNDIName="SoeFailoverReload"
    Name="FailoverReloadTopic" StoreEnabled="false"/> </JMSServer> <JTA Name="twistDomain"
    TimeoutSeconds="120"/> <Log FileCount="14" FileMinSize="1" FileName="logs/domain.log"
    Name="twistDomain" NumberOfFilesLimited="true" RotationType="byTime"/> <PasswordPolicy
    LockoutDuration="15" LockoutThreshold="4" Name="wl_default_password_policy"/>
    <Realm CachingRealm="SoeCachingRealm" FileRealm="wl_default_file_realm" Name="soe_security_realm"/>
    <SNMPAgent Name="twistDomain"/> <Security CompatibilityMode="true" Name="twistDomain"
    PasswordPolicy="wl_default_password_policy" Realm="soe_security_realm" RealmSetup="true"/>
    <SecurityConfiguration Credential="{3DES}x9Dc91liWeYhTCNCdL6p4XSuwuE/vQYuxUx00OHkQfou++Nz7ir8dA5r54wIVykPJ9ELRmVMKEUYFP33OWI2AyxwRZpHGZWv"
    Name="twistDomain"/> <Server Name="blank"> <COM Name="blank"/> <ExecuteQueue Name="default"/>
    <IIOP Name="blank"/> <JTAMigratableTarget Cluster="" Name="blank" UserPreferredServer="blank"/>
    <JTARecoveryService Name="blank"/> <KernelDebug Name="blank"/> <Log Name="blank"/>
    <SSL Name="blank"/> <ServerDebug Name="blank"/> <ServerStart Name="blank"/> <WebServer
    Name="blank"/> </Server> <Server ListenPort="4501" Name="twist" ServerVersion="7.0.1.0"
    TransactionLogFilePrefix="tlogs/"> <COM Name="twist"/> <ExecuteQueue Name="default"
    ThreadCount="15"/> <IIOP Name="twist"/> <JTAMigratableTarget Cluster="" Name="twist"
    UserPreferredServer="twist"/> <JTARecoveryService Name="twist"/> <KernelDebug
    Name="twist"/> <Log FileCount="14" FileMinSize="1" FileName="logs/twist.log" Name="twist"
    NumberOfFilesLimited="true" RotationType="byTime"/> <SSL ListenPort="4502" Name="twist"/>
    <ServerDebug Name="twist"/> <ServerStart Name="twist"/> <WebServer LogFileName="logs/access.log"
    LogRotationPeriodMins="1440" LogRotationType="date" LoggingEnabled="true" Name="twist"/>
    </Server> <StartupClass ClassName="com.qwest.wireless.soe.services.ejb.C2kTransactionHistoryQueueRefreshStartup"
    Name="C2kTransactionHistoryLogging queue refresh scheduler startup class" Targets="twist"/>
    <StartupClass ClassName="com.qwest.wireless.soe.services.ejb.C2kServiceReportStartup"
    Name="MyStartup Class" Targets="twist"/> <StartupClass ClassName="com.qwest.wireless.soe.referenceData.ejb.ReferenceDataStartup"
    Name="ReferenceDataStartupClass" Targets="blank"/> <WLECConnectionPool MaximumPoolSize="5"
    MinimumPoolSize="1" Name="ProductAvailabilityPool" PrimaryAddresses="//pcsdev50:14502"
    Targets="twist" WLEDomain="PA_WLE_JAVA"/> <WLECConnectionPool FailoverAddresses="//sia-co5:31011"
    MaximumPoolSize="5" MinimumPoolSize="1" Name="SIAWLECConnectionPool" PrimaryAddresses="//sia-co6:31011"
    Targets="twist" WLEDomain="SIA_DASC"/> <WTCServer Name="twist" Targets="twist">
    <WTCExport EJBName="com.qwest.wireless.soe.tuxedoServices.ejb.TuxCCAAdapter" LocalAccessPoint="TWIST_DOM"
    Name="Refund" ResourceName="CCA_REFUND"/> <WTCImport LocalAccessPoint="TWIST_DOM"
    Name="C2k_1" RemoteAccessPointList="TWISTELINK1,TWISTELINK2" ResourceName="ASMBLR_SOE"/>
    <WTCImport LocalAccessPoint="TWIST_DOM" Name="C2k_2" RemoteAccessPointList="TWISTELINK2,TWISTELINK1"
    ResourceName="ASMBLR_SOE"/> <WTCLocalTuxDom AccessPoint="TWIST_DOM" AccessPointId="TWIST_DOM"
    BlockTime="70" ConnectionPolicy="ON_DEMAND" Interoperate="Yes" NWAddr="//nexus:4503"
    Name="TWIST_DOM" Security="NONE"/> <WTCRemoteTuxDom AccessPoint="TWISTELINK1"
    AccessPointId="TWISTELINK1" LocalAccessPoint="TWIST_DOM" NWAddr="//pcsdev53:14548"
    Name="TWISTELINK1"/> <WTCRemoteTuxDom AccessPoint="TWISTELINK2" AccessPointId="TWISTELINK2"
    LocalAccessPoint="TWIST_DOM" NWAddr="//nowhere:9999" Name="TWISTELINK2"/> </WTCServer>
    </Domain>
    Cheers Philipp

    Hi Karol,
    thanks for your answer.
    I also had this SP synchronization issue regarding other problems with the execution of web templates. See my post <a href="https://forums.sdn.sap.com/thread.jspa?threadID=209587">https://forums.sdn.sap.com/thread.jspa?threadID=209587</a>.
    I will once again ask the basis team, if the two SP-levels are identical.
    Regards,
    Philipp

  • CMT cause locks in the database

    We are using CMT. The tx_datasource uses the Sybase non-xa conneciton pool. And
    only one datasource is used in the container transactions. According to the documentation,
    the jts wrapper of the non-xa driver should be used internally for the CMT, hence,
    only one connection is used for each transaction involved. But we saw more than
    one connections are used in the transaction, and the connections lock each other
    in Sybase. Can anyone help: how to ensure one database connection for one transaction
    with CMT?
    Thanks,
    Haoguang

    I'm not sure if's connected, but it looks like you are trying to invoke a finder
    afer be.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates
    method caused transaction rollback.
    Also, what are the TX attributes of the EJB? Do you use RequresNew?
    Other thing is that MaxCapacity="5" for the pool is way too low - it should be equal
    at least number of exec threads...
    Regards,
    Slava Imeshev
    "Haoguang" <[email protected]> wrote in message news:[email protected]...
    >
    Hi, Slava,
    Indeed I forgot to say which version of wls. I have done the test on both wls7.0sp2
    and the wls8.1sp1, got the same result. Here under is the part of the config.xml
    and the log of wls7.0sp2.
    Thanks,
    Haoguang
    Connection pool:
    <JDBCConnectionPool CapacityIncrement="2"
    DriverName="com.sybase.jdbc2.jdbc.SybDriver"
    KeepXAConnTillTxComplete="true" MaxCapacity="5" Name="sybase"
    Password="{3DES}806G7/IUF2V3CYIDxhqoxg=="
    PreparedStatementCacheSize="10"
    Properties="FAKE_METADATA=true;user=haoguang"
    SupportsLocalTransaction="true" Targets="myserver"
    TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
    TestTableName="resource_db..feestdagen" URL="jdbc:sybase:Tds:dp_dsp_st_1:3050"/>
    TX_DataSource:
    <JDBCTxDataSource EnableTwoPhaseCommit="true" JNDIName="tx_sybase"
    Name="tx_sybase" PoolName="sybase" Targets="myserver"/>
    JTA log
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <49:df0ad1997f28edb9:
    enlist weblogic.jdbc.jts.Connection, beforeState=new>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <49:df0ad1997f28edb9:
    XA.start(rm=weblogic.jdbc.jts.Connection, xar=weblogic.jdbc.jts.Connection@499877,
    flags=TMNOFLAGS)>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    startResourceUse, Number of active requests:1, last alive time:0 ms ago.>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <49:df0ad1997f28edb9:
    XA.start DONE (rm=weblogic.jdbc.jts.Connection, xar=weblogic.jdbc.jts.Connection@499877>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027><ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    endResourceUse, Number of active requests:0>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <Resource[weblogic.jdbc.jts.Connection]
    new-->started>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <49:df0ad1997f28edb9:
    enlist weblogic.jdbc.jts.Connection, afterState=started>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <49:df0ad1997f28edb9> <110027> <49:df0ad1997f28edb9:
    [EJBbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(java.lang.String,java.lang.String,int,java.util.
    Collection,java.util.Collection)]:
    setProperty: weblogic.jdbc=t3://144.248.0.237:7001>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    delist weblogic.jdbc.jts.Connection, TMSUSPEND, beforeState=started, startThread=Thread[ExecuteThread:
    '10' for queue: 'default',5,Thread Group for Queue: 'default']>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    XA.end(rm=weblogic.jdbc.jts.Connection, xar=weblogic.jdbc.jts.Connection@499877,
    flags=TMSUCCESS)>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    startResourceUse, Number of active requests:1, last alive time:0 ms ago.>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    XA.end DONE (rm=weblogic.jdbc.jts.Connection, xar=weblogic.jdbc.jts.Connection@499877>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    endResourceUse, Number of active requests:0>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <Resource[weblogic.jdbc.jts.Connection]
    started-->ended>
    ####<Oct 29, 2003 9:53:25 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    delist weblogic.jdbc.jts.Connection, afterStateended>
    ####<Oct 29, 2003 9:53:59 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <wakeUp runing: 49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:53:59 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <Still within transaction abandon grace period.
    Will start abandoning transactions after 531 seconds. 49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:53:59 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <49:df0ad1997f28edb9 wakeUpAfterSeconds(30)>
    ####<Oct 29, 2003 9:53:59 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <49:df0ad1997f28edb9 wakeUpAfterSeconds(30)>
    ####<Oct 29, 2003 9:53:59 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <49:df0ad1997f28edb9 wakeUpAfterSeconds(10)>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <wakeUp runing: 49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <Still within transaction abandon grace period.
    Will start abandoning transactions after 521 seconds. 49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <Thread-0>
    <kernel identity> <> <110027> <49:df0ad1997f28edb9 wakeUpAfterSeconds(30)>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    [EJBbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(java.lang.String,java.lang.String,int,java.util.
    Collection,java.util.Collection)]:
    ServerTransactionImpl.globalRollback()>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    [EJBbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(java.lang.String,java.lang.String,int,java.util.
    Collection,java.util.Collection)]:
    TX[49:df0ad1997f28edb9] active-->rolling back>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    [EJBbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(java.lang.String,java.lang.String,int,java.util.
    Collection,java.util.Collection)]:
    assignLocalRes. localsc=myserver+144.248.0.237:7001+mydomain+t3+, res=weblogic.jdbc.jts.Connection>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    delist weblogic.jdbc.jts.Connection, TMFAIL, beforeState=ended, startThread=null>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <ServerSCInfo.startRollback:
    49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027><ServerResourceInfo[weblogic.jdbc.jts.Connection].rollback(tx):
    49:df0ad1997f28edb9>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    ServerResourceInfo[weblogic.jdbc.jts.Connection].rollback(tx, xid)>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    XAResource[weblogic.jdbc.jts.Connection].rollback()>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    startResourceUse, Number of active requests:1, last alive time:0 ms ago.>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    XAResource[weblogic.jdbc.jts.Connection].rollback: SUCCESS>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <ResourceDescriptor[weblogic.jdbc.jts.Connection]:
    endResourceUse, Number of active requests:0>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <49:df0ad1997f28edb9:
    [EJBbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(java.lang.String,java.lang.String,int,java.util.
    Collection,java.util.Collection)]:
    setResourceOrSCCompletionState: C_ROLLEDBACK>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <ServerResourceInfo[weblogic.jdbc.jts.Connection].rollback
    done>
    ####<Oct 29, 2003 9:54:09 AM CET> <Debug> <JTA> <inf237> <myserver> <ExecuteThread:
    '12' for queue: 'default'> <kernel identity> <> <110027> <Resource[weblogic.jdbc.jts.Connection]
    ended-->rolledback>
    ####<Oct 29, 2003 9:54:09 AM CET> <Info> <EJB> <inf237> <myserver> <ExecuteThread:
    '10' for queue: 'default'> <kernel identity> <> <010049> <EJB Exception in method:
    ejbFindByResourceParentAndResourceChildAndWeekday: javax.transaction.InvalidTransactionException:
    Attempt to resume an inactive transaction: 49:df0ad1997f28edb9>
    javax.transaction.InvalidTransactionException: Attempt to resume an inactive transaction:
    49:df0ad1997f28edb9
    at weblogic.transaction.internal.TransactionManagerImpl.resume(TransactionManagerImpl.java:357)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.resume(ServerTransactionManagerImpl.java:304)
    at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.resumeTransaction(RDBMSPersistenceManager.java:768)
    atbe.azvub.j2ee.schedule.CPAgendaTemplateBean_hizf65__WebLogic_CMP_RDBMS.ejbFindByResourceParentAndResourceChildAndWeekday
    (CPAgendaTemplateBean_hizf65__WebLogic_CMP_RDBMS.java:1331)
    at java.lang.reflect.Method.invoke(Native Method)
    at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.collectionFinder(RDBMSPersistenceManager.java:330)
    at weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityManager.java:983)
    at weblogic.ejb20.manager.BaseEntityManager.collectionFinder(BaseEntityManager.java:955)
    at weblogic.ejb20.internal.EntityEJBLocalHome.finder(EntityEJBLocalHome.java:476)
    atbe.azvub.j2ee.schedule.CPAgendaTemplateBean_hizf65_LocalHomeImpl.findByResourceParentAndResourceChildAndWeekday(CPAgenda
    TemplateBean_hizf65_LocalHomeImpl.java:132)
    at be.azvub.j2ee.schedule.bean.CBSchedulingServerBean.initAgendaTemplate(CBSchedulingServerBean.java:669)
    at be.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplate(CBSchedulingServerBean.java:856)
    atbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean_srjcdy_EOImpl.pasteAgendaTemplate(CBSchedulingServerBean_srjcdy_EOImp
    l.java:1932)
    at be.azvub.j2ee.schedule.bean.CBSchedulingServerBean.pasteAgendaTemplates(CBSchedulingServerBean.java:917)
    atbe.azvub.j2ee.schedule.bean.CBSchedulingServerBean_srjcdy_EOImpl.pasteAgendaTemplates(CBSchedulingServerBean_srjcdy_EOIm
    pl.java:1878)
    at be.azvub.j2ee.schedule.bean.CBSchedulingServerBean_srjcdy_EOImpl_WLSkel.invoke(Unknown
    Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
    at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:114)
    at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
    at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
    at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
    at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)

  • Timeout before connections are put back in the pool ?

    Hi,
    I am running a test with a single client : the test client send a requests,
    wait for the response and when it gets it send another request and so on.
    Looking at the connection pool, I can see that up to 8 DB connections
    (connection high column in the WL console) have been used during the test
    and I'm wondering why.
    Our code has the following logic :
    - get connection from pool
    - execute query
    - release connection (done in a finally block)
    We're 100% sure the connections get put back in the pool after each
    request. Is it possible that it would take some time before the connection
    is put back in the pool which would explain why we use more than 1
    connection ?
    Thanks
    -Vincent

    "Priscilla Fung" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    All these attributes are for internal JDBC XA connection pool usages only.
    Their main purpose is to work around bugs of various vendor's JDBC XA
    drivers. Therefore, by default, it should be turned off. Also, they are
    only applicable for TxDataSource with a XA connection pool, not a regular
    connection pool.
    Which driver are you using?
    thanks Priscilla. Ok, so I won't mess with these parameters :-). Are you
    confirming that they have nothing to do with the following behaviour :
    1/ Start a transaction (entry of transaction-demarcated method)
    2/ get a connection from the pool ,
    3/ execute the query,
    4/ release the connection
    5/ get a connection from the pool ,
    6/ execute the query,
    7/ release the connection
    8/ commit the transaction (exit method)
    Then, the pool will show that 2 connections were used (and not one as I was
    expecting). Joseph confirmed to me that this behaviour was due to the fact
    that the connection is not recycled till the end of the transaction. I was
    wondering if it had anything to do with these parameters ?
    Thanks
    -Vincent
    Regards,
    Priscilla
    Vincent Massol <[email protected]> wrote in message
    news:[email protected]...
    Thanks Joseph. I would have thought that KeepXAConnTillTxComplete was
    controlling this behaviour (it is set to false). Isn't that so ? Do youknow
    where I could find information on :
    KeepXAConnTillTxComplete (currently set to false)
    NeedTxCtxOnClose (currently set to false)
    NewXAConnForCommit (currently set to false)
    XAEndOnlyOnce (currently set to false)
    Thanks
    -Vincent
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    Vincent Massol wrote:
    Actually, I forgot to mention that we using the following logic :
    1/ start transaction (enter method of session bean which is
    transaction
    enabled)
    2/ Perform several JDBC queries
    3/ commit transaction (exit of method)
    Thus, is it possible that because we're using a Tx DataSource and
    transactions, the DB connections from the pool are not recycled
    until
    the
    commit ?Absolutely.
    Also, I've found that there are some parameters related to XA :
    KeepXAConnTillTxComplete (currently set to false)
    NeedTxCtxOnClose (currently set to false)
    NewXAConnForCommit (currently set to false)
    XAEndOnlyOnce (currently set to false)
    As they are set to false, the connections shouldn't be reserved
    until
    the
    commit, right ?
    Can someone explain to me (or point me to some doc) where theseparameters
    are explained (I have looked a bit everywhere and couldn't find any
    information) ?
    Thanks
    -Vincent
    "Vincent Massol" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I am running a test with a single client : the test client send arequests,
    wait for the response and when it gets it send another request and
    so
    on.
    Looking at the connection pool, I can see that up to 8 DB
    connections
    (connection high column in the WL console) have been used during
    the
    test
    and I'm wondering why.
    Our code has the following logic :
    - get connection from pool
    - execute query
    - release connection (done in a finally block)
    We're 100% sure the connections get put back in the pool after
    each
    request. Is it possible that it would take some time before theconnection
    is put back in the pool which would explain why we use more than 1
    connection ?
    Thanks
    -Vincent
    B.E.A. is now hiring! (12/14/01) If interested send a resume to
    [email protected]
    DIRECTOR OF PRODUCT PLANS AND STRATEGY San Francisco,
    CA
    E-SALES BUSINESS DEVELOPMENT REPRESENTATIVE Dallas, TX
    SOFTWARE ENGINEER (DBA) Liberty
    Corner,
    NJ
    SENIOR WEB DEVELOPER San Jose, CA
    SOFTWARE ENGINEER (ALL LEVELS), CARY, NORTHCAROLINA San Jose, CA
    SR. PRODUCT MANAGER Bellevue, WA
    SR. WEB DESIGNER San Jose, CA
    Channel Marketing Manager - EMEA Region London, GBR
    DIRECTOR OF MARKETING STRATEGY, APPLICATION SERVERS San Jose, CA
    SENIOR SOFTWARE ENGINEER (PLATFORM) San Jose, CA
    E-COMMERCE INTEGRATION ARCHITECT San Jose, CA
    QUALITY ASSURANCE ENGINEER Redmond, WA
    Services Development Manager (Business Development Manager - Services)Paris, FRA; Munich, DEU
    SENIOR SOFTWARE ENGINEER (PLATFORM) Redmond, WA
    E-Marketing Programs Specialist EMEA London, GBR
    BUSINESS DEVELOPMENT DIRECTOR - E COMMERCE INTEGRATION San Jose, CA
    MANAGER, E-SALES Plano, TX

Maybe you are looking for