相关文章推荐
捣蛋的皮带  ·  【Oracle错误处理】java ...·  2 周前    · 
打盹的课本  ·  getObject 方法 ...·  2 周前    · 
重情义的自行车  ·  在AWS ...·  1 周前    · 
温暖的海龟  ·  达梦spring-data-jdbc - ...·  1 周前    · 
性感的黄豆  ·  浅谈 C++ 中的 new/delete ...·  3 月前    · 
耍酷的啄木鸟  ·  Kotlin 数组 ...·  10 月前    · 
失望的日光灯  ·  js 对象转xml-掘金·  1 年前    · 

To return expected results, you can:

  • Reduce the number of search terms. Each term you use focuses the search further.
  • Check your spelling. A single misspelled or incorrectly typed term can change your result.
  • Try substituting synonyms for your original terms. For example, instead of searching for "java classes", try "java training"
  • Did you search for an IBM acquired or sold product ? If so, follow the appropriate link below to find the content you need.
  • When a DataSource is used to connect to an Oracle database in WebSphere Application Server, the following exception might be issued when Oracle is enlisted in an XA transaction:
    Encountered an XA resource error during an XA end operation: {0} {1} -3 oracle.jdbc.xa.OracleXAException at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:659) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:301) at com.ibm.ejs.jts.jta.XARminst.endAssociation(XARminst.java:365)...

    Cause

    The problem is caused by the tight coupling of transaction branches in the Oracle JDBC driver.
    The problem occurs with the Oracle JDBC driver V8.1.7.4 and below and V9.2.0.2 and below.
    In XA specification, transactions that come from a Transaction Manager (TM) can be handled as tightly-coupled transactions or loosely-coupled transactions.
    From the Database perspective, applications that connect to a Database through a TM handle global transactions.
    The global transaction may contain multiple application threads that participate as a single global transaction or as a group of threads within a single global transaction.
    Thus, the relationship between any pair of participating threads in a transaction received from a TM through Oracle can be either tightly-coupled or loosely-coupled.
    A global transaction is made more complex by branches.
    Each branch can point to a different Resource Manager (RM).
    For example, an Oracle database, a file system, etc, can each be in separate branches tracked by the TM.
    In total, all the branches make up the global transaction.
    What it does?
    In a tightly-coupled transaction, all branches are designed to share resources.
    In addition, a RM's isolation policies, must monitor (guarantee) the share of locks, and assure that a resource deadlock does not occur within the transaction branch.
    How do tightly-coupled transaction branches cause errors?
    Tightly-coupled transaction branches allow multiple application components, sometimes on different application servers, to share access to data in a single Oracle database under the same global transaction.
    Meaning that the different transaction branches share locks under the global transaction.
    This feature can be convienent in custom applications that are written to utilize this feature.
    However, this feature can often causes errors in applications that are not written to expect shared locks between transaction branches.

    The following steps should resolve the problem:
  • The Oracle client and server must both be upgraded.
  • For Oracle V8.1.7.4, patch 2511780 (available from Oracle Corporation) must be installed. If you are using Oracle 8i at a level below V8.1.7.4, you must first upgrade to V8.1.7.4.
  • For Oracle V9.2.0.2, you can either install patch 2511780 or upgrade to Oracle V9.2.0.3 (which includes the patch) or higher. The latest available maintenance is preferable.
  • You can also upgrade to Oracle 10g.
  • On WebSphere Application Server, the data source that is used to connect to the Oracle database must be configured with a custom property named transactionBranchesLooselyCoupled set to true .
  • When the transactionBranchesLooselyCoupled property is set correctly, the following message will appear in the SystemOut.log for the application server:
    CONM6021W: A Java Database Connectivity (JDBC) provider property (TransactionBranchesLooselyCoupled) is set in Oracle. Oracle patch 2511780 must be applied before setting this property.

    This message will appear even if patch 2511780 is applied or the JDBC driver is at a level that includes the patch. If it is applied, the message can be ignored.

    [{"Type":"MASTER","Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"ARM Category":[{"code":"a8m50000000CdYAAA0","label":"WebSphere Application Server traditional-All Platforms-\u003EJ2C-ConnectionPooling-JDBCDrivers-\u003EConnection Pooling-J2C-DB Connections-\u003EConnection Pooling"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.5.5;9.0.5"},{"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Java SDK","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]