Wednesday 19 February 2014

java.sql.SQLSyntaxErrorException: ORA-02089: COMMIT is not allowed in a subordinate session

Hi Guys....

I had faced different scenario in SOA 11.1.1.1.4.

Scenario:- We are trying to call a stored Proc in BPEL and it is errored out as it is passing when you retry it.

While trying to call a stored procedure from Oracle SOA 11g BPEL to EBS it throws below error
"java.sql.SQLSyntaxErrorException: ORA-02089: COMMIT is not allowed in a subordinate session".

This error happens when there is a commit in the stored proc and that BPEL is using XA transaction.
If you are using Global Transactions (XA) in your DB Adapter then the commit will happen only after the BPEL process completes.

To avoid the above error :

1. Make sure you don't have explicit commits within the stored procedure as BPEL tries to manage the transaction commit and there is a conflict if the stored proc. has an explicit commit inside it.

2. You can use local transactions (non-XA) in your DB Adapter if you don't want to wait till the process is over for the commit to happen.



Happy Learning...!!!!!!   Fun Sharing....!!!!!!!!!

1 comment:

  1. Hi Ram,
    We have Oracle weblogic 12.1 and Oracle Database 12c which is recently upgraded from 11g. And on weblogic datasource driver was XA
    1. we had ORA-02089: COMMIT is not allowed in a subordinate session issue hence as suggested by Oracle we changed datasource driver to non XA
    2. But now we used to get intermittent issues sometimes we used to get SQLRecoverableException: No more data to read from socket

    Can you please help here?

    ReplyDelete