Transactional triggers and commit processing

I have only been an active member of this thread for a couple of weeks and have tried to contribute to a few postings. But I have also noticed lots of postings relating to the use of DML statements inside what I would call non commit time triggers.
What I mean here is, for example, a WHEN-BUTTON-PRESSED trigger that does inserts, updates, deletes, followed by the COMMIT_FORM procedure.
I thought it might be useful to draw attention to the possible pitfalls of this approach. I'm not saying that this approach is wrong - far from it, but sometimes it means that people aren't leveraging the functionality that you get "for free" from Forms.
By coding some DML followed by a Commit_Form, you are not getting any rollback functionality from Forms. For example:
INSERT INTO A
INSERT INTO B
COMMIT_FORM;
Let's imagine that the insert into A worked but the insert into B failed for some reason. The user gets an unhandled exception. Now imagine that the cause of the error is cleared up, and the user presses the button (or whatever the invokation action was) again, and the commit works. You will have 2 records in A and 1 in B. You may not have expected that, and without coding your own rollback/savepoint that's what you would get.
You also (1) don't get a Working... message without coding it yourself, and (2) get the "No changes to commit" message; removing this is the subject of many threads on this site.
If you have a block which is based over a table which you need to update, then all of the DML statements ought to be coded inside PRE/POST/ON INSERT/UDPATE/DELETE statements, or other Forms transactional triggers (pre-database-commit etc..). If you need to change other tables then put the DML for them inside those triggers. Then you don’t have to worry about which records the user changed – if the user didn’t touch them then Forms won’t fire the triggers. And when you call the COMMIT_FORM procedure, Forms will fire the triggers for you and if any of them fail, it will rollback back to where the COMMIT_FORM started.
An example in 1 thread I saw this morning, was a Delete button, which was to delete the current record in a multi-record block. This button performed the “DELETE FROM <table> WHERE <key=:block.key>” followed by a Commit. Then of course the block needed to be re-queried to reflect the fact that the record had gone. Using the power of Forms to simply call the DELETE_RECORD procedure would have achieved the same result without needing to requery the block. And Forms would do the delete by ROWID, the fastest way of doing it.
If you don’t have a block based over a table, then you can consider creating a dummy block which uses Transactional Triggers. Code an ON-INSERT on that block which includes the DML you want to execute. Then in the trigger initiating the commit processing you would do something like:
:DUMMY_BLOCK.ITEM1 := ‘X’;
COMMIT_FORM;
IF (NOT FORM_SUCCESS) OR :SYSTEM.FORM_STATUS != ‘QUERY’ THEN
-- the commit failed
END IF;
Then you’ll get a nice Working.. message and full rollback control.
I think the moral of what I’m trying to get across is to use the power of Forms in the way it handles the transactions. Whilst we moan about it, it is actually quite good at that!
I hope this posting is taken in a positive light, I am certainly not trying to teach anyone to “suck eggs”.
PS. I find it ironic that you were prevented from coding DML statements outside of commit time triggers, in Forms 2.3!

Thank you, Kevin. Very informative.

