Long running BPEL - transaction rollback

Hi All,
I have a bpel process that is taking over 30 minutes to complete. The process reads over 3000 records from database and transforms to EDI. The XSLT transform is taking 95% of the processing time. One option for me is to increase the Session timeouts.
Is there a way or a solution to bypass the session timeout values and keep the BPEL process running till it completes. I would like to keep the timeouts to default 5 minutes but still want my process to keep running and complete. Please give your ideas or workarounds on how this can be achieved.
Thanks
Ismail.

Hi Ismail,
I am not sure if you can find any resolution on this with respect to session time out.
Please try the below option which might work out for you.
1) Slight modification to your current process. Rather than waiting for all the 3000 records to complete processing and write the file at the end, may be you can start writing the file from the first record it self into a temporary location.
2) Later you can keep appending the rest of the lines to the file written above using the Append to existing file check box.
3) May be you can write another simple BPEL process which will poll this file from the temporary location and then FTP it to the EDI.
4) This way there will be a decrease in the processing time drastically and also there will not be any session time outs.
Also your current BPEL process will become a bit light with respect to the amount of data that it need to keep in buffer.
Might not be a perfect solution, but am sure it will work out.
Thanks,
Deepak.

Similar Messages

  • Checking for status of a long-running BPEL process

    Hi experts,
    I have one BPEL process for originating customers' loan which usually involves various steps which takes around 15-20 mins to complete per instance. I would like to implement a user interface that can check the process's progress and display how it is going to the user.
    I have thought of using an asynchronous process that updates a global variable listing status of each step inside the process and use a poller to invoke another operation (like "checkStatus" operation) of this process to retrieve this variable and display the value to the users. It may be achieved by using "OnEvent" activity waiting for "checkStatus" operation. It will run in parallel with the main process, have access to the global variable and reply this variable immediately to the caller.
    It sounds like an idea in theory but invoking a web service operation for polling status is very heavy-weight and may impact performance during high-load.
    I am just wondering if there is other solution to this problem as I believe the status checking is a very common expected requirement in long-running BPEL process. What might be the best practice to implement this?
    Look forward to your responses.
    Thanks and regards,
    Edited by: Nghia Pham on Nov 5, 2012 4:48 PM

    Hi.
    I apologize for the slow reply. I am just back from overseas and did not have chance to go to the forum!
    Thank you a lot for your responses!
    The BAM looks like a suggested out-of-the-box solution. But it ties too much to Oracle API and will be hard to customise the way you want to interpret the status to end-users. If you want to display the process status with BAM in a web application interface, ADF is the only solution (please correct me if I am wrong). I would prefer a stand-alone, free of proprietary API solution so that we can build a screen that is technology-independent. As ADF UI is not our only supported view technology. For example, a PHP web client should be able to interpret the BPEL process status.
    Will really appreciate your suggested solution.
    Thanks and regards,

  • BPEL TRANSACTION ROLLBACK

    I've just tested the standart samples
    integration\orabpel\samples\demos\BankTransferDemo\BankTransferFlow\
    BankTransferFlow
    and
    BankTransferFlowWithCompensation
    Rollback was not executed. Why????????????????????????

    Ok i set set the env. var.
    OPATCH_QUOTE_PERL_CMD = TRUE
    ACTIVE_STATE_PERL = TRUE
    i find it in c:\OraBPELPM\OPatch\docs\FAQ
    so the result is changed but still gets error....
    can u advice me what i must to do now .....
    **************** commad line **********************
    C:\Documents and Settings\DoroshenkoOleg>c:\Perl\bin\perl5.6.1.exe C:\OraBPELPM\
    OPatch\opatch.pl apply c:\Install\Oracle\Bpel\patch\1\4343748
    Oracle Interim Patch Installer version 1.0.0.0.52
    Copyright (c) 2005 Oracle Corporation. All Rights Reserved..
    We recommend you refer to the OPatch documentation under
    OPatch/docs for usage reference. We also recommend using
    the latest OPatch version. For the latest OPatch version
    and other support related issues, please refer to document
    293369.1 which is viewable from metalink.oracle.com
    Oracle Home = c:\OraBPELPM
    Location of Oracle Universal Installer components = C:\OraBPELPM\oui
    Location of OraInstaller.jar = "C:\OraBPELPM\oui\jlib"
    Oracle Universal Installer shared library = C:\OraBPELPM\oui\lib\win32\oraInstal
    ler.dll
    Location of Oracle Inventory Pointer = N/A
    Location of Oracle Inventory = C:\OraBPELPM\inventory
    Path to Java = "C:\OraBPELPM\jdk\jre\bin\java.exe"
    Log file = c:\OraBPELPM/.patch_storage/<patch ID>/*.log
    Remove extra quote surrounding system commands on Windows...
    Remove extra quote surrounding system commands on Windows...
    Remove extra quote surrounding system commands on Windows...
    MISSING_COMPONENT : oracle.j2ee, 10.1.2.0.0
    This Oracle Home does not have components/versions required by the patch.
    ERROR: OPatch failed during pre-reqs check.
    **************** log file **********************
    Starting OPatch Apply session at 06-27-2006_12-13-23.
    Command arguments are: apply c:\Install\Oracle\Bpel\patch\1\4343748
    OPatch version is: 1.0.0.0.52
    Remove extra quote surrounding system commands on Windows...
    Performing RAC pre-req. check...
    Accessing inventory ... (retry 10 times, delay 30 seconds each time)
    System Command: "C:\OraBPELPM\jdk\jre\bin\java.exe" -Dopatch.retry=10 -Dopatch.delay=30 -classpath "C:\OraBPELPM\oui\jlib\OraInstaller.jar;C:\OraBPELPM\oui\jlib\srvm.jar;C:\OraBPELPM\OPatch\jlib\opatch.jar;C:\orabpelpm\oui\jlib\xmlparserv2.jar;C:\orabpelpm\oui\jlib\share.jar;C:\orabpelpm\jlib\srvm.jar" opatch/O2O "c:\orabpelpm" "C:\OraBPELPM\oui" opatch.pl 1.0.0.0.52
    Result:
    output to OPatch:
    NODE_LIST=NULL
    NODE_COUNT=0
    LOCAL_NODE=NULL
    IS_CFS=0
    RAC_CODE=0
    HOME_INDEX=2
    This is not a RAC system
    Interim Patch ID: 4343748
    Checking the patch inventory.
    Component Name: oracle.j2ee
    Component Version: 10.1.2.0.0
    Bugs fixed by this patch 4343748:
    4343748 : MPSE ON 10.1.2 FOR MLR BUGS 4338987 AND 4298949
    4167846 : CTX.LOOKUP(JAVA-COMP/ENV/EJB/EJBNAME); IN EJBCREATE METHOD
    4298949 : MLR ON 10.1.2 FOR BUGS 4212066,4043715,4021903,4135569,4167846,4186614,4113514
    4338987 : MLR ON 10.1.2 FOR BUGS 4043715, 4327193
    4327193 : STRESS BPEL-TRANSACTION BECOMES NULL CAUSING - CMT TRANSACTION ERROR
    4135569 : HTTPSESSION IS LOST DURING OCCASIONALLY DURING APPLICATION DEPLOYMENT
    4021903 : USER INTERFERENCE WITH CMP TRANSACTION (ILLEGAL TERMINATION OF TRANSACTION)
    4113514 : OC4J CONTAINER HANGS DURING RE-DEPLOYMENT
    4043715 : CALL TO SESSION BEAN FAILS WITH USER INTERFERENCE WITH CMP TRANSACTION ERROR
    4212066 : STRESS- RESTRICTS MAXIMUM CONCURRENT CONNECTIONS IN AJP LISTENER
    3562466 : PERF- MDB OC4J-JMS SINGLE-USER TEST SHOWS INCREASING ART OVER TIME
    Reading patch XML files and doing sanity checks.
    Read the command to action file map.
    Performing initial safety check.
    Checking active processes:
    Remove extra quote surrounding system commands on Windows...
    Accessing inventory ... (retry 10 times, delay 30 seconds each time)
    System Command: "C:\OraBPELPM\jdk\jre\bin\java.exe" -Dopatch.retry=10 -Dopatch.delay=30 -classpath "C:\OraBPELPM\oui\jlib\OraInstaller.jar;C:\OraBPELPM\oui\jlib\srvm.jar;C:\OraBPELPM\OPatch\jlib\opatch.jar;C:\orabpelpm\oui\jlib\xmlparserv2.jar;C:\orabpelpm\oui\jlib\share.jar" opatch/CheckConflict "C:\OraBPELPM\oui" "c:\orabpelpm" opatch.pl 1.0.0.0.52 4343748 "3562466 4212066 4043715 4113514 4021903 4135569 4327193 4338987 4298949 4167846 4343748 " C:\Install\Oracle\Bpel\patch\1\4343748\etc\config\actions
    Result:
    MISSING_COMPONENT : oracle.j2ee, 10.1.2.0.0
    MISSING_COMPONENT : oracle.j2ee, 10.1.2.0.0
    MISSING_COMPONENT : oracle.j2ee, 10.1.2.0.0
    This Oracle Home does not have components/versions required by the patch.
    ERROR: OPatch failed during pre-reqs check.
    *****************************************************************

  • Long Running Bpel Instance.

    Hi All,
    One of My bpel process spawns 100 child bpel process. out of which 60 are in recover(invokes), and 40 bpel processes are in running state.
    These 40 bpel instances are still in open.running state, even though I restarted the server.
    Can any one provide the reason for this?
    Thanks in Advance.

    Hi Ranjan,
    Our BPEL process was not showing any activity after DB adapter invocation and state was showing as open.running.
    So we went to "recover invoke" tab under "adminisrtation" tab and selected activity, so my process was recovered.
    Thanks for responding.

  • Long running transactions.

    Hi all,
    In real world systems, how efficient are long running flat transactions in ejb 2.0 since the transactions tends to lock several tables that are part of the transaction.
    Could any one explain in detail or direct to any websites that share the real time experiences with transactions in ejb enviornment.
    Thanks in advance.

    Long run transaction are real performance killers, avoid them if you can.
    It's actually quite easy (and sensible) to break down long transactions into smaller transactions with a little common-sense.
    For example, funds transfer. Say you want to transfer money from one account to another account from country A (which is only open on Tuesdays) to country B (only open on Fridays).
    Option A: Start a long running transaction on Tuesday, commit it on Friday.
    The resources used to do this are very much wasted - and will cause performance degradation.
    Option B: Transfer the funds from Country A to Country C (which is open Tuesday and Friday) - in one transaction on Tuesday. Transfer funds from Country C to country B in a second transaction on Friday. If C to B fails, transfer the funds back - if it succeeds inform A of the success. It's more complex, but there's no free lunch. (This is how real banks do it - ever got a refund from the bank? Well, no, but you know what I mean; it's also why it takes five days for a cheque to clear etc etc).
    This is only a narrative - but there are very few cases where this cannot work in a real transaction.

  • Can a long running batch job causing deadlock bring server performance down

    Hi
    I have a customer having a long running batch job (approx 6 hrs), recently we experienced performance issue where the job now taking &gt;12 hrs. The database server is crawling. Looking at the alert.log showing some deadlock,
    The batch job are in fact many parallel child batch job that running at the same time, that would have explain the deadlock.
    Thus, i just wondering any possibility that due to deadlock, can cause the whole server to be crawling, even connect to the database using toad is also getting slow or doing ls -lrt..
    Thanks
    Rgds
    Ung

    Kok Aik wrote:
    According to documentation, complex deadlock can make the job appeared hang & affect throughput, but it didn't mentioned how it will make the whole server to slow down. My initial thought would be the rolling back and reconstruct of CR copy that would have use up the cpu.
    I think your ideas on rolling back, CR construction etc. are good guesses. If you have deadlocks, then you have multiple processes working in the same place in the database at the same time, so there may be other "near-deadlocks" that cause all sorts of interference problems.
    Obviously you could have processes queueing for the same resource for some time without getting into a deadlock.
    You can have a long running update hit a row which was changed by another user after the update started - which woudl cause the long-running update to rollback and start again (Tom Kyte refers to this as 'write consistency' if you want to search his website for a discussion on the topic).
    Once concurrent processes start sliding out of their correct sequences because of a few delays, it's possible for reports that used to run when nothing else was going on suddenly finding themselves running while updates are going on - and doing lots more reads (physical I/O) of the undo tablespace to take blocks a long way back into the past.
    And so on...
    Anyway, according to the customer, the problem seems to be related to the lgpr_size as the problem disappeared after they revert it back to its orignial default value,0. I couldn't figure out what the lgpr_size is - can you explain.
    Thanks
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    "Science is more than a body of knowledge; it is a way of thinking" Carl Sagan

  • Disabling UNDO altogether so long running transactions have no rollback

    Hi, we have a large Oracle 11g database that we use only to demo our product to potential customers. It's not an important database as far as the quality of the data, it serves its purpose. Well every night we run a script to increment all the date fields in the database so our demos are predictable for our sales people. This date rolling results in a huge UNDO tablespace and we really can't justify the space to house it. How can I turn off transactions altogether so long running queries just commit row by row with no rollback and no writing to the undo tablespace?

    Yes:
    Oracle saves undo data at least until the transaction has been committed. Until this time, the undo data is in the active state. Therefore, the amount of space available in the undo tablespace should be at least large enough to hold the active undo data generated by current transactions. Otherwise, some of these transactions might fail. When active undo data is stored in the undo tablespace, Oracle automatically ensures that it is never overwritten until the corresponding transaction has been committed.
    From http://download.oracle.com/docs/cd/B19306_01/server.102/b14196/storage003.htm.

  • Will rollback failure cause long-running transaction?

    We are getting the following error for one transaction
    [TimesTen][TimesTen 5.1.35 CLIENT]Communication link failure. System call select() failed with OS error 110. This operation has Timed Out. Try increasing your ODBC timeout attribute or check to make sure the target TimesTen Server is running
    After that application tries to do a rollback, but rollback failed.
    Will this transaction become a long-running transaction in server?

    Have you filed a metalink SR to get help on this issue?
    -scheung

  • JDBC  Transaction is no longer active - status: 'Marked rollback'

    I'm getting the folowing issue, we are not seeing this issue if we recycle the WLS
    Using WLS V10.3.3
    Can any one suggest on this issue, how to reslove this
    85417.772: [Full GC [PSYoungGen: 117504K->0K(234880K)] [PSOldGen: 662564K->665699K(700416K)] 780068K->665699K(935296K) [PSPermGen: 133284K->132438K(225280K)], 30.2876423 secs] [Times: user=31.23 sys=0.68, real=30.32 secs]
    java.sql.SQLException: The transaction is no longer active - status: 'Marked rollback. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 39 seconds
    BEA1-600C65F8B23E363DFDF0]'. No further JDBC access is allowed within this transaction.
    at weblogic.jdbc.wrapper.JTSConnection.checkIfRolledBack(JTSConnection.java:193)
    at weblogic.jdbc.wrapper.JTSConnection.checkConnection(JTSConnection.java:209)
    at weblogic.jdbc.wrapper.ResultSet.preInvocationHandler(ResultSet.java:99)
    at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.next(Unknown Source)
    at com.vzw.pos.cmw.ejb.service.UserProfileService.getNewUserId(Unknown Source)
    at com.vzw.pos.cmw.ejb.utils.CMWEjbUtil.createUserProfileVO(Unknown Source)
    at com.vzw.pos.cmw.ejb.utils.CMWEjbUtil.createRosterVO(Unknown Source)
    at com.vzw.pos.cmw.ejb.service.AdministrationBean.getRostersByUserId(Unknown Source)
    at com.vzw.pos.cmw.ejb.service.Administration_ujnwz8_ELOImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:39)
    at com.vzw.pos.cmw.ejb.service.Administration_ujnwz8_ELOImpl.getRostersByUserId(Unknown Source)
    at com.vzw.pos.cmw.action.CMWTopFrameAction.setUserRoleInSession(Unknown Source)
    at com.vzw.pos.cmw.action.CMWTopFrameAction.changeLocation(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at com.vzw.pos.cmw.filters.CMWFilter.doFilter(Unknown Source)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3710)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3676)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2272)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2178)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    <Aug 23, 2013 10:41:53 AM EDT> <Warning> <Socket> <BEA-000450> <Socket 298 internal data record unavailable (probable closure due idle timeout), event received -32>
    <Aug 23, 2013 10:41:53 AM EDT> <Warning> <Socket> <BEA-000450> <Socket 286 internal data record unavailable (probable closure due idle timeout), event received -32>
    <Aug 23, 2013 10:41:56 AM EDT> <Warning> <Socket> <BEA-000450> <Socket 299 internal data record unavailable (probable closure due idle timeout), event received -32>
    <Aug 23, 2013 10:42:51 AM EDT> <Warning> <Socket> <BEA-000450> <Socket 286 internal data record unavailable (probable closure due idle timeout), event received -32>

    Here is DS configuration
    Initial Capacity:                  75
    Maximum Capacity:                  75
    Capacity Increment:                    1
    Seconds to trust an idle pool connection:     10
    Shrink Frequency:                    900
    Enable Connection Leak Profiling:          False
    Enable Connection Profiling:               False
    Test Frequency:                         120 seconds
    Test Connections on Reserve:               True
    Connection Reserve Timeout:               10 seconds
    Connection Creation Retry Frequency:         1
    Inactive Connection Timeout:               60 second
    Maximum Waiting for Connection:               2147483647
    Statment Cache Type:     LRU
    Statment Cache Size:     10
    Connection Creation Relay Frequency:      1
    Remove Infected Connections Enabled:      True
    Wrap Data types:     True
    Ignore In-use connections:     True

  • Using MDBs for long running transactions

    Although MDBs are not the best vehicles for running long transactions, I am
              forced to use them for one such scenario (let's say for lack of a better
              pattern). In order to let my long running MDB (with Container Managed Tx)
              do it's chores I increased the time-out value to a higher number rather than
              using the default of 30 secs. Strangely, I was seeing
              IllegalStateExceptions in stdout. So I created a brand new test MDB with a
              Thread.sleep for 60 seconds, increased my MDBs timeout value to 120 secs,
              made sure there was only one MDB in the pool and ran the test again. I
              still see the below error after 30 seconds.
              I guess I should probably open a support case, but I thought I'll post here
              as well in case there's something I am missing.
              <May 27, 2003 5:26:31 PM PDT> <Notice> <EJB> <Error marking transaction for
              rollback: java.lang.IllegalStateException: Cannot m
              ark the transaction for rollback. xid=64:bea55f200db2c786, status=Rolled
              back. [Reason=weblogic.transaction.internal.TimedOutEx
              ception: Transaction timed out after 34 seconds
              Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              esOwedOthers=0,seconds since begin=34,seconds left=
              30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              active),OwnerTransactionManager=ServerTM[ServerCoor
              dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              40:7501+wlcsDomain+)]
              java.lang.IllegalStateException: Cannot mark the transaction for rollback.
              xid=64:bea55f200db2c786, status=Rolled back. [Reason
              =weblogic.transaction.internal.TimedOutException: Transaction timed out
              after 34 seconds
              Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              esOwedOthers=0,seconds since begin=34,seconds left=
              30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              active),OwnerTransactionManager=ServerTM[ServerCoor
              dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              40:7501+wlcsDomain+)]
              at
              weblogic.transaction.internal.TransactionImpl.throwIllegalStateException(Tra
              nsactionImpl.java:1486)
              at
              weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
              l.java:466)
              at
              weblogic.ejb20.manager.BaseEJBManager.handleSystemException(BaseEJBManager.j
              ava:255)
              at
              weblogic.ejb20.manager.BaseEJBManager.setupTxListener(BaseEJBManager.java:21
              5)
              at
              weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:153)
              at
              weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:117)
              at
              weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java
              :63)
              at
              com.xoriant.hm.ejb.session.HierarchyManagerBean_fzysig_EOImpl.getHierarchyId
              (HierarchyManagerBean_fzysig_EOImpl.java
              :1477)
              at
              com.ebiz.application.customerprofile.hm.CPXHMController.SynchronizeMHTH(Unkn
              own Source)
              at
              com.ebiz.application.customerprofile.hm.CPHMOrgGroupMsgBean.onMessage(Unknow
              n Source)
              at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              

    Hi Adarsh,
              It may be that the transaction time-out setting in the descriptor
              is not taking effect. The tx is still timing out after
              the default 30 seconds, so the later attempt to call
              "setRollbackOnly" fails as the transaction has already
              rolled back The ignored descriptor setting is a known issue
              in some earlier SPs, but I'm not sure when and where it
              was fixed - so yes, contact customer support. The work-around
              is to set the default transaction time-out for the entire server to a
              higher value. (I'm not sure where to set this on the console,
              but the relevant JTA MBean field is "TimeoutSeconds".)
              Tom
              Adarsh Dattani wrote:
              > Although MDBs are not the best vehicles for running long transactions, I am
              > forced to use them for one such scenario (let's say for lack of a better
              > pattern). In order to let my long running MDB (with Container Managed Tx)
              > do it's chores I increased the time-out value to a higher number rather than
              > using the default of 30 secs. Strangely, I was seeing
              > IllegalStateExceptions in stdout. So I created a brand new test MDB with a
              > Thread.sleep for 60 seconds, increased my MDBs timeout value to 120 secs,
              > made sure there was only one MDB in the pool and ran the test again. I
              > still see the below error after 30 seconds.
              > I guess I should probably open a support case, but I thought I'll post here
              > as well in case there's something I am missing.
              >
              > <May 27, 2003 5:26:31 PM PDT> <Notice> <EJB> <Error marking transaction for
              > rollback: java.lang.IllegalStateException: Cannot m
              >
              > ark the transaction for rollback. xid=64:bea55f200db2c786, status=Rolled
              > back. [Reason=weblogic.transaction.internal.TimedOutEx
              >
              > ception: Transaction timed out after 34 seconds
              >
              > Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              > esOwedOthers=0,seconds since begin=34,seconds left=
              >
              > 30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              > Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              >
              > BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              > active),OwnerTransactionManager=ServerTM[ServerCoor
              >
              > dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              > Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              >
              > 40:7501+wlcsDomain+)]
              >
              > java.lang.IllegalStateException: Cannot mark the transaction for rollback.
              > xid=64:bea55f200db2c786, status=Rolled back. [Reason
              >
              > =weblogic.transaction.internal.TimedOutException: Transaction timed out
              > after 34 seconds
              >
              > Xid=64:bea55f200db2c786(-33600248),Status=Active,numRepliesOwedMe=0,numRepli
              > esOwedOthers=0,seconds since begin=34,seconds left=
              >
              > 30,activeThread=Thread[ExecuteThread: '9' for queue: 'default',5,Thread
              > Group for Queue: 'default'],ServerResourceInfo[JMS_hmJD
              >
              > BCStore]=(state=started,assigned=none),SCInfo[wlcsDomain+wlcsServer]=(state=
              > active),OwnerTransactionManager=ServerTM[ServerCoor
              >
              > dinatorDescriptor=(CoordinatorURL=wlcsServer+155.14.3.140:7501+wlcsDomain+,
              > Resources={})],CoordinatorURL=wlcsServer+155.14.3.1
              >
              > 40:7501+wlcsDomain+)]
              >
              > at
              > weblogic.transaction.internal.TransactionImpl.throwIllegalStateException(Tra
              > nsactionImpl.java:1486)
              >
              > at
              > weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
              > l.java:466)
              >
              > at
              > weblogic.ejb20.manager.BaseEJBManager.handleSystemException(BaseEJBManager.j
              > ava:255)
              >
              > at
              > weblogic.ejb20.manager.BaseEJBManager.setupTxListener(BaseEJBManager.java:21
              > 5)
              >
              > at
              > weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:153)
              >
              > at
              > weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:117)
              >
              > at
              > weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java
              > :63)
              >
              > at
              > com.xoriant.hm.ejb.session.HierarchyManagerBean_fzysig_EOImpl.getHierarchyId
              > (HierarchyManagerBean_fzysig_EOImpl.java
              >
              > :1477)
              >
              > at
              > com.ebiz.application.customerprofile.hm.CPXHMController.SynchronizeMHTH(Unkn
              > own Source)
              >
              > at
              > com.ebiz.application.customerprofile.hm.CPHMOrgGroupMsgBean.onMessage(Unknow
              > n Source)
              >
              > at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
              >
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              >
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              >
              >
              >
              >
              

  • Explicit commit during a long-running transaction in EclipseLink

    Hi,
    I am currently upgrading a J2EE application from OAS with Toplink Essentials to WL 10.3.3 with Eclipselink and have the following issue with transactions.
    The application was developed to have long-running transactions for business reasons in specific scenarios. However, some other queries must be created and committed along the way to make sure that we have this specific data in the database before the final commit. This call (and subsequent code) is in an EJB method that has the "@TransactionAttribute(TransactionAttributeType.REQUIRED)" defined on it. Taking this out gives me the same behaviour.
    The application has the following implementation of the process, which fails:
    Code
    EntityManager em = PersistenceUtil.createEntityManager();
    em.getTransaction().begin();
    PersistenceUtil.saveOrUpdate(em,folder);
    em.getTransaction().commit(); --->>>>FAILS HERE
    Error
    javax.ejb.EJBTransactionRolledbackException: EJB Exception: : javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Cannot call Connection.rollback in distributed transaction. Transaction Manager will commit the resource manager when the distributed transaction is committed.
    So I tried the following to see if it would work, but I believe that the transaction end and anything after that will fail since it requires a transaction to continue
    PersistenceUtil.getUnitOfWork().writeChanges();
    PersistenceUtil.getUnitOfWork().commit();
    Error
    javax.persistence.TransactionRequiredException: joinTransaction has been called on a resource-local EntityManager which is unable to register for a JTA transaction.
    Can anyone help me as to how to commit a transaction within the long running transaction in this environment? I also want to be sure that the long-running transaction does not fail or is not stopped along the way.
    Thanking you in advance

    You seem to be using JTA, so you cannot use JPA transactions, you must defined your transaction in JTA, such as in your SessionBean.
    When using JTA you should never use,
    em.getTransaction().begin();
    If you do not want to use JTA, then you need to set your persistence unit to be RESOURCE_LOCAL in your persistence.xml.
    Also you need to ensure you use a non-jta enabled DataSource.
    James : http://www.eclipselink.org

  • BPEL Sensor for BAM report transaction rollback exception, ORABPEL-05002

    HI,
    I meet a question about BPEL sensor to BAM, it often report below error for Transaction rollback exception and timed out. After this error last half an hour, BPEL will thoughout connect database error and out of Memory.
    It is running on BPEL/BAM 10.1.3.5.
    <2010-01-19 17:33:42,595> <INFO> <default.collaxa.cube.sensor> Flushed 2 rows in BAM batch
    <2010-01-19 17:33:42,600> <INFO> <default.collaxa.cube.sensor> Flushed 6 rows in BAM batch
    <2010-01-19 17:33:42,600> <INFO> <default.collaxa.cube.sensor> Flushed 4 rows in BAM batch
    <2010-01-19 17:33:42,603> <ERROR> <default.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:139)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         ... 29 more
    <2010-01-19 17:33:42,604> <ERROR> <default.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the exception is: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:171)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    <2010-01-19 17:33:42,605> <ERROR> <default.collaxa.cube.engine.dispatch> <DispatchHelper::handleMessage> failed to handle message
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
    javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    javax.ejb.EJBException: An exception occurred during transaction completion: ; nested exception is: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ejb.EJBUtils.createEJBException(EJBUtils.java:365)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:139)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:57)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:138)
         at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.process(BaseScheduledWorker.java:70)
         at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage(WorkerBean.java:86)
         at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at oracle.j2ee.connector.messageinflow.MessageEndpointImpl.OC4J_invokeMethod(MessageEndpointImpl.java:297)
         at WorkerBean_EndPointProxy_4bin6i8.onMessage(Unknown Source)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:266)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: javax.transaction.RollbackException: Timed out
         at com.evermind.server.ApplicationServerTransaction.checkForRollbackOnlyWhileInCommit(ApplicationServerTransaction.java:633)
         at com.evermind.server.ApplicationServerTransaction.doCommit(ApplicationServerTransaction.java:273)
         at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:162)
         at com.evermind.server.ApplicationServerTransactionManager.commit(ApplicationServerTransactionManager.java:472)
         at com.evermind.server.ejb.EJBTransactionManager.end(EJBTransactionManager.java:132)
         ... 29 more
    After half an hour, BPEL will report below error log:
    ORABPEL-04067
    Cannot update invoke message.
    The process domain was unable to update the state of the invocation message "99e5b70b31758b56:3c0225db:126439fa400:48c0". The exception reported is: Io exception: Connection reset
    Please check that the machine hosting the datasource is physically connected to the network. Otherwise, check that the datasource connection parameters (user/password) is currently valid.
    sql statement: UPDATE invoke_message SET state = ? WHERE message_guid = ?
    I am not sure these two error has any relationship.
    But it is an issue that BAM sensor ofter report transaction time out.

    sorry, I forgot the below things which I tried to tune the JMS.
    <property name="retryMaxCount">10</property>
    <property name="retryInterval">60</property>
    <property name="useJCAConnectionPool">true</property>
    <property name="maxSizeJCAConnectionPool">500</property>
    Thanks.

  • Question : Scheduling a Long Running Process in BPEL

    Hi All,
    I have a doubt regarding deployment and scheduling of a Long Running Process in BPEL console like the way we schedule a concurrent program in Oracle Apps.
    Business Scenario:
    We have developed a BPEL process to pull data from the Database, do the required transformation and then enqueue the transformed data in a queue present in another database.
    Then a Java program will pick the data from the queue and then generate an XML file and send it to FTPserver of the Trading Partners(TP's).
    We have two Trading Partners and hence the generated XML will be put into the appropriate FTP servers of the TP's.
    The BPEL processing for both the Trading Partners is identical. Only the generated XML is put in different FTP servers.
    My question here is:
    1. Since the processing is same for both the TP's, how can we use the same process for both the Trading Partners.Can we handle it in the BPEL process itself ?
    2. Is there any way to schedule the same process in BPEL console, to first run for Trading Partner TP1 and wait for say 15 mins and then run for another Trading Partner TP2 and this cycle should continue since we will be deploying it in production environment and continuous updation of the transactions will be happening in the database.
    So far my knowledge in BPEL goes, i could not find any way to schedule a process in BPEL console. If any one has come across similar scenario, please post your updates/approach which will help us in defining the architecture for our client.
    Thanks In Advance,
    Cheers
    Dibya

    Hi Marc,
    Thanks a Lot for ur inputs.
    Need some more clarification for quetsion no.1 in my previous post.
    From our BPEL process we are calling a package which takes the Trading Partner name as the input and some other parameters. Our BPEL process will be run for both the Trading Partners since the processing is identical.
    If we develop two different processes for both Trading Partners, then there will be locking issues in the database since both the processes will refer to the same table.
    Hence we were looking for an option where we can use the same process for both the Trading Partners. Is there any way to handle it in BPEL process.
    Your inputs will be really helpful.
    Thanks In Advance,
    Dibya

  • Long running DBAdapter partnerlink activities (transactions)

    Hello,
    I try to use nonBlockingInvoke = true for long running DBAdapter partnerlink activities,
    but i'm not succesfull.
    In BPELConsole the activity seems to be running, but there is an entry
    in Manual Recovery > Activity TAB and OraBPEL~OC4J_BPEL~default_island~1
    log says:
    <2006-02-10 09:32:05,130> <INFO> <test.collaxa.cube.ws> <AdapterFramework::Outbound> file:/ora/app/oracle/product/bpel/integration/orabpel
    /domains/test/tmp/.bpel_ZalozeniObjednavky_1.2.jar/ZapisObjednavky.wsdl [ ZapisObjednavky_ptt::ZapisObjednavky(InputParameters) ] - Using
    JCA Connection Pool - max size = <unbounded>
    <2006-02-10 09:32:05,390> <ERROR> <test.collaxa.cube> <BaseCubeSessionBean::logError> Error while invoking bean "cube engine": Callback in
    vocation failed.
    An attempt to invoke the method "handleCallback" on the performer "bpel.p0.BPEL_BIN$$BPELC_BpInv0" failed. The reported exception is: "".
    Please ensure that the signature of the method "handleCallback" is: ( IWorkItem, ICubeContext ).
    <2006-02-10 09:32:05,406> <ERROR> <test.collaxa.cube.engine.dispatch> <BaseScheduledWorker::process> Failed to handle dispatch message ...
    exception ORABPEL-05002
    Message handle error.
    An exception occurred while attempting to process the message "com.collaxa.cube.engine.dispatch.message.instance.CallbackInvokerMessage";
    the exception is: Callback invocation failed.
    An attempt to invoke the method "handleCallback" on the performer "bpel.p0.BPEL_BIN$$BPELC_BpInv0" failed. The reported exception is: "".
    Please ensure that the signature of the method "handleCallback" is: ( IWorkItem, ICubeContext ).
    Does anybody succeed with nonBlockingInvoke = true on DBAdapter partnerlink?
    I use BPEL 10.1.2 patch02
    Thank you
    Karel

    Hi Jon,
    <br><br>
    <br>
    You can set the maxConnections which represents the Maximum number of connections in the pool in oc4j-ra.xml.
    Please refer to the section Oracle Application Server Adapter for Databases in Oracle® BPEL Process Manager Developer's Guide
    for more information.
    <br><br>
    <br>
    Aruna

  • Invoking long running web service from BPEL

    I have a web service. It takes more than 5 minutes (could be up to a few hours) to run. Now I need to invoke it from the BPEL workflow. I tried it, but doesn't work. It seems that there is timeout problem. Does anyone know how to integrate the long-running process into workflow?
    Thanks a lot.

    Yes, I am using a sync process. Currently, I divide the process into two parts: launchProcess() and getResult(). Then in BPEL workflow, I use a loop to check getResult(). It works, but I am wondering if there is any better solution.
    I think my situation is very common in the community. Fortunately, I can split the process into two parts. But for some long-running process, it can be difficult to split. How can we implement the process as an async process and integrate it into BPEL workflow? My process is written in Java. I am not familiar to the async process. Any suggestions?
    Thanks a lot.

Maybe you are looking for

  • URGENT!!! calling crystal reports from oracle forms 10g

    Is it possible to call crystal reports from oracle forms 10g? Can someone help to answer how, if there is a solusion, to call crystal reports from oracle forms 10g. Please provide codes with details showing step by step. Thanks

  • IPod Touch + iTunes + Windows Vista = NOT SYNCING!

    I used to have no problem syncing my iPod Touch 3rd Gen to the computer. I now can no longer sync it. I have done countless of fixes, including clearing temp folder, deleting and reinstalling drivers, etc. Pretty much everything but wipe my harddrive

  • Error when create listener - thespecified IP Address 'IP' is not valid in the cluster-allowed IP range.

    Hi... I'm able to configure AlwaysOn and all things are great. I have a problem only when create a listener , I have two node in same data center (SQLP1,SQLP2) and one in DR data center (SQLD1)  SQLP1 + SQLP2 > Sync SQLD1 > Async The error I face is 

  • How do i get icloud onto my mac

    On my system preferences I have a MobileMe symbol but no icloud. My ipad and iphone are in sync with each other but calendar events from these are not transferring to my computer. I suspect this is because icloud is the missing link on my mac. I am r

  • Collection of multiple IDOCS in one file to send once a day

    Hello, There are number of documents created for a vendor and we need to send the IDOCs for all the orders in one file collectively.  The transfer should happen at the end of day. Currently we are using correspondance mechanism for it, but it creates