XA transaction settings in BPEL

I want to implement the XA transaction in my BPEL process
I have made the follwing settings
define a XA datasource define the Connection Factory.
Defining Datasource and Connection Pool
set transaction as participate in bpel.xml (for global transaction)
what settings do I need to do at partner link level.
It is still failing for XA Transaction level.
It will be great if someone can help me out on this issue.

Hi,
the BPEL forum is at BPEL
Frank

Similar Messages

  • SDO Service Data Objects transaction behavior in BPEL question

    I was led to believe (this is taught in the SOA BCA class) that if we create, modify, or delete an SDO then the changes are committed at the end of the scope activity in the BPEL process and rolled back if there is an uncaught fault in the scope.
    I have faound that this is not what I am seeing. When modifying using an assign then the update is performed at the end of the assign, create and remove is also immediate. I have seen that if an assign has two copies and the first one succeeds and the second fails then both are rolled back.
    What is the correct behavior or is there a setting that controls the transaction behavior?
    Thanks ptlx

    I was led to believe (this is taught in the SOA BCA class) that if we create, modify, or delete an SDO then the changes are committed at the end of the scope activity in the BPEL process and rolled back if there is an uncaught fault in the scope.
    I have faound that this is not what I am seeing. When modifying using an assign then the update is performed at the end of the assign, create and remove is also immediate. I have seen that if an assign has two copies and the first one succeeds and the second fails then both are rolled back.
    What is the correct behavior or is there a setting that controls the transaction behavior?
    Thanks ptlx

  • Local transaction support when BPEL invokes JCA adapter

    Hi all,
    I've implemented a BPEL process consisting of multiple invoke activities to my (custom) JCA Resource Adapter which connects to an EIS.
    My concern is to support local transactions. Here are some code snippets describing what I've done so far.
    Declare the transaction support at deployment time (ra.xml)
    <transaction-support>LocalTransaction</transaction-support>Implementer class of ManagedConnection interface
    public class MyManagedConnection implements ManagedConnection {
         public XAResource getXAResource() throws ResourceException {
             throw new NotSupportedException("XA Transactions not supported");
         public LocalTransaction getLocalTransaction() throws ResourceException {
             return new MyLocalTransaction(this);
            public void sendTheEvent(int eventType, Object connectionHandle) {
                 ConnectionEvent event = new ConnectionEvent(this, eventType);
                 if (connectionHandle != null) {
                    event.setConnectionHandle(connectionHandle);
                ConnectionEventListener listener = getEventListener();
             switch (eventType) {
              case ConnectionEvent.CONNECTION_CLOSED:
                   listener.connectionClosed(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_STARTED:
                   listener.localTransactionStarted(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_COMMITTED:
                   listener.localTransactionCommitted(event); break;
              case ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK:
                   listener.localTransactionRolledback(event); break;
              case ConnectionEvent.CONNECTION_ERROR_OCCURRED:
                   listener.connectionErrorOccurred(event); break;
              default: break;
    }Implementer class of LocalTransaction interface
    public class MyLocalTransaction implements javax.resource.spi.LocalTransaction {
         private MyManagedConnection mc = null;
         public MyLocalTransaction(MyManagedConnection mc) {
             this.mc = mc;
         @Overide
         public void begin() throws ResourceException {
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_STARTED, mc);
         @Override
         public void commit() throws ResourceException {
             eis.commit(); //eis specific method
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_COMMITTED, mc);
         @Override
         public void rollback() throws ResourceException {
             eis.rollback(); //eis specific method
             mc.sendTheEvent(ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK, mc);
    }Uppon BPEL process completion, MyLocalTransaction.commit() is called. However, localTransactionCommitted(event) fails and I get the following error:
    Error committing transaction:; nested exception is: weblogic.transaction.nonxa.NonXAException: java.lang.IllegalStateException:
    [Connector:199175]This ManagedConnection is managed by container for its transactional behavior and has been enlisted to JTA transaction by container;
    application/adapter must not call the local transaction begin/commit/rollback API. Reject event LOCAL_TRANSACTION_COMMITTED from adapter.Could someone give me some directions to proceed ?
    My current installation consists of:
    1. Oracle SOA Suite / JDeveoper 11g (11.1.1.4.0),
    2. WebLogic Server 10.3.4
    Thank you for your time,
    George

    Hi Vlad, thank you again for your immediate response.
    With regards to your first comment. I already have been using logs, so I confirm that neither javax.resource.spi.LocalTransaction#begin() nor javax.resource.spi.LocalTransaction#commit()
    is called in the 2nd run.
    I think it might be helpful for our discussion if I give you the call trace for a successful (the first one) run.
    After I deploy my custom JCA Resource Adapter, I create a javax.resource.cci.ConnectionFactory through Oracle EM web application and the following methods are called:
    -- MyManagedConnectionFactory()
    (Constructor of the implementer class of the javax.resource.spi.ManagedConnectionFactory interface)
    -- javax.resource.spi.ManagedConnectionFactory#createManagedConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyManagedConnection()
    (Constructor of the implementer class of the javax.resource.spi.ManagedConnection interface)
    -- javax.resource.spi.ManagedConnection#addConnectionEventListener(javax.resource.spi.ConnectionEventListener)
    -- javax.resource.spi.ManagedConnection#getLocalTransaction()
    -- MySpiLocalTransaction(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.spi.LocalTransaction interface)
    -- javax.resource.spi.ManagedConnectionFactory#createConnectionFactory(javax.resource.spi.ConnectionManager)
    -- MyConnectionFactory(javax.resource.spi.ManagedConnectionFactory, javax.resource.spi.ConnectionManager)
    (Constructor of the implementer class of the javax.resource.cci.ConnectionFactory interface)BPEL process consists of multiple invoke activities to my (custom) JCA Resource Adapter which connects to an EIS. Client tester invokes BPEL process, and execution starts.
    Here is the method call trace for the last invoke (after which, commit is executed). The logs for all the rest invocations are identical:
    -- javax.resource.cci.ConnectionFactory#getConnection()
    -- javax.resource.spi.ManagedConnection#getConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyConnection(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.cci.Connection interface)
    -- javax.resource.cci.Connection#close()
    (I don't understand why close() is called here, any idea ?)
    -- javax.resource.cci.ConnectionFactory#getConnection()
    -- javax.resource.spi.ManagedConnection#getConnection(javax.security.auth.Subject, javax.resource.spi.ConnectionRequestInfo)
    -- MyConnection(MyManagedConnection)
    (Constructor of the implementer class of the javax.resource.cci.Connection interface)
    -- javax.resource.cci.Connection#createInteraction()
    -- MyInteraction(javax.resource.cci.Connection)
    (Constructor of the implementer class of the javax.resource.cci.Interaction interface)
    -- javax.resource.cci.Interaction#execute(javax.resource.cci.InteractionSpec, javax.resource.cci.Record, javax.resource.cci.Record)
    -- javax.resource.spi.LocalTransaction#commit()I would expect that after the last commit() - meaning that BPEL process is done, and its state is "Completed" - Weblogic server would call the following:
    javax.resource.cci.Connection#close()However it doesn't. Do I miss something ?

  • Oracle 11g: How to ensure the same transaction across several BPEL calls?

    How to ensure transaction semantics across invocations of several BPEL services with a Database operations (Insert, update)? We are using transaction REQUIRED property in all of our BPELs. We are using webserive and JCA to access and modify the same row. Our code uses a combination of JCA, Spring bean, enity services, EJBs in these BPELs. The code can be more efficient, but, at this point, we have no option but to fix the transaction issue in this code. So, our question is how to ensure the same transaction context is used in all these BPELs to inser/update the same row? We have tried to set the GetUnitOfWork in the JCA Adapter but it did not provide any solution. Apaert from setting transaction in BPEL to REQUIRED and the JCA Adapter to use Unit of work, we are out of ideas. Any help is much apprecited. We are using Oracle SOA Suite 11g 11.1.1.5 version. --chary

    Hi,
    I can help you if you can describe the processes.
    There can be some difficulties when you try to use the same transaction especially when you use many DB transactions & BPEL processes.
    Using unit of work only ,might not be enough.
    Thanks
    Arik

  • How to Transactional Processes in BPEL

    Hi,
    TestCase:
    I have some BPEL processes which needs some Transaction Processes. These process can be DB process with Multiple insertion/selection/retrieval.
    I could see the 'scope' process activity however I would like to know that:
    1) Is there any alternate way to define Transaction/Isolation level or any other Transaction related parameters?
    2) Is there is any way that I could set Transaction related parameters in 'scope' process activity?
    TIA
    regards
    JD

    Hi,
    the transaction behaviour is not related to the scope activity...
    The transactions are defined on the db connections which are defined in the webservices.
    I think there is no way to use distributed transactions via webservices... (At least there is no documentation for this...)
    If i am wrong, i am very interested in a concept of using 2 PCs in Oracle BPEL/Webservices....

  • Transaction timeout in BPEL for webservice invocation

    [ERROR] [] [oracle.soa.bpel.engine.dispatch] [tid: orabpel.invoke.pool-4.thread-3] [userId: <anonymous>] [ecid: e8538d226bae7c2a:1914e8c0:148c67a5f26:-8000-00000000000031a2,1:27459] [APP: soa-infra] failed to handle message[[
    weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
    BEA1-166C02569896A59BE380
                    at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTransactionImpl.java:1788)
                    at weblogic.transaction.internal.ServerTransactionManagerImpl.processTimedOutTransactions(ServerTransactionManagerImpl.java:1676)
                    at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(TransactionManagerImpl.java:1988)
                    at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(ServerTransactionManagerImpl.java:1586)
                    at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
                    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
                    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
                    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
                    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds
    BEA1-166C02569896A59BE380
    This is happening when invoking a webservices from BPEL and if it takes more than 5 minutes we are getting above Error
    we have tried out SyncMaxWaitTime Property in BPEL configurations through SOA administration menu of EM. Also tried by increasing JTA timeout seconds in Service--JTA @ weblogic console.
    Any suggestion or pointers..

    Hi,
    Could help set the following...
    The timeouts should be configured based on the below condition
    SyncMaxWaitTime < BPEL EJB's transaction timeout < Global Transaction Timeout
    The values could be: SyncMaxWaitTime (3600) ; BPEL EJB's transaction timeout (3600); Global Transaction Timeout JTA (7200)
    Setting the SyncMaxWaitTime :
    This is the maximum time a synchronous BPEL process waits before it times out to get the response from another BPEL or a web service
    Login to EM console
    Expand SOA and right click on "soa-infra"
    From context menu, select SOA Administration –> BPEL properties
    Click on "More BPEL Configuration properties"
    Enter the appropriate value for the SyncMaxWaitTime
    Setting the global transaction timeout at Weblogic Domain Level:
    This property controls the transaction timeout seconds for active transactions. If the transaction is still in the "active" state after this time, it is automatically rolled back. 
    Log into Oracle Weblogic Administration Console.
    Click Services -> JTA.
    Change the value of Timeout Seconds to the required value (the default is 30)
    Click Save.
    Restart Oracle Weblogic Server.
    Overriding the transaction timeout setting for BPEL EJB's:
    The timeout properties for the EJB's control the particular timeout setting for the SOA application, overriding the global setting specified by the JTA timeout 
    Log into Oracle Weblogic Administration Console.
    Click Deployments.
    Expand soa-infra -> EJBs.
    Click on the configuration tab for the timeout setting for each of EJB’s listed below and the change the time out values as required.
    Following EJBs need to be updated:
    BPELActivityManagerBean  
    BPELDeliveryBean
    BPELDispatcherBean
    BPELEngineBean
    BPELFinderBean
    BPELInstanceManagerBean
    BPELProcessManagerBean
    BPELSensorValuesBean
    BPELServerManagerBean
    Click Save.
    Restart Oracle Weblogic Server.
    I hope you find it useful!
    hugs!

  • "Do not finalize my PayPal transactions" settings

    Hi,
    I am having an issue with the "Do not finalize my PayPal transactions." box for Paypal transactions.
    Even though I have this box checked, transactions are still completeing within Paypal, when they should not be.
    The set-up from the Business Catalyst end seems very simple. Account email address, PDT token and box checked. That's all there is to it.
    Therefore, it seems there must be a setting within Paypal to stop these transactions from completeing. Does any one know what needs to be done from within the account so this "Do not finalize my PayPal transactions." setting actually takes effect?
    I've tried speaking to Paypal but they said "To being using authorisation and capture for Website Payment Standard, you would need to add the code "paymentaction=authorization" to your button"
    However, there is no button, it's all within the BC system. Therefore, how do you actually set up "Do not finalize my PayPal transactions."?
    Richard

    Hi Richard,
    I've checked your site and I recommend the following. 
    Create a 1 cent test product
    "Retick" the do not finalize option in BC (I'm seeing it unticked at the moment). 
    Conduct a 1cent test purchase under the live gateway (not the test/sandbox version)
    If you are still seeing the transaction processing on Paypal's end please reach out to our direct support once again.  They might need your credentials to verify your PayPal settings because this would typically be setting that needs to be adjust on PayPal's end. 
    Kind regards,
    -Sidney

  • Transaction handling in BPEL

    Hi,
    I have a BPEL process which invokes three different procedures.
    Each of these procedure performs some database updation.
    I want each of these procedure to be a part of same transaction.
    If execution of last procedure of the three, leads to rollback then each of the previous updation must be rolled back.
    For this i added "transaction = participate " property in partner link.
    But when my last procedure rolls back, the previous transaction are not rolled back.
    How to make entire Transaction to rollback if one of the procedure rolls back??
    any help appreciated!!
    Edited by: user644879 on Mar 22, 2009 12:01 AM

    Hi Bhavik,
    Pls note that roll back happens from the last dehydration point in the case of a aynsc durable process(i.e. with dehydration points).
    The faults in a transient sync process goes back to the client, unlike the durable async process, where you have multiple dehydration points.
    When you set the property transaction=participate, then child invocation participates until a transaction bounday.
    How it works :
    Consider 2 sync(req-reply) processes - A and B.
    Recieve activity of A recieves some input from the client, processes it and then invokes B process , which then dehydrates in the DB.
    Now, when transaction!=participate, then if A fails at some activity, still the rows of data are committed in the DB from B.
    When, transaction=participate, then if A fails at some point, then the dehydration in DB by B DOES NOT happen, rather the row is rolled back .
    Also, please note that any participant in the transaction can rollback and SOAP does not support transactions.
    Hope this helps!
    Cheers
    Anirudh Pucha

  • Advanced Settings in BPEL Human Taks

    Hi,
    Is there any documentation and/or sample/tutorials available for using advanced features in Human Tasks?
    specifically using Advanced Settings and Escalation Rules in BPEL Human Task!
    thanks

    Thanks Ravi!
    I am trying to use dynamic assignment with Dynamic User Xpath expression!
    Is there any way to read the username stored in a BPEL variable in the Xpath expression assignment?
    thanks

  • Cross-Company Sales and Billing doesn't call BUV transaction settings

    Hello Dear Experts.
    Please help me with the following issue:
    1) The Company consists of Headquater and branches (one legal entity) - several Company codes are set in the system for each unit.
    2) The Contract for deliverying goods/implementation services with the Customer is concluded by the Head Office. Let's assume it's Company Code One.
    3) The goods is delivered by the plant, which is assigned to one of the branches, that is another Company Code in the system - CC2.
    4) Our FI group customised the Transaction BUV - Clearing between company codes by the following IMG path: Financial Accounting (New)-->General Ledger Accounting (New)-->Business Transactions-->Prepare Cross-Company Code Transactions (TCode OBYA).
    Note: This customising on clearing accounts work well during material transfer between Company Codes in MM and operations within Asset Management in FI-AA.
    5) I've created a sales order in CC1. I've pointed that deliverying plant is from CC2. When the billing is posted the system doesn't take the customising from BUV transaction.
    What do you think the problem is about?
    The entry posts in FI should go as shown in the figure above.
    However right now the entries as follows:
    CC1: Debits 1210 (Receivabless); Credits 6010 (Revenues). just within Company Code 1.
    VAT is not shown both here and in the Figure.
    Thanks in advance, Please help me...
    PS: I have customised Intercompany Billing through IV Billing with Internal Customer an so on, but our FI group wants to have another schema with posting as shown in the Figure above within the one step in creating the billing document.

    I'm not familiar with Verizon wanting people to change their plans online.  We just went in to upgrade a phone and they offered to check and see if we were elligible for a discount.
    Yes, you would think she could have easily given me the credit for 6 weeks but after sitting on hold for as long as I have with this situation, when she came back and wasn't interested in checking about it, I didn't have the strength left in chasing down her supervisor to get it.  Fact is, I should have never spent that much time trying to get them to correct their error.  I'm very disappointed that after talking to as many Verizon employees as I did, no one could tell me what happened and how to fix it.  I can not be the only person that had that kind of change with that plan.
    No one has contacted me yet.  I'd be surprised it they did.
    Jennifer

  • Transaction settings in ejbs.

    Hi all,
    I have three questions:
    1) I have several EJBs related to different business entities being called within one single transaction by the client;
    I would like to know if it is better to have bean lvel transaction setting or method level transaction setting.
    2) If TX_REQUIRED is put at the method level that involve create/save/delete SQL statements.Can TX_NOT_SUPPORTED transaction attribute be set to the methods that involve DML statement(Select statements).
    3) Also is there any restriction that the calling method within a single large transaction must hvae more restrictive transaction attribute
    (with TX_REQUIRED) than the method that is being called
    (with TX_NOT_SUPPORTS/TX_SUPPORTS) or vice versa.
    thanks in advance.

    1) EJBs server handle concurrency automatically, a bean's methods do not have to be made a thread-safe.The EJB specification prohibits use of the synchronized keyword.
    The EJB container has to maintain complete control over the concurrency, transaction and persistence.

  • SAP SRM shop transaction-settings

    Hi,
    We have installed SRM 5.0. When i click the service BBPSTART i am getting 'page can not be displayed'.
    I have already maintained the entries in TWPURLSVR table as well as I ran both the program for publishing..
    SIAC_PUBLISH_ALL_INTERNAL
    W3_PUBLISH_SERVICES
    If i access URL directly then i am able to login into SRM and if i click on shop then again within the same page webgui page is opening with same menu in right hand sid.
    Thanks
    Ravi

    hope the required services are active
    go to SICF, search for BBPSTART
    selecting the same, rightclick and test
    sometimes you have to check the connections settings in yr IE browser by yr network guy.
    BR
    Dinesh

  • Foreach loop, containers and transaction settings and continuing a loop even if a task fails

    I have a foreach loop and a container inside that.  Inside the container are a bunch of tasks.  When one of these tasks fail, I want it to fail the parent container, but not the loop or the package.  
    The package will be run from a sql agent job.  Right now, the package works, but when a task fails inside the container, the sql agent job stops with failure.  I want it to continue unless one of the tasks OUTSIDE of the loop or container fail.
    Am I correct to say that since the foreach loop is the parent of the container, and as long as the foreach loop doesnt fail, the package should continue?

    Hi Shiftbit,
    Yes, the failure of the Script Task will fail the Sequence Container, the Foreach Loop Container as well as the package even though you have set the FailParentOnFailure and the FailPackageOnFailure properties to False. That’s because the package implicitly
    uses Event Handlers to control the failure propagation even though we didn’t add any Event Handlers explicitly. So, if you don’t want the failure of the Script Task to affect its containers and the entire package, you should add an empty OnError Event Handler
    for the Script Task, and then set the value of the System Variable Propagate of the Event Handlers to False.
    If you don’t want the other tasks in the Sequence Container fail the Loop container as well, you don’t need to repeat the operations on each task, instead, you only need to do the same on the Sequence Container.
    References:
    http://agilebi.com/jwelch/2008/06/29/continuing-a-loop-after-an-error/#comment-57484
    http://www.toadworld.com/platforms/sql-server/b/weblog/archive/2013/08/09/ssis-logging-and-event-propagation.aspx
    Regards,
    Mike Yin
    TechNet Community Support

  • Why is Fault Policy working only when the BPEL's transaction is requiresNew

    Hi All
    I've defined Fault policy & fault bindings files for faults in my BPEL process. I'm using Oracle SOA Suite 11g.
    But the fault management framework is properly working only when the transaction property(bpel.config.transaction) of the BPEL is set to "requiresNew" in composite.xml
    When i modify it ot required, its not working, i.e. it is waiting for some period and erroring out. I could not manage these errors from the EM as we do for those in Fault Management Framework.
    Why is this behavior?
    I went thru this article, but could not understand it
    Transaction and Fault Propagation Semantics in BPEL Processes(http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm)
    Can someone pls explain this.
    Regards
    RaviKiran.

    Please refer http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm
    Thanks,
    S

  • Can i keep configuration settings (polling frequency...) outside BPEL

    Dear All,
    Can i keep configuration settings (polling frequency and other which are typically set in BPEL adapter outside BPEL
    so that at runtime BPEL will look at this configuration file instead of settings inside BPEL.
    Regards
    Arc

    I think you can. If you define them as properties in the Adapter wsdl (by prepending a $), then you can set their values in bpel.xml. And the values in bpel.xml are exposed in the bpel console under the descriptors link. so you can modify these values at runtime, without having to undeploy the bpel process.
    --Amit                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Maybe you are looking for

  • How to connect my Equium A300D to the TV?

    I cant conect to TV from S-video port it says - display conected but I cant see nothing in TVI tryed the FN /F5 but nothing. With RGB is ok. HELP!

  • Lost Data | Hard Drive Failure

    hello, after a series of unrecoverable crashes running safari, i tried running disk utilities from the start up disc, only to make matters worse. it won't boot up now. simply stalls while loading for about 15 minutes and shuts down entirely. i tried

  • Error in RFC Receiver Adapter: functiontemplate from repository was null

    Hi Friends, i am working on JDBC -> RFC Scenario, JDBC Sender Adapter is working fine, but RFC Receiver Adapter is throwing this error message... can some one help me to solve this issue... Message processing failed. Cause: com.sap.aii.af.ra.ms.api.R

  • BLS transaction SocketTimeoutException

    I have a transaction which has a number of reads/writes to 2 Oracle databases. It has been running OK for a number of months but now it has stopped writing to one of the Oracle databases. When I execute the transaction within the Logic Editor I get t

  • How do I prevent Yahoo home page from redirecting?

    My Yahoo page is very informative so I like to keep it as a home page. Recently the page is blank with a message that there were too many redirects etc.  If I click my home page button then my home page appears without a problem.  Hwo may I stop the