Similar Messages

  • Transactional Triggers

    Hi,
    I'm new in oracle forms. I've been reading different documents/online help etc. But i'm confuse with the Transactional Triggers like On-Insert, On-Update, On-Delete. I mean when we should use On-Insert/On-Update/On-Delete? We can use regular insert/update procedure to achieve the task. So can someone please explain the differnece? Can someone please give me a sample example of how to create a block based on a transactional triggers and another one based on procedure.
    Thanks
    timt
    Message was edited by:
    timt

    Hello,
    Create a block base on a table and create a On-Insert trigger on that block. Put null in the On-Insert trigger. Run the form and enter some data into the item and commit it.
    Do the same thing without the On-Insert trigger.
    You are able to get the difference.
    Cheers
    SUN

  • Commit processing in Forms 10g, what triggers fire etc.

    In the oracle documentation there used to be a commit processing flowchart that said exactly what triggers fire on commit. Don’t seem to be able to find such a thing online.
    This started by trying to work out if when-validate-item always fired on commit, even if it had been fired when the value was changes. It has turned into a more general question about the above and if it is any different in forms 10g and is it any different to 6i, 9i...?
    I.e. how do you answer the standard oracle job interview question 'what triggers are fired when you commit in forms?'.
    Oracle seems to of hidden the information, anyone know the answer?
    Regards,
    Ben

    Hello,
    Something like this:
    POST-TEXT-ITEM
    POST-RECORD
    POST-BLOCK
    PRE-COMMIT
    PRE-UPDATE
    ON-UPDATE
    POST-UPDATE
    PRE-INSERT
    ON-INSERT
    POST-INSERT
    POST-FORM-COMMIT
    ON-COMMIT
    POST-DATABASE-COMMIT
    PRE-BLOCK
    PRE-RECORD
    PRE-TEXT-ITEM
    WHEN-NEW-ITEM-INSTANCE
    Francois

  • Transaction BEA1-2CC7F743D067E50C6CCB cannot complete commit processing because resource [SOADataSource_soa_domain] is unavailable

    Hi All,
    When I started admin server I was told the SOAdatasource (one of the datasources usual for SOA), global transaction protocol should be modified from 'one-phase Commit' to either 'Logging Last Resource'' or 'Emulate Two-Phase Commit'.SO I just went to below screen and changed (Supports Global Transactions checkbioc is already checked when I went there) radio box option from 'one-phase commit' to 'Logging Last Resource'
    After I changed ,I clicked on save button on the same page.I got the message like 'your property got changed,but one item restart is neccessary' .I thought I need to restart the server.
    So I again restarted the admin server and After that when I am started the SOA server, I am getting below  error:
    Jan 20, 2014 1:27:16 PM BRST> <Warning> <JTA> <BEA-110486> <Transaction BEA1-2CC7F743D067E50C6CCB cannot complete commit processing because resource [SOADataSource_soa_domain] is unavailabl
    e. The transaction will be abandoned after 78,780 seconds unless all resources acknowledge the commit decision.>
    <Jan 20, 2014 1:28:16 PM BRST> <Warning> <JTA> <BEA-110486> <Transaction BEA1-2CC7F743D067E50C6CCB cannot complete commit processing because resource [SOADataSource_soa_domain] is unavailabl
    e. The transaction will be abandoned after 78,720 seconds unless all resources acknowledge the commit decision.>
    I also tried to change that option to Emulate Two-Phase Commit.It is the same error I am geting for that option also.
    I don't have any idea why it is happening.I think that error indiactes that the saved property info is not reached to other components in the same server.
    In this same oracle forums, somebody told the below process :
    1_ Stop your server.
    2. Go to [your domain]\servers\AdminServer\data\store\default.
    3. WLSADMINSERVER_[random number].DAT
    4. Restart server
    I did the samething ,but it is still showing same error.
    Please guide me how to resolve this issue.I think there is some problem with what to restart after I change the option of transaction protocol.
    Please help me out in this issue

    Hi:
    try placing the jars that represent ur driver, here
    For both Windows and Linux, you must perform the following steps:
    Drop the vendor-specific driver JAR files to the user_projects/domains/soainfra/lib directory.
    Drop the vendor-specific driver JAR files to the <Weblogic_Home>/server/lib.
    Edit the classpath to include the vendor-specific jar file in <Weblogic_HOME>/common/bin/commEnv.sh
    This info was copied, from here: http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/adptr_db.htm#CHDBEJDC
    Hope this helps
    best

  • Javax.transaction.SystemException: Timeout during commit processing

              In my Workshop 8.1 SP2 project I have a Custom Java Control whose methods I call
              from my JPF. From that custom control I create a remote connection to a Weblogic
              6.1 Application server. I execute remote methods and get the expected objects
              back with no problem. The problem is that I cannot return that object from my
              custom control back to my jpf. As soon as the method's return statement is executed,
              the process hangs for a considerable period of time and then throws the following
              Exception:
              An error has occurred:
              Exception while commiting Tx : Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0005BF0F3E6E72419698(655489),Status=Unknown,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds
              since begin=217,seconds left=42983,XAServerResourceInfo[BMResourceManager]=(ServerResourceInfo[BMResourceManager]=(state=new,assigned=none),xar=null),SCInfo[midway+cgServer]=(state=active),SCInfo[prdsdomain+prdsserver]=(state=active),properties=({weblogic.transaction.name=[EJB
              com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=cgServer+172.23.83.174:7001+midway+t3+,
              XAResources={},NonXAResources={})],CoordinatorURL=prdsserver+172.23.4.109:7041+prdsdomain+t3+);
              nested exception is:
              javax.transaction.SystemException: Timeout during commit processing
              Start server side stack trace:
              javax.transaction.SystemException: Timeout during commit processing
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:243)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:189)
              at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68)
              at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
              at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
              at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
              at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              End server side stack trace
              caused by: : javax.transaction.SystemException: Timeout during commit processing
              Start server side stack trace:
              javax.transaction.SystemException: Timeout during commit processing
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:243)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:189)
              at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68)
              at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
              at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
              at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
              at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              End server side stack trace
              As soon as I take out RMI calls from my custom control's code, I can return any
              object I want back to my JPF. Here is the what I am thinking is happenning.
              The system that runs on Weblogic 6.1 manages its own transactions and begins a
              new transaction every time a session bean residing on that server is invoked.
              In addition, Weblogic 8.1 starts an internal transaction when the Custom Java
              Control makes a call. Could there be some kind conflict? If yes, is it possible
              to disable transactions from the Java Control?
              Thank you very much
              Alex Mayzlin
              

    Horst,
              "aa aa" <[email protected]> wrote in message news:20701457.1093414960276.JavaMail.root@jserv5...
              > we are getting the same Exception. As nobody replied to your question, it would be interesting, if you found any solution
              yourself?
              >
              > Additional info:
              > We are also getting these error messages from BEA when testing connections in pool before and after the exception:
              >
              > <20.08.2004 19.32 Uhr CEST> <Error> <JDBC> <BEA-001112> <Test "SELECT count(*) FROM invoice" set up for pool "ABCConnection Pool"
              failed with exception: "java.sql.SQLException: ORA-01591: lock held by in-doubt distributed transaction 4.47.141655".>
              Generally it's a good idea to use Oracle's system DUAL table
              for testing connections on reserve. Try to change your ABCConnection
              connection pool configuration to use DUAL as the test table
              instead of "invoice".
              Regards,
              Slava Imeshev
              

  • Difference between business activity and service process in transaction

    Hi Friends,
    Can anyone explain me  the difference between business activity and service process in transaction category of service desk
    Thanks & regards,
    Shanmugam Balamurugan

    Hi,
    Activity means e.g.. sales call, customer visit etc.
    But service process means after you sale your product if some service related issue arrives then that is taken care by this transaction.
    Inspire by rewarding.
    Regards,
    Nikhil

  • Begin and Commit Transactions

    I would like to use the begin and commit transaction in stored procedures in T-SQL. I wanted to know if I can put it around a few statements at once and so if there is an error in one of them none of the above statements will save and the procedure will
    terminate. Will this work with just a begin transaction before all the statements and a commit transaction at the end of all the statements and if there is an error nothing will save, or is there more to it?
    thank you
    Debra has a question

    Add also SET XACT_ABORT ON statement in your procedure.
    I suggest you to read this very interesting article Structured
    Error Handling Mechanism in SQL Server 2012, it should tell you everything you need to know.
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • Can't get rid of a TX - message keeps appearing and being processed by OSB

    I have some sort of a poison message or TX I can't flush. Every 10 seconds I get a log message like the second one below, and the number of pending messages in multiple places and OSB proxy service messages processed keep climbing - all without producing any new messages on my part. I've tried deleting the default server store on the OSB managed server and the filestore for the JMS server. No luck.
    When this first started happening, the error messages looked like the first one below. Something I did caused the change, I assume. However, it's the same TX ID throughout.
    So, first, how can I get rid of this thing? It's driving me nuts and keeping me from closing out a POC.
    Second, why is it happening? I have one suspicion - could it be because that somehow we configured mutiple domains with the same name for a distributed application? It's not my normal practice but it happened. These domains don't communicate directly, but there are domains that need to communicate with both. So I'm guessing the name ambiguity may be hurting us. Just a guess, though.
    In this case, the sgosb domain's proxy service (this domain name is unique) is receiving messages from a queue resident in the pega_domain in Singapore and another proxy service is putting a message to another queue in the pega_domain in the UK. This is not in a single TX; the first proxy service forwards the message to a queue in the sgosb_domain, the second proxy service gets that message and puts it into the other pega_domain. It's an XA TX for each proxy service.
    Just to make it more fun, the sgosb_domain has another proxy service reading from a different queue and forwarding it to a queue in the third pega_domain in the US.
    TIA for any help or insight.
    Oh yes, the OSB domain is WLS 10.3.4, while the pega_domains are WLS 10.3.2
    Original error message
    ####<Apr 13, 2011 4:32:13 AM GMT> <Error> <EJB> <sg01app510> <sgosb_1> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'>
    <<anonymous>> <> <92f54a30d60e6302:-4b6d523c:12f4cfeaabc:-8000-0000000000000123> <1302669133597> <BEA-010026> <Exception occurred during commit of
    transaction Xid=BEA1-039B0B6D3D0E77C1B135(1898471720),Status=Rolled back. [Reason=Unknown],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since
    begin=0,seconds left=600,XAServerResourceInfo[WLStore_pega_domain_ProcessEventJMS_Store_mgd1]=(ServerResourceInfo[WLStore_pega_domain_ProcessEventJMS_Store_mgd1]=
    (state=new,assigned=none),xar=null,re-Registered = false),SCInfo[sgosb_domain+sgosb_1]=(state=rolledback),SCInfo[pega_domain+pega_1]=(state=rolledback),properties=
    ({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=sgosb_1+152.64.128.243:22110+sgosb_domain+t3+, XAResources={eis/tibjms/Topic,
    WLStore_sgosb_domain_FileStore_auto_1, eis/aqjms/Queue, eis/wls/Queue, eis/tibjms/Queue, WLStore_sgosb_domain__WLS_sgosb_1, eis/AQ/aqSample, eis/aqjms/Topic,
    eis/pramati/Queue, eis/sunmq/Queue, WLStore_sgosb_domain_WseeFileStore_auto_1, WLStore_sgosb_domain_MesssageForwardingJMS_Store_mgd1,
    WSATGatewayRM_sgosb_1_sgosb_domain, eis/jbossmq/Queue, eis/activemq/Queue, eis/fioranomq/Topic, eis/tibjmsDirect/Topic, eis/wls/Topic,
    eis/tibjmsDirect/Queue, eis/Apps/Apps, eis/webspheremq/Queue},NonXAResources={})],CoordinatorURL=pega_1+nj09mhm5078:22111+pega_domain+t3+):
    javax.transaction.RollbackException: This transaction does not exist on the coordinating server.  It was probably rolled back and forgotten.
            at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
            at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
            at weblogic.transaction.internal.CoordinatorImpl_1032_WLStub.commit(Unknown Source)
            at weblogic.transaction.internal.TransactionImpl$1.run(TransactionImpl.java:331)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
            at weblogic.transaction.internal.SecureAction.runAction(SecureAction.java:72)
            at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:327)
            at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:252)
            at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:239)
            at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:553)
            at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:424)
            at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:326)
            at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
            at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
            at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
            at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
            at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: javax.transaction.RollbackException: This transaction does not exist on the coordinating server.  It was probably rolled back and forgotten.
            at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:94)
            at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
            at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
            at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
            at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
            at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    The error message I'm getting now
    ####<Apr 13, 2011 4:51:38 AM GMT> <Error> <EJB> <sg01app510> <sgosb_1> <[ACTIVE] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <>
    <92f54a30d60e6302:-42808c28:12f4d3173cb:-8000-0000000000000032> <1302670298730> <BEA-010026> <Exception occurred during commit of transaction
    Xid=BEA1-0011D0679BA5074B8E12(1930603846),Status=Rolled back. [Reason=javax.transaction.xa.XAException],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds
    left=60,XAServerResourceInfo[WLStore_sgosb_domain_MesssageForwardingJMS_Store_mgd1]=(ServerResourceInfo[WLStore_sgosb_domain_MesssageForwardingJMS_Store_mgd1]=
    (state=rolledback,assigned=sgosb_1),xar=WLStore_sgosb_domain_MesssageForwardingJMS_Store_mgd1239571724,re-Registered =
    false),XAServerResourceInfo[WLStore_pega_domain_ProcessEventJMS_Store_mgd1]=(ServerResourceInfo[WLStore_pega_domain_ProcessEventJMS_Store_mgd1]=
    (state=rolledback,assigned=pega_1),xar=null,re-Registered = false),SCInfo[sgosb_domain+sgosb_1]=(state=rolledback),SCInfo[pega_domain+pega_1]=(state=rolledback),properties=
    ({}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=sgosb_1+152.64.128.243:22110+sgosb_domain+t3+, XAResources={eis/tibjms/Topic,
    WLStore_sgosb_domain_FileStore_auto_1, eis/aqjms/Queue, eis/wls/Queue, eis/tibjms/Queue, WLStore_sgosb_domain__WLS_sgosb_1, eis/AQ/aqSample, eis/aqjms/Topic, eis/pramati/Queue, eis/sunmq
    /Queue, WLStore_sgosb_domain_WseeFileStore_auto_1, WLStore_sgosb_domain_MesssageForwardingJMS_Store_mgd1, WSATGatewayRM_sgosb_1_sgosb_domain, eis/jbossmq/Queue, eis/activemq
    /Queue, eis/fioranomq/Topic, eis/tibjmsDirect/Topic, eis/wls/Topic, eis/tibjmsDirect/Queue, eis/Apps/Apps, eis/webspheremq/Queue},NonXAResources=
    {})],CoordinatorURL=sgosb_1+152.64.128.243:22110+sgosb_domain+t3+): weblogic.transaction.RollbackException: Unknown reason
            at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1881)
            at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:345)
            at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:239)
            at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:553)
            at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:424)
            at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:326)
            at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
            at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
            at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
            at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
            at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: javax.transaction.xa.XAException
            at weblogic.store.gxa.internal.GXAResourceImpl.prepare(GXAResourceImpl.java:1227)
            at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:1295)
            at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerResourceInfo.java:500)
            at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.java:380)
            at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:2593)
            at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(ServerTransactionImpl.java:1321)
            at weblogic.transaction.internal.SubCoordinatorImpl.startPrepare(SubCoordinatorImpl.java:183)
            at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
            at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
            at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
            at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
            at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    .>Edited by: SteveElkind on Apr 13, 2011 5:50 AM

    Tom,
    Thanks! Succinct and easy to understand as ever.
    Yup, that covers it - I had also just seen this in the docs after looking at atheek1's earlier response (thanks to him/her as well). It's covered almost as clearly there as you state it here (http://download.oracle.com/docs/cd/E11035_01/wls100/jta/trxcon.html).
    While the ESB domains meet all of those requirements (except for cross-domain security configuration), each of the other two sets of domains (3 in each set) do not meet the naming uniqueness criteria for domain and server names; they do for JMS server names. I saw the store names in the TX identifier string as included resource, and assumed they might play a part - that's why I changed them. As you say, an unnecessary change. Oh well - it was an easy one.
    My normal practice has been for unique names in the past, due to problems I had years ago with cross-domain JMS traffic in an earlier WLS version. I guess it's the wrong time to have forgotten that lesson.
    Does anyone know of a quick way of changing a domain name quickly without rebuilding the domain? In the past WLST resulted in incomplete copies for me, is that still a problem? Server names are easy, just some global search-and-replace in the config.xml file (and in the management scripts, too)
    /Steve

  • Unable to start Extract and Replicate process?

    Hi,
    I have setup GG b/w two 10.2 databases in two different server(RHEL 5) . But unable to start the extract and replicate process
    Source
    GGSCI (prod.naveed.com) 1> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     STOPPED                                          
    EXTRACT     STOPPED     EXT1        00:00:00      00:43:42   
    GGSCI (prod.naveed.com) 2> start mgr
    Manager started.
    GGSCI (prod.naveed.com) 3> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    EXTRACT     STOPPED     EXT1        00:00:00      00:43:48   
    GGSCI (prod.naveed.com) 4> start extract ext1
    Sending START request to MANAGER ...
    EXTRACT EXT1 starting
    GGSCI (prod.naveed.com) 5> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    EXTRACT     STOPPED     EXT1        00:00:00      00:43:56   
    GGSCI (prod.naveed.com) 6> view params mgr
    PORT 7809
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    PURGEOLDEXTRACTS /home/oracle/golden_gate/dirdat/ex, USECHECKPOINTS
    GGSCI (prod.naveed.com) 7> view params ext1
    –extract group–
    extract ext1
    –connection to database–
    userid GG_ADMIN, password GG_ADMIN
    –hostname and port for trail–
    rmthost 172.168.1.11, mgrport 7809
    –path and name for trail–
    rmttrail /home/oracle/golden_gate/dirdat/lt
    –DDL support
    DDL INCLUDE ALL
    ddl include mapped objname NAVEED.*;
    –DML
    table NAVEED.*;
    GGSCI (prod.naveed.com) 8> exitTarget
    [oracle@Test golden_gate]$ ./ggsci
    Oracle GoldenGate Command Interpreter for Oracle
    Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
    Linux, x86, 32bit (optimized), Oracle 10g on Apr 23 2012 07:06:02
    Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
    GGSCI (Test.naveed.com) 1> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    REPLICAT    STOPPED     REP1        00:00:00      00:35:39   
    GGSCI (Test.naveed.com) 3> start replicat rep1
    Sending START request to MANAGER ...
    REPLICAT REP1 starting
    GGSCI (Test.naveed.com) 4> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    REPLICAT    STOPPED     REP1        00:00:00      00:36:06   
    GGSCI (Test.naveed.com) 5> view params mgr
    PORT 7810
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    PURGEOLDEXTRACTS /home/oracle/golden_gate/dirdat/ex, USECHECKPOINTS
    GGSCI (Test.naveed.com) 6> view params rep1
    -Replicat group-
    replicat rep1
    –target database login –
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    –file for dicarded transaction –
    discardfile /home/oracle/golden_gate/discard/rep1_discard.txt, append, megabytes 10
    –ddl support
    DDL INCLUDE ALL
    DDLERROR DEFAULT IGNORE RETRYOP
    –Specify table mapping —
    MAP NAVEED.*,       TARGET NAVEED.*;
    GGSCI (Test.naveed.com) 7>

    Thanks it worked, I m able to start both extract and replicate process.
    But when i create a new table and do some DML it is not getting replicated in the TARGET DB?
    Source
    GGSCI (prod.naveed.com) 1> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    EXTRACT     RUNNING     EXT1        00:30:52      00:00:10   
    GGSCI (prod.naveed.com) 2> view mgr
    ERROR: Invalid command.
    GGSCI (prod.naveed.com) 3> view params mgr
    PORT 7809
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    PURGEOLDEXTRACTS /home/oracle/golden_gate/dirdat/ex, USECHECKPOINTS
    GGSCI (prod.naveed.com) 4> view params ext1
    --extract group
    extract ext1
    --connection to database
    userid GG_ADMIN, password GG_ADMIN
    --hostname and port for trail
    rmthost prod.naveed.com, mgrport 7809
    --path and name for trail
    rmttrail /home/oracle/golden_gate/dirdat/lt
    --DDL support
    ddl include mapped objname NAVEED.*;
    --DML
    table NAVEED.*;Target
    GGSCI (Test.naveed.com) 3> info all
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    MANAGER     RUNNING                                          
    REPLICAT    RUNNING     REP1        00:00:00      00:00:02   
    GGSCI (Test.naveed.com) 4> view params mgr
    PORT 7810
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    PURGEOLDEXTRACTS /home/oracle/golden_gate/dirdat/ex, USECHECKPOINTS
    GGSCI (Test.naveed.com) 5> view params rep1
    --Replicat group
    replicat rep1
    --target database login –
    USERID GG_ADMIN, PASSWORD GG_ADMIN
    --file for dicarded transaction –
    discardfile /home/oracle/golden_gate/discard/rep1_discard.txt, append, megabytes 10
    --ddl support
    DDL INCLUDE ALL
    --Specify table mapping
    MAP NAVEED.*, TARGET NAVEED.*;Source
    SQL> conn NAVEED/NAVEED
    Connected.
    SQL> create table tab_1 (id number,rnd_str varchar2(12));
    SQL> insert into tab_1 values (1,'test_1');
    SQL>commit;
    SQL> select * from tab_1;
            ID RND_STR
             1 test_1Target database:
    SQL> conn NAVEED/NAVEED
    Connected.
    SQL> select * from tab_1;
    select * from tab_1
    ERROR at line 1:
    ORA-00942: table or view does not exist

  • Transactional Caches and Write Through

    I've been trying to implement the use of multiple caches, each with write through, all within a transaction.
         The CacheFactory.commitTransactionCollection(..) method only seems to work correctly if the first transactionMap throws an exception in the database code.
         If the second transactionMap throws exceptions, the caches do not appear to rollback correctly.
         I can wrap the whole operation in a JDBC transaction that rolls back the database correctly but the caches are not all rolled back because they are committed one by one?
         For example, I write to two transaction maps, each one created from separate caches. When commiting the transaction maps, the second transaction map causes a database exception. It appears the first transaction map has already committed its objects and doesn't roll back.
         Is it possible to use Coherence with multiple transaction maps and get all the caches and databases rolled back?
         I've also been trying to look at using coherence-tx.rar as described in the forums within WebLogic but I'm getting @@@@@ Failed to commit: javax.transaction.SystemException: Could not contact coordinator at null+SMARTPC:7001+null+t3+
         (SMARTPC being my pc name)
         Has anybody else had this problem? Bonus points for describing how to fix it!
         Mike

    The transaction support in Coherence is for Local     > Transactions. Basically, what this means is that the
         > first phase of the commit ("prepare") acquires locks
         > and ensures that there are no conflicts. The second
         > phase ("commit") does nothing but push data out to
         > the caches.
         This means that once prepare succeeds (all locks acquired), commit will try to copy local data into the base map. If there is a failure on any put, rollback will undo any changes made. All locks are cleared at the end.
         > The problem is that when you are using a
         > CacheStore module, the exception is occurring during
         > the second phase.
         If you start using a CacheStore module, then database update has to be part of the atomic procedure.
         >
         > For this reason, write-through and cache transactions
         > are not a supported combination.
         This is not true for a cache transaction that updaets a single cache entry, right?
         >
         > For single-cache-entry updates, CacheStore operations
         > are fully fault-tolerant in that the cache and
         > database are guaranteed to be consistent during any
         > server failure (including failures during partial
         > updates). While the mechanisms for fault-tolerance
         > vary, this is true for both write-through and
         > write-behind caches.
         For the write-thru case, I believe Database and cache are atomically updated.
         > Coherence does not support two-phase CacheStore
         > operations across multiple CacheStore instances. In
         > other words, if two cache entries are updated,
         > triggering calls to CacheStore modules sitting on
         > separate servers, it is possible for one database
         > update to succeed and for the other to fail.
         But once we have multiple CacheStore modules, then once one atomic write-thru put succeeds that means database is already updated for that specific put. There is no way to roll back the database update (although we can roll back the cache update). Therefore, you may end up in partial commits in such situations where multiple cache entries are updated across different CacheStore modules.
         If I use write-behind CacheStore modules, I can roll back entirely and avoid partial commits? Since writes are not immediately propagated to the database? So in essence, write-behind cache stores are no different than local transactions... Is my understanding correct?

  • Getting error 'root transaction wanted to commit, but transaction aborted'

    We have a module in our project, which reads data from XML file and merges the data into the database. This merging at one end happens to a SQL Server 2005/SQL Server 2000 datbase. At the other end it happens to a Oracle database. We have a portal application developed in ASP.NET from where, we merge the data.
    When the data to be merged is very huge, we get this message. 'The root transaction wanted to commit, but transaction aborted'. Right now we are getting this message, when we try to merge data on to a oracle database.
    But this problem is very intermittent. It happens only when there is huge amount of data to be inserted to one table.
    As i have mentioned in my post, we use Windows server 2003 operation system with service pack 2. This error does not come when we do the same operation with service pack 1.
    So is it OS dependent?

    Please find the details of the log file.
    DMS_CORE_DAL_DBERROR
    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
    at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
    at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
    at CoreServices.DAL.DataManager.ExecuteNonQueryProc(DBConnection foConn, String fProcName, DOList foParamDOList)
    *** ORA-02291: integrity constraint (ADVTVS.FK_JCARD_JCARD_LAB) violated - parent key not found
    ORA-06512: at "ADVTVS.PKG_SYNC_MERGE_TRNS_SERVICE", line 318
    ORA-06512: at line 1 ---
    Server stack trace:
    at CoreServices.Pipeline.TransactionPipeline.Process(IPipelineable& foPipeLineDataObject, PipelineOperation fiPipelineOprn)
    at System.Runtime.Remoting.Messaging.Message.Dispatch(Object target, Boolean fExecuteInContext)
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
    Exception rethrown at [0]:
    at DataSync.MergeData.MergeDataManager.Merge(Int32 fiDealerId)
    at Client.DataSync.cmdMerge_Click(Object sender, EventArgs e)
    DATASYNC_MERGE
    at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo)
    at System.EnterpriseServices.Thunk.Callback.DoCallback(Object otp, IMessage msg, IntPtr ctx, Boolean fIsAutoDone, MemberInfo mb, Boolean bHasGit)
    at System.EnterpriseServices.ServicedComponentProxy.CrossCtxInvoke(IMessage reqMsg)
    at System.EnterpriseServices.ServicedComponentProxy.Invoke(IMessage request)
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    at CoreServices.Pipeline.TransactionPipeline.Process(IPipelineable& foPipeLineDataObject, PipelineOperation fiPipelineOprn)
    at DataSync.MergeData.MergeDataManager.Merge(Int32 fiDealerId) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo)
    at System.EnterpriseServices.Thunk.Callback.DoCallback(Object otp, IMessage msg, IntPtr ctx, Boolean fIsAutoDone, MemberInfo mb, Boolean bHasGit)
    at System.EnterpriseServices.ServicedComponentProxy.CrossCtxInvoke(IMessage reqMsg)
    at System.EnterpriseServices.ServicedComponentProxy.Invoke(IMessage request)
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
    at CoreServices.Pipeline.TransactionPipeline.Process(IPipelineable& foPipeLineDataObject, PipelineOperation fiPipelineOprn)
    at DataSync.MergeData.MergeDataManager.Merge(Int32 fiDealerId)
    *** The root transaction wanted to commit, but transaction aborted ---
    The ORA codes are ORA-02291 and ORA-06512.
    We are not getting any of these errors, when we merge same data from Windows 2003 server SP1. But if we execute it from SP2, we are getting this error.
    Are there any hotfixes provided by MS to fix this problem.

  • SQL - Rollback and Commit

    Hi,
    What exactly does Rollback do?  I know that COMMIT applies the changes to the database system.  The thing is, I've read that until commit is applied, the database in permanent storage is unchanged.  So what exactly does a ROLLBACK
    "roll back"?  Does it rollback the changes made to the data tables that have been loaded into RAM?
    Thanks
    Joe

    So what you're saying is that even though I'm in transaction mode and haven't done a commit or rollback, the database on the hard disk can still be affected by the transaction.
    So when I do a COMMIT, then all remaining changes in memory are applied to the database and when I ROLLBACK, any changes done both to the database and the tables in RAM are undone?
    Do I understand this right?
    Thanks!
    Yes, when you are in a transaction and you make a change to a database page, before SQL makes that change, it, of course, must have that page in memory.  The change is then made in memory.  But if there is a lot of memory pressure, that page in
    memory can be written to disk even though the transaction is still open. 
    When you do a commit, the rows are unlocked and available to other processes, but if the changed rows are in memory and not yet written to disk, they are not necessarily immediately written to disk.  They may stay in memory and be written to disk at
    a later time.  They will be written back to disk either when SQL needs that memory for something else, or SQL has some unused I/O time that is not needed for other processes, or a CHECKPOINT occurs.  In essence, a checkpoint forces all committed
    changes (CORRECTION -thanks Shanky_621 - all changes (whether committed or not (the rules for tempdb are a little different)) to be written to disk.  You may want to see
    http://technet.microsoft.com/en-us/library/ms189573.aspx for a description of checkpoints.
    What is guaranteed to be written to disk when you do a commit is the log records needed to reproduce the change.  And if an uncommitted change is written to disk, that change is also logged before it is written to the database.
    The reason for that is when your system unexpectedly crashes, there can be uncommitted changes that have been written to disk and committed changes that were in memory and not on disk.  If this happens, the next time you bring up SQL Server it examines
    the log.  Any uncommitted change that got written to disk is reversed and any committed change which was never written to disk is applied to the disk.  That allows SQL Server to insure that every committed change is on the disk and only committed
    changes are on disk.
    All of this is, of course, complex.  But there is a reason for it.  Usually, the bottleneck in database systems is the disk I/O system.  So SQL server has a lot of complex algorithms to make disk I/O as efficient as possible.  The good
    news is that in most cases you can ignore all of this.  Most of it you have no control over.  There are some things you can tweak.  The primary one is the amount of memory you let SQL Server use.  Also, you can change the CHECKPOINT interval
    (which essentially lets you make tradeoffs between how efficient normal processing is vs the length of time it can take to recover after a system failure.  But the default value for CHECKPOINT interval works fine in most cases.
    Tom

  • External transaction control and ability to find new registered objects

    Hello, We are using Toplink with external transaction control and have a process inserting a complex hierarchy of objects. During the process we either do a registerObject or deepmergeClone depending on if the instance is already in the db. With external transaction control the registerObject does not actually do the commit to db until the global transaction (Container) issues the commit. Unfortunately we end up doing creating multiple instances of same objects ( because the assumption that registerObject would have written the row to the db ) with the same keys and when the container issues the commit we end up with duplicate key violation. Is there a way to find out if an object with a particular key is already registered?

    This sounds like the kind of question that can only be answered with a whiteboard and a good review of your architecture.
    In general, there should be no problem registering objects multiple times. I.e.,
    x = some object
    x1 = uow.registerObject(x);
    Then x1==uow.registerObject(x), and x1==uow.registerObject(x1), etc. When you register an object with the UOW, based on PK it'll always return that same one.
    Do you have multiple units of work on the go? (that may explain this behavior).
    In any case, I think the real problem here is that you're somehow registering objects that are no longer cached. I.e., some object is serialized or rebuilt and then registered after it's gone from the cache. By default, TopLink determines if an object is new or existing (to determine INSERT vs UPDATE) by hitting the cache. You can change this default behavior in the Mapping Workbench, open the advanced property for "Identity" and change existence checking to "check database". Although, this can be a slow and tedious process to have to keep hitting the DB.
    A little trick I use sometimes is to take advantage of the "readObject" API that will read the object from the databaes if it's not already in cache, and just return it from cache if it is in cache. Check out the UOW primer at http://otn.oracle.com/products/ias/toplink/index.html for more info, but the jist is that I would do this if I were you:
    x = some object that you're not sure is cached and you want to register in UOW;
    x' = uow.readObject(x);
    IF the object was in cache, you'd get back a working copy, nice and fast. IF it's not in cache, you hit the database, it goes in cache, and you get your working copy. Now you don't have to change the existence checking option which could slow everything down.
    - Don

  • Modifiying, Transporting and Scheduling Process Chain

    Hello ALL,
    i have to create a new process chain for a delta Load and put this process chain in a big existing Meta Chain, after i have to transport to Quality System.
    if i control the difference between Dev and Quality system to have an idea i see that the Infopackages in Dev have the execution tab: Load Data Immediately without job: BI_BTCH
    in Quality some Infopackages have execution tab: run successively in batch with job like this:
    BI_BTCH LX6CW08S1ICM04I4O06KOPL
    can you tell me please in detail how should i complete this activity:
    - wich type of control should i do before creating and modifiying process chain in DEV and Quality
    - how should i do to control in Quality the scheduling of a process chain
    - if i modify a process chain in DEV and after i will transport in Quality what will be the affect in Scheduling, the scheduling will be the same without problem or i have to schedule again
    - in generale how can i schedule a process chain, wich transaction and how in detail
    Thanks a lot for your help
    Bilal

    Hi Bilal,
    1) EVENT: When you want to have a process chain 'A' to be started after completion of a process chain 'B' or any process in process chain 'B' we can use this event.  These two chains can also be from different BI systems.  Like Chain 'A' could be from one production system and Chain 'B' could be from different production system.  As soon as the chain A finished an event will be triggered and this event will trigger the chain B.  The start time of chain B might differ because it depends on the completion of chain A. To schedule a process chain using an event, Go to Tcode: RSPC look for your chain. Switch to change mode. Right click on the start variant and select maintain variant. Click on "change selections. click on "after event," give the event name in the slot and select the periodic job.
    2) RUN JOB PERIODICALLY: When you want to have the chain run for more than once periodically we select this option.  Suppose, chain B has to run after completion of chain A periodically we have to use this option.  If you do not check this option, your chain B will run only once when the event is triggered after completion of Chain A.  From the next time onwards, it not run even the event is triggered.
    3) JOB: For every process when it runs a job will be created assainging it to a work process in the system.  Similarly, when the chain starts a job will be created containing the log of the run.  Also, in the scheduling options of a process chain, you can have your process chain started after completion of a particular job in the system (ex: an attribute change).  For this, Go to Tcode: RSPC look for your chain. Switch to change mode. Right click on the start variant and select maintain variant. Click on "change selections. click on "after job" give the job name in the slot and save the settings.
    4) SCHEDULING PROCESS CHAIN: Means to make settings to a process chain so that it will run on a periodic basis at a certain time.  If you want to start a chain immediately, you will choose the option immediately and trigger it.  It will run for only once.  But, if you want to have your chain run everyday at 7:00 am in the morning, you have to schedule it using the scheduling options as below:
    In Tcode: RSPC look for your chain. Switch to change mode. Right click on the start variant and select maintain variant. Click on "change selections." Click on Date/Time button. Give the start date and time in the Scheduled Start slots. (Ex: 09-04-2009, 7:00, to have the chain run at 7:00 everyday starting from tomorrow). Tick the check box Periodic job in the bottom and click on "periodic values" button and select the option as daily and save it. Then click on "Restrictions" button to specify the factory calander. The Tcode for calander is SCAL, where you can see all the factory calanders in the system and you can choose that suits your requirement. Save the changes and navigate back to process chain maintaince screen and click on "Schedule" button.
    Now your chain is automated for trigger

  • Timeout during commit processing

    Hi All,
    I am facing time out exception on test environment. It is clustered environment with 2 nodes. I have set trust domain between the two weblogic domains.
    In one of my EJB method having tranaction attrbiute set as Required. In this method I also make a remote ejb call to different system for which I have set Trust.
    When i execute this method , I see all my debug statement entering the method and exiting the method, after it exits my method , my client still waiting on response from this method and finally he get the java.rmi.RemoteException.
    Detailed exception as below....
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
         com.bea.control.ServiceControlException: <xml-fragment xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <faultcode> SOAP-ENV:Client </faultcode> <faultstring> Exception while commiting Tx : Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0074571ED882A67DA1E5(11375621),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=118,seconds left=2,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=committed,assigned=NodeOne),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@190af6,re-Registered = false),SCInfo[p2pDomain+NodeOne]=(state=committed),SCInfo[mycompany+NodeOne]=(state=committing),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://192.168.86.61:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+); nested exception is:
         javax.transaction.SystemException: Timeout during commit processing </faultstring> <detail>
    Exception while commiting Tx : Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0074571ED882A67DA1E5(11375621),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=118,seconds left=2,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=committed,assigned=NodeOne),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@190af6,re-Registered = false),SCInfo[p2pDomain+NodeOne]=(state=committed),SCInfo[mycompany+NodeOne]=(state=committing),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://192.168.86.61:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+); nested exception is:
         javax.transaction.SystemException: Timeout during commit processing </detail></xml-fragment>
         at weblogic.ejb20.internal.EJBRuntimeUtils.throwRemoteException(EJBRuntimeUtils.java:102)
         at weblogic.ejb20.internal.BaseEJBHome.handleSystemException(BaseEJBHome.java:307)
         at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:263)
         at weblogic.ejb20.internal.StatelessEJBObject.postInvoke(StatelessEJBObject.java:140)
         at com.bea.wlw.runtime.core.bean.SyncDispatcher_k1mrl8_EOImpl.invoke(SyncDispatcher_k1mrl8_EOImpl.java:56)
         at com.bea.wlw.runtime.core.dispatcher.Dispatcher.remoteDispatch(Dispatcher.java:161)
         at com.bea.wlw.runtime.core.dispatcher.ServiceHandleImpl.invoke(ServiceHandleImpl.java:436)
         at com.bea.wlw.runtime.core.dispatcher.WlwProxyImpl._invoke(WlwProxyImpl.java:326)
         at com.bea.wlw.runtime.core.dispatcher.WlwProxyImpl.invoke(WlwProxyImpl.java:315)
         at $Proxy17.updatePurchaseOrder(Unknown Source)
         at newpageflow1.Newpageflow1Controller.begin(Newpageflow1Controller.jpf:75)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.bea.wlw.netui.pageflow.FlowController.invokeActionMethod(FlowController.java:1519)
         at com.bea.wlw.netui.pageflow.FlowController.getActionMethodForward(FlowController.java:1445)
         at com.bea.wlw.netui.pageflow.FlowController.internalExecute(FlowController.java:776)
         at com.bea.wlw.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:211)
         at com.bea.wlw.netui.pageflow.FlowController.execute(FlowController.java:606)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:1354)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:650)
         at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
         at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:326)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.superForward(PageFlowRequestProcessor.java:1301)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor$DefaultHttpRedirector.forward(PageFlowRequestProcessor.java:1317)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlowRequestProcessor.java:1199)
         at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:637)
         at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
         at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:293)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: com.bea.control.ServiceControlException: <xml-fragment xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <faultcode> SOAP-ENV:Client </faultcode> <faultstring> Exception while commiting Tx : Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0074571ED882A67DA1E5(11375621),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=118,seconds left=2,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=committed,assigned=NodeOne),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@190af6,re-Registered = false),SCInfo[p2pDomain+NodeOne]=(state=committed),SCInfo[mycompany+NodeOne]=(state=committing),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://192.168.86.61:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+); nested exception is:
         javax.transaction.SystemException: Timeout during commit processing </faultstring> <detail>
    Exception while commiting Tx : Name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)],Xid=BEA1-0074571ED882A67DA1E5(11375621),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=118,seconds left=2,XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=committed,assigned=NodeOne),xar=weblogic.jdbc.wrapper.JTSXAResourceImpl@190af6,re-Registered = false),SCInfo[p2pDomain+NodeOne]=(state=committed),SCInfo[mycompany+NodeOne]=(state=committing),properties=({weblogic.transaction.name=[EJB com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(com.bea.wlw.runtime.core.request.Request)], weblogic.jdbc=t3://192.168.86.61:7001}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+, XAResources={},NonXAResources={})],CoordinatorURL=NodeOne+192.168.86.61:7001+p2pDomain+t3+); nested exception is:
         javax.transaction.SystemException: Timeout during commit processing </detail></xml-fragment>
         at com.bea.wlw.runtime.core.control.ServiceControlImpl.invoke(ServiceControlImpl.jcs:1233)
         at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:377)
         at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:423)
         at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:396)
         at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:248)
         at com.bea.wlw.runtime.jcs.container.JcsContainer.invoke(JcsContainer.java:85)
         at com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(BaseContainerBean.java:224)
         at com.bea.wlw.runtime.core.bean.SLSBContainerBean.invoke(SLSBContainerBean.java:103)
         at com.bea.wlwgen.StatelessContainer_ly05hg_ELOImpl.invoke(StatelessContainer_ly05hg_ELOImpl.java:99)
         at com.bea.wlwgen.GenericStatelessSLSBContAdpt.invokeOnBean(GenericStatelessSLSBContAdpt.java:62)
         at com.bea.wlw.runtime.core.bean.BaseDispatcherBean.runAsInvoke(BaseDispatcherBean.java:153)
         at com.bea.wlw.runtime.core.bean.BaseDispatcherBean.invoke(BaseDispatcherBean.java:54)
         at com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(SyncDispatcherBean.java:168)
         at com.bea.wlw.runtime.core.bean.SyncDispatcher_k1mrl8_EOImpl.invoke(SyncDispatcher_k1mrl8_EOImpl.java:46)
         ... 53 more
    appreciated any help on this .....
    hitesh

    Hi skrai,
              From the moment the begin call is made, the timer starts ticking independently of the flow of your processing. When the timeout expires, the Transaction Manager will roll the transaction back. The first you hear of that happening may be when calls you make in the thread associated with the transaction start to throw exceptions, since it is not possible to propagate a rolled-back transaction (what would be the point, the results of the call will not persist under any circumstances?).
              Therefore suspending a transaction has no impact whatsoever on its timeout; it simply breaks the association between transaction and thread. If your code suspends a transaction and then goes to sleep for a week, it should expect to find that the transaction has timed out while it slept.
              So when U invoke an EJB with "NotSupported" tx attribute, the clock with the tx manager is still ticking.
              Hope my explanation helped to resolve your issue.
              Thanks
              -Rais

Maybe you are looking for

  • Looking for All on one with USB Flash Drive Print/Scan support

    I am looking for an All in One Print/scan/copy. It should support print from USB Flash drive and scan to the same. Thanks

  • Ipod touch 2.1 software upgrade problem

    Hi so i have a first generation ipod touch and i have bought the 2.1 software upgrade but now it is saying that in order to upgrade i have to wipe all content currently on my ipod. This is a problem because I do not have all the files that are on my

  • Show Report In Two Columns

    Apex 3.2 I have a report and it has 1 column and 22 rows. At the moment, I show the first 15 rows and then you must paginate. The report will not grow much, may be to 30 rows. Is there a way to display the first 15 rows in 1 column and the second in

  • Creating trigger using database link

    I need to create the trigger from local server B using Dblink(whereas the dblink points to the remote server A) Action of the trigger: After every insertion of the record in the 'Table1' from the Remote DB Server A , the newly inserted record should

  • Audigy SE in Vista 32bit. Time to repla

    I have an Audigy SE using the latest Beta drivers from the CL site, running on Vista Ultimate 32bit. Sound is choppy, with no microphone. Should i expect a working driver in the future from CL?Any recommendations on a fully working alternati've card?