Cleanup the Transaction Manager?

How do you clean out the records in the Transaction Manager?
Thanks,
Chuck

Hi,
Please refere SAP MII Help to delete records from transaction manager.
[SAP MII 12.1 Help|http://help.sap.com/saphelp_mii121/helpdata/en/43/e80b59ad40719ae10000000a1553f6/frameset.htm]
To delete transactions from the table, do the following:
  a.      Select the checkbox next to the transactions you want to delete from the table.
  b.      Click Delete.
The system removes the transactions from the Transaction Manager screen, but the transaction records still exist in the system.
Hope this help!!!
Regards,
Manoj Bilthare

Similar Messages

  • Configuring the Transaction Manager

    I'm currently trying to use Hibernate in OC4J and it works okay. However I've been told I can bind the Hibernate Transaction Manager to a JNDI name in the application server but cannot find any info on how.
    I also want to bind the HibernateSessionFactory to a JNDI name.
    Regards,
    Anthony

    Configuring for JNDI is even easier. Simply add this line to your hibernate.cfg.xml
    <property name="hibernate.session_factory_name">java:hibernate/HibernateFactory</property>
    Then implement the getSessionFactory() method of whatever factory class you're using like so:
    public static SessionFactory getSessionFactory()
    SessionFactory sessions = null;
    try {
    Context ctx = new InitialContext();
    String jndiName = "java:hibernate/HibernateFactory";
    sessions = (SessionFactory)ctx.lookup(jndiName);
    } catch (NamingException ex) {
    throw new InfrastructureException(ex);
    return sessions;

  • Does transaction manager also releases the connections ?

    Hi All,
    I've a doubt regarding release of connection in transaction handling scenarios in EJB.
    Let us assume I have an EJB method associated with a transaction attribute as Requires New (i.e. the ejb method is associated with container managed transaction).
    Within that method two diffreent databasess are accessed, connections are created, databases are updated but connections are not realeased.
    The code goes similar to the one given below -
    public void beanMethod1()
    InitialContext cntx = new InitialContext();
    javax.sql.DataSource ds1 = cntx.lookup("dataSourceName1");
    javax.sql.DataSource ds2 = cntx.lookup("dataSourceName2");
    java.sql.Connection conn1 = ds1.getConnection();
    ds1.setAutoCommit(false);
    PreparedStatement pst1 = ds1.prepareStatement("Qyery1");
    pst1.executeUpdate();
    java.sql.Connection conn2 = ds2.getConnection();
    ds2.setAutoCommit(false);
    PreparedStatement pst2 = ds2.prepareStatement("Qyery2");
    pst2.executeUpdate();
    Now in this context my doubt is - will the transaction manager, along with handling commit/rollback, release the connections also (once commit/rollback is over) ? Or releasing of connections need to be handled in the bean method ?
    If releasing connections has to be handled in the bean method, then how does transaction manager execute a commit/rollback on a released connection ?
    The same doubt can be extended to bean managed transaction also where transaction boundarry is demarcated using javax.transaction.UserTransaction object's begin(), commit() and rollback() methods.
    It will be a real help if anyone please throw some light on this doubt.
    Thanks in advance,
    Sourav

    Hi,
    Your code needs to release (i.e., close) the connections it uses; this is outside the TM responsibility scope.
    The commit or rollback is not a problem, because the corresponding XAResource (which is the
    transaction manager's handle to your connection) can be used even after your connection
    has been closed in the application code. That is the catch about XA, and it allows the whole
    mechanism of connection pooling and DataSources to work properly.
    Hope that helps,
    Guy

  • Transaction management in stateless session beans.

    Hi all,
    I am using EJB 1.1.
    I have a statless session bean that has two methods- A and B.
    which does not involve any database interaction
    like inserting/updating/deleting the data in the database.
    The process flow is such the client always calls A first followed by the call to B.
    I have the Transaction attribute set as TX_REQUIRED at the whole bean level.
    Now my question is as follows:
    Since it is a stateless bean, ejbCreate() is called for every method's invocation.
    So does it mean that a new transaction is started for every method invocation?
    Also since a transaction ends by commit/rollback.
    The transation associated with the method A/B will never get completed as there is no commit/rollback involved in method implementation.
    So how is this transaction ended?
    Any more details about the transaction management in stateless session beans is highly appreciated.
    Any input at the earliest is highly appreciated.
    Thanks in advance.

    Since it is a stateless bean, ejbCreate() is called for every method's invocation.For stateless session bean , Create() is not delegated to the instance.
    So does it mean that a new transaction is started for every method invocation?This depends opon the Tx attribute and sequence of calls. Since you have given Tx_required then if you call any method and there is no Tx context associated with client,then a new TX will be started by container othere wise it will execute in the same TX context as the calling client. Note that client can be jsp or other ejb method.
    Also since a transaction ends by commit/rollback.
    The transation associated with the method A/B will never get completed >as there is no commit/rollback involved in method implementation.
    So how is this transaction ended?If you are using COntainer managed TX then Transaction handling like starting , ending etc is handled by the container. You need not worry about that.
    Any more details about the transaction management in stateless session >beans is highly appreciated.
    Any input at the earliest is highly appreciated.Some time back I had read the article on how the Transaction management done by container on IBM Site. I dont have URL , but you can search the site.
    HTH
    -Ashwani

  • Coherence and EclipseLink - JTA Transaction Manager - slow response times

    A colleague and I are updating a transactional web service to use Coherence as an underlying L2 cache. The application has the following characteristics:
    Java 1.7
    Using Spring Framework 4.0.5
    EclipseLink 12.1.2
    TopLink grid 12.1.2
    Coherence 12.1.2
    javax.persistence 12.1.2
    The application is split, with a GAR in a WebLogic environment and the actual web service application deployed into IBM WebSphere 8.5.
    When we execute a GET from the server for a decently sized piece of data, the response time is roughly 20-25 seconds. From looking into DynaTrace, it appears that we're hitting a brick wall at the "calculateChanges" method within EclipseLink. Looking further, we appear to be having issues with the transaction manager but we're not sure what. If we have a local resource transaction manager, the response time is roughly 500 milliseconds for the exact same request. When the JTA transaction manager is involved, it's 20-25 seconds.
    Is there a recommendation on how to configure the transaction manager when incorporating Coherence into a web service application of this type?

    Hi Volker/Markus,
    Thanks a lot for the response.
    Yeah Volker, you are absolutely right. the 10-12 seconds happens when we have not used the transaction for several minutes...Looks like the transactions are moved away from the SAP buffer or something, in a very short time.
    and yes, the ABAP WP's are running in Pool 2 (*BASE) and the the JAVA server, I have set up in another memory pool of 7 GB's.
    I would say the performance of the JAVA part is much better than the ABAP part.
    Should I just remove the ABAP part of the SOLMAN from memory pool 2 and assign the JAVA/ABAP a separate huge memory pool  of say like 12-13 GB's.
    Will that likely to improve my performance??
    No, I have not deactivated RSDB_TDB in TCOLL from daily twice to weekly once on all systems on this box. It is running daily twice right now.
    Should I change it to weekly once on all the systems on this box?  How is that going to help me?? The only thinng I can think of is that it will save me some CPU utilization, as considerable CPU resources are needed for this program to run.
    But my CPU utilization is anyway only like 30 % average. Its a i570 hardware and right now running 5 CPU's.
    So you still think I should deactivate this job from daily twice to weekly once on all systems on this box??
    Markus, Did you open up any messages with SAP on this issue.?
    I remember working on the 3.2 version of soultion manager on change management and the response times very much better than this as compared to 4.0.
    Let me know guys and once again..thanks a lot for your help and valuable input.
    Abhi

  • Cannot connect to transaction manager

    Hi,
    i keep on getting this error "cannot connect to the transaction manager or the transaction manager is not available"
    my setup is windows 2000, oracle 8i and odbc oracle driver version is 8.1.7.
    help please...
    regards,
    Russell Limcangco

    This is very critical for MTS-Oracle to work. Make sure, it points to the right dlls. It varies with the Oracle client version. For 8.1.7 the above registry entry should read like this..
    oraclexalib = oraclient8.dll
    oraclesqllib = orasql8.dll
    oacleocilib = oci.dll

  • @TransactionAttribute annotation being ignored by Transaction Manager

    I am currently running jboss-4.0.4GA. I believe I must have something configured incorrectly, or I misunderstand transaction management performed by the container. Though I have my datasource declared as local-tx, which I believe allows transactions, it appears that my a call to a remote function in a stateless session bean is completely executed in one single transaction, regardless of the @TransactionAttribute tags.
    In my example, I call a function with @TransactionAttribute = REQUIRED. This is the OUTER FUNCTION. This function inserts a record into the cust table of our database. Then this function calls a second function with @TransactionAttribute = REQUIRES_NEW. This is the INNER FUNCTION.
    This function should, according to spec, start up a new transaction independant of the first function. However, the INNER function can select the (un-committed) cust record from the OUTER function. The INNER function then proceeds to add a cust record of its own to the database.
    Control then returns to the OUTER function, which can succesfully read the cust record inserted by the INNER function, which is to be expected because the INNER function should have had its transaction committed. However, my program then throws a RuntimeException in order to force a rollback, and this rollback removes both the cust record inserted by the OUTER function and the cust record inserted by the INNER function.
    To further my belief that the transaction manager is ignoring my @TransactionAttribute annotations, I change the TransactionAttributeType of the INNER function to "NEVER". According to spec, the code should throw an exception when this function is called within a managed transaction. However, when I run the code I get the exact same behavior as when the INNER function is "REQUIRES_NEW".
    I would greatly appreciate if anyone has any insight into what I am doing wrong. Thanks!
    Client Program that Invokes TestTransImpl Stateless Session Bean
    public class Client{
         public static void main(String[] args) throws Exception {
              try{               
                   Properties env = new Properties();
                               env.setProperty(Context.SECURITY_PRINCIPAL, "guest");
                               env.setProperty(Context.SECURITY_CREDENTIALS, "guest123");
                               env.setProperty(Context.PROVIDER_URL, "jnp://localhost:1099");
                               env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
                               env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory");
                   InitialContext ctx = new InitialContext(env);
                   TestTransRemote ttr = (TestTransRemote)ctx.lookup("TestTransImpl/remote");
                   ttr.testTransactions();
              }catch(Exception e){
                   e.printStackTrace();
                   throw e;
    }Remote Interface for TestTransImpl Stateless Session Bean
    public interface TestTransRemote extends Serializable {
         public void testTransactions() throws Exception;
    }TestTransImpl Stateless Session Bean
    @Stateless
    @Remote(TestTransRemote.class)
    public class TestTransImpl implements TestTransRemote {
         private static final long serialVersionUID = 1L;
         @TransactionAttribute(TransactionAttributeType.REQUIRED)
         public void testTransactions() throws Exception{
              java.sql.Connection conn = getConnection();
              java.sql.PreparedStatement ps;
              ps = conn.prepareCall("insert into cust(loc,cust_no) values ('001',20)");
              ps.execute();
              System.out.println("OUTSIDE FUNCTION - Customer 20 created");
              requiredNewFunction();
              ps = conn.prepareCall("Select cust_no from cust where loc = '001' and cust_no = 24");
              java.sql.ResultSet results = ps.executeQuery();
              results.next();     
              System.out.println("OUTSIDE FUNCTION - Customer Read - Cust No = " + results.getLong("cust_no"));
              throw new RuntimeException();
         @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
         private void requiredNewFunction() throws Exception{
              java.sql.Connection conn = getConnection();
              java.sql.PreparedStatement ps;
              ps = conn.prepareCall("Select cust_no from cust where loc = '001' and cust_no = 20");
              java.sql.ResultSet results = ps.executeQuery();
              results.next();     
              System.out.println("INSIDE FUNCTION - Customer Read - Cust No = " + results.getLong("cust_no"));
              ps = conn.prepareCall("insert into cust(loc,cust_no) values ('001',24)");
              ps.execute();
              System.out.println("INSIDE FUNCTION - Customer 24 created");
         private java.sql.Connection getConnection() throws Exception{
              javax.sql.DataSource ds;
              javax.naming.InitialContext ic = new javax.naming.InitialContext();
              ds = (javax.sql.DataSource)ic.lookup("java:MyOracleDS");
              java.sql.Connection conn = ds.getConnection();
              return conn;          
    }Datasource XML File
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
        <local-tx-datasource>
            <jndi-name>MyOracleDS</jndi-name>
            <connection-url>jdbc:oracle:thin:XXXXX(DB Host):1521:XXXXX(DB Sid)</connection-url>
            <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
            <user-name>XXXXX(username)</user-name>
            <password>XXXXX(password)</password>
            <min-pool-size>5</min-pool-size>
            <max-pool-size>100</max-pool-size>
            <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
            <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
            <metadata>
                <type-mapping>Oracle10g</type-mapping>
            </metadata>
        </local-tx-datasource>
    </datasources>Program Output
    08:43:41,093 INFO  [STDOUT] OUTSIDE FUNCTION - Customer 20 created
    08:43:41,125 INFO  [STDOUT] INSIDE FUNCTION - Customer Read - Cust No = 20
    08:43:41,140 INFO  [STDOUT] INSIDE FUNCTION - Customer 24 created
    08:43:41,140 INFO  [STDOUT] OUTSIDE FUNCTION - Customer Read - Cust No = 24

    All ejb invocation behavior, including authorization, container-managed transactions, etc. only applies when the call is made through one of the appropriate ejb client objects. If
    TestTransImpl.testTransactions() directly invokes requiredNewFunction() it's just a normal java
    method call -- the ejb container has no idea it's happening and is not interposing. If you want
    the full ejb invocation behavior when you invoke requiredNewFunction() you'll need to
    make sure requiredNewFunction is part of a business interface, is public, and is invoked through
    the corresponding ejb reference :
    @Resource private SessionContext ctx;
    public void testTransactions() throws Exception {
    TestTransRemote testTrans = ctx.getBusinessObject(TestTransRemote.class);
    testTrans.requiredNewFunction();
    }

  • 11g TP2 ADF Task Flows and Transaction Management

    I'm wondering how ADF Task Flow Transaction Management works vis-a-vis database sessions and using stored procedure calls in an environment with connection pooling. I haven't written the code yet but am looking for a better understanding of how it works before I try.
    Example:
    I create a bounded adf task flow. I set the "transaction" property to "new-transaction" and the "data control scope" to "isolated".
    As the task flow is running, the user clicks buttons that navigate from page to page in the flow. Each button click posts the page back to the app server. On the app server a backing bean method in each page calls a stored procedure in a database package to modify some values in one or more tables in the database. The procedure does not commit these changes.
    Each time a backing bean makes a stored procedure call will it be in the same database session? Or will connection pooling possibly return a different database connection and therefore a different database session?
    If the transaction management feature of the adf task flows guarantees me that I will always be in the same database session then I don't have to write any extra code to make this work. Will it do that or not?

    I don't know if it is documented in the adf documentation currently available for 11g TP2 but what you ask for is a normal transaction management with connection pooling and i can't imagine it is not implemented in ADF BC layer like it is in JPA or other persistence layer.
    A transaction will always be executed in the same session. Normally your web session will stay in the same session even you start more than one transaction. You don't have to write any code to manage the session pooling. It is a good practices to customize it at the persistence layer during installation depending on your infrastructure.
    Take a look into Fusion Developer Guide ... i'm sure you will find some better explanations about this.

  • Petstore cannot finish the transaction

    I have setup a iplanet application server 6.5, and web server 4.1sp9, i want to test the petstore 1.1.2. i according to http://developer.iplanet.com/appserver/samples/jps1.1.2/docs/index.html
    install, all the thing is okay, i can install database table to oracle. I can browser each item, and add user. But when try to do the transaction, i have got the following error:
    erver Error
    unchecked exception thrown by impl
    com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientControllerEJB@3acc67; nested exception is:
    com.sun.j2ee.blueprints.petstore.control.exceptions.GeneralFailureExcept
    ion: Irrecoverable error while createing order :
    javax.transaction.TransactionRolledbackException
    Oops! Your request cannot be completed. The server got the following
    error.
    com.sun.j2ee.blueprints.petstore.control.exceptions.GeneralFailureException: unchecked exception thrown by impl com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientControllerEJB@3acc67; nested exception is: com.sun.j2ee.blueprints.petstore.control.exceptions.GeneralFailureException: Irrecoverable error while createing order : javax.transaction.TransactionRolledbackException at
    com.sun.j2ee.blueprints.petstore.control.web.ShoppingClientControllerWebImpl.handleEventShoppingClientControllerWebImpl.java:142)at com.sun.j2ee.blueprints.petstore.control.web.RequestProcessor.processRequest(RequestProcessor.java:84)at
    com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doProcess(MainServlet.java:111)at com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doGet(MainServlet.java:91)at x.servlet.http.HttpServlet.service HttpServlet.java:740)at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:853)at
    com.netscape.server.servlet.servletrunner.ServletInfo.service(Unknown Source)at
    com.netscape.server.servlet.servletrunner.ServletRunner.execute(Unknown Source)at com.kivasoft.applogic.AppLogic.execute(Unknown Source)
    at com.kivasoft.applogic.AppLogic.execute(Unknown Source)at com.kivasoft.thread.ThreadBasic.run(Native Method)at java.lang.Thread.run(Thread.java:484)

    This is the second post I've seen today about 6.5. Did 6.5 hit subscribenet? I know it went gold, but didn't think that it had actually shipped to customers yet.
    Because of the changes in the transaction manager, I expect that the database setup instructions have changed since the doc you are referencing.
    If you are running a beta version of 6.5, I'd suggest contacting your beta contact. The instructions may not be available yet, and/or there may still be issues.
    If you are running an RTM version of 6.5, I'd suggest looking in the 6.5 docs. The README for JPS probably has instructions for setting up the transaction manageer and the database.
    David

  • Database transaction management in Web services

    Hi,
    I am using Oracle8i and firing some database queries from my web services. I want to do the transaction management for the same i.e. When one of the queries fail, i want to rollback. But when i write my own transaction management, it gives me an error :
    java.sql.SQLException: Cannot call Connection.commit in distributed transaction.Transaction Manager will commit the resource manager when the distributed transaction is committed.
    Can anyone please help me out as to how to perform the database transaction management in web services.
    Thanking in advance.
    Prashant

    Unfortunately to manage transactions over web services there is no viable solution available in market. All implementations come with restrictions e.g. Metro works with only EJBs on Glassfish, JBossTS works on JBoss but not with JAX-WS, Atomikos supports only Axis as of now.
    1. See explanation above.
    2. Yes, it can be but conditions mentioned above are applied :-)
    3. [www.oasis-open.org/committees/ws-tx/|www.oasis-open.org/committees/ws-tx/]
    4. Unfortunately as of now I do not see an easy way to this problem.

  • Java user-defined transaction management not working correctly???

    Hi everyone,
    I have encountered a problem when using Java user-defined transaction management in my session bean. It threw an exception but I could not work out what that means. Could anyone comment on this? Thanks.
    This BrokerBean is a stateless session calling other entities bean to perform some simple operations. There are 2 Cloudscape databases in use. Invoices (EB) use InvoiceDB and all the other EBs use StockDB.
    If I comment out the user-defined transaction management code, then everything works fine. Or if I comment out the Invoices EB code, it is fine as well. It seemed to me that there is something wrong in transaction management when dealing with distributed databases.
    --------------- source code ----------------------
    public void CreateInvoices(int sub_accno) {
    try {
    utx = context.getUserTransaction();
    utx.begin();
    SubAcc subAcc = subAccHome.findByPrimaryKey(new SubAccPK(sub_accno));
    String sub_name = subAcc.getSubName();
    String sub_address = subAcc.getSubAddress();
    Collection c = stockTransHome.findBySubAccno(sub_accno);
    Iterator i = c.iterator();
    ArrayList a = new ArrayList();
    while (i.hasNext()) {
    StockTrans stockTrans = (StockTrans)i.next();
    int trans_id = stockTrans.getTransID();
    String tran_type = stockTrans.getTranType();
    int stock_id = stockTrans.getStockID();
    float price = stockTrans.getPrice();
    Invoices invoices = invoicesHome.create(sub_accno, sub_name, sub_address, trans_id, stock_id, tran_type, price);
    stockTrans = stockTransHome.findByPrimaryKey(new StockTransPK(trans_id));
    stockTrans.remove();
    utx.commit();
    utx = null;
    } catch (Exception e) {
    if (utx != null) {
    try {
    utx.rollback();
    utx = null;
    catch (Exception ex) {}
    // e.printStackTrace();
    throw new EJBException("BrokerBean.CreateInvoices(): " + e.getMessage());
    --------------- exception ----------------------
    Initiating login ...
    Enter Username:
    Enter Password:
    Binding name:`java:comp/env/ejb/BrokerSB`
    EJB test succeed
    Test BuyStock!
    Test BuyStock!
    Test BuyStock!
    Test BuyStock!
    Test SellStock!
    Test SellStock!
    Caught an exception.
    java.rmi.ServerException: RemoteException occurred in server thread; nested exce
    ption is:
    java.rmi.RemoteException: BrokerBean.CreateInvoices(): CORBA TRANSACTION
    _ROLLEDBACK 9998 Maybe; nested exception is:
    org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806
    completed: Maybe
    at com.sun.corba.ee.internal.iiop.ShutdownUtilDelegate.mapSystemExceptio
    n(ShutdownUtilDelegate.java:64)
    at javax.rmi.CORBA.Util.mapSystemException(Util.java:65)
    at BrokerStub.CreateInvoices(Unknown Source)
    at Client.main(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:22
    9)
    at com.sun.enterprise.appclient.Main.main(Main.java:155)
    Caused by: java.rmi.RemoteException: BrokerBean.CreateInvoices(): CORBA TRANSACT
    ION_ROLLEDBACK 9998 Maybe; nested exception is:
    org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806
    completed: Maybe
    at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.ja
    va:389)
    at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:43
    1)
    at BrokerBean_EJBObjectImpl.CreateInvoices(BrokerBean_EJBObjectImpl.java
    :265)
    at BrokerBeanEJBObjectImpl_Tie._invoke(Unknown Source)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatchToServant(Ge
    nericPOAServerSC.java:520)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.internalDispatch(Gen
    ericPOAServerSC.java:210)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatch(GenericPOAS
    erverSC.java:112)
    at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:255)
    at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProces
    sor.java:84)
    at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadP
    ool.java:99)

    Three things:
    first, maybe you should think of putting ut.begin() just before the invoicesHome.create() method and ut.commit() just after the stockTrans.remove() method.It wont solve the current problem but will help in performance once the problem is solved.
    second, your utx.commit() is outside the try block. how come the code is compiling then??
    third, try doing a SOP call before and after invoicesHome.create() method and see where the problem actually lies.
    let us know...
    Hi SteveW2,
    Thanks for being so helpful. Here are my replies:
    Can I just ask why you're not using containermanaged
    transactions?The reason why I didn't use container managed
    transactions is because I don't really know how to do
    that. I am more familiar with this user-defined
    transaction handling.
    I have attempted to implement the same method in an
    entity bean and just let the container manage the
    rollback itself. The same exception was thrown when
    running the client.
    Also, the transaction behaviour is likely to relateto
    the app server youre using - which is it?What do you mean by the app server? I am using J2EE
    1.3.1 if that is what you meant.
    Finally, if your code has a problem rolling back,and
    throws an exception, you discard your exception
    thereby losing useful information.I have tried to print the exception stack as well, but
    it is the same as just printing the general
    exception.
    This problem is very strange cause if I comment out
    the transaction management thing, then everything
    works fine. Or if I am only working with 1 single
    database, with this user-defined transaction handling,
    everything works fine as well.
    Here is the error log from J2EE server if you are
    interested.
    ------------ error log ---------------
    javax.ejb.TransactionRolledbackLocalException:
    Exception thrown from bean; nested exception is:
    javax.ejb.EJBException: ejbCreate: Connection
    previously closed, open another Connection
    javax.ejb.EJBException: ejbCreate: Connection
    previously closed, open another Connection
         at InvoicesBean.ejbCreate(Unknown Source)
    at
    InvoicesBean_RemoteHomeImpl.create(InvoicesBean_Remote
    omeImpl.java:31)
         at InvoicesHomeStub.create(Unknown Source)
         at BrokerBean.CreateInvoices(Unknown Source)
    at
    BrokerBean_EJBObjectImpl.CreateInvoices(BrokerBean_EJB
    bjectImpl.java:261)
    at BrokerBeanEJBObjectImpl_Tie._invoke(Unknown
    Source)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispa
    chToServant(GenericPOAServerSC.java:520)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.inter
    alDispatch(GenericPOAServerSC.java:210)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispa
    ch(GenericPOAServerSC.java:112)
    at
    com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:25
    at
    com.sun.corba.ee.internal.iiop.RequestProcessor.proces
    (RequestProcessor.java:84)
    at
    com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThr
    ad.run(ThreadPool.java:99)
    javax.ejb.TransactionRolledbackLocalException:
    Exception thrown from bean; nested exception is:
    javax.ejb.EJBException: ejbCreate: Connection
    previously closed, open another Connection
    at
    com.sun.ejb.containers.BaseContainer.checkExceptionCli
    ntTx(BaseContainer.java:1434)
    at
    com.sun.ejb.containers.BaseContainer.postInvokeTx(Base
    ontainer.java:1294)
    at
    com.sun.ejb.containers.BaseContainer.postInvoke(BaseCo
    tainer.java:403)
    at
    InvoicesBean_RemoteHomeImpl.create(InvoicesBean_Remote
    omeImpl.java:37)
         at InvoicesHomeStub.create(Unknown Source)
         at BrokerBean.CreateInvoices(Unknown Source)
    at
    BrokerBean_EJBObjectImpl.CreateInvoices(BrokerBean_EJB
    bjectImpl.java:261)
    at BrokerBeanEJBObjectImpl_Tie._invoke(Unknown
    Source)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispa
    chToServant(GenericPOAServerSC.java:520)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.inter
    alDispatch(GenericPOAServerSC.java:210)
    at
    com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispa
    ch(GenericPOAServerSC.java:112)
    at
    com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:25
    at
    com.sun.corba.ee.internal.iiop.RequestProcessor.proces
    (RequestProcessor.java:84)
    at
    com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThr
    ad.run(ThreadPool.java:99)
    What is "connection previously closed, open another
    connection"? This might be the cause of the
    exception.
    I'll keep trying till I solve the problem.
    Thanks,
    Sasuke

  • JTA transaction is not present or the transaction is not in active state

    Hi,
    I am trying to execute an asynchronous bpel process. the bpel process has 5 OSB calls and is taking approximately 100 seconds for completion. The OSB calls in the BPEL are taking 90 seconds for completion. In the end of the BPEL process, after completion I get the following error:
    [2010/07/22 01:56:44] BPEL process instance "1220007" completed
    [2010/07/22 01:56:44] There is a system exception while performing the BPEL instance, the reason is "JTA transaction is not present or the transaction is not in active state. The current JTA transaction is not present or it is not in active state when processing activity or instance "1,220,007". The reason is The execution of this instance "1220007" for process "BPELProcess1" is supposed to be in a jta transaction, but the transaction is not present or in active state, please turn on the application server transaction debug logs to get more information.. Please consult your administrator regarding this error. ". Please check the error log file for more infromation. Please try to use bpel fault handlers to catch the faults in your bpel process. If this is a system exception, please report this to your system administrator. Administrator could perform manual recovery of the instance from last non-idempotent activity or dehydration point.
    We do not want to increase the transaction-timeout properties in the server in the Transaction-manager.xml or in the orion-ejb-jar.xml since we have other projects with synchronous processes running in the same server.
    Can anybody please suggest a workaround to overcome this issue apart from increasing the transaction-timeout?

    Hi 783703,
    As Sridhar suggested for your problem you have to set transaction-time out in j2ee/home/config/transaction-manager.xml.
    If you use Idempotent as false for your partnerlinks, BPEL PM will store the status till that invoke(Proof that this invoke gets executed).
    So better to go for increasing the time instead of going for idempotent as it has some side effects.
    And coming to dehydration ....Ideally performance will be more if there are no much dehydration poitns in our process. But for some scenarios it is better to have dehydration(ex: we can know the status of the process...etc)
    Dehydration store will not get cleared after completion of the process. Here dehydration means ....it will store these dtails in tables(like Cube_instance,cube_scope...etc).
    Regards
    PavanKumar.M

  • ADF Taskflow Transaction Management Pattern

    We have a project that consumes public common taskflows from a shared library.
    How should we define the transaction management of these public common taskflows?
    Who is respondsible for the transaction management?
    I am able to understand the various transaction handling mechanisms suppported by ADF taskflow from the following link in the Developer's guide:-
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/taskflows_complex.htm#BABICCGC
    But I would like to understand the right pattern for implementating the above.
    Please provide your inputs/links on the same.
    Thanks in advance,
    Navaneeth

    There is no "right" way to do it. If the task flows are standalone, independent transactions that operate independently of any master task flows, then you can have them manage their own transactions; if you want them to join any existing transaction, you would do that. Without an example and without understanding the purpose for which you are building the common taskflows, it's pretty impossible to say much of anything.
    John

  • Transaction Management - OIM API

    We wanted to know how to handle transaction from OIMClient, when we make OIM API call.
    eg:
    from a java client, we invoke create organization and provision resource to that organization.
    i.e we end up calling two OIM api calls
    1)
        organizationManager.create(organizationObj);
    2)
    tcOrganizationOperationsIntf.provisionObject(orgKey,resourceKey);
    Now, if 2nd one fails, then transaction should be rolled back and organization create should be rolled back. we wanted single unit of work to be achieved.
    how can this be achieved?
    how do we control transaction from OIMClient/API?
    public String createOrganization(OrganizationVO ovo) {
      String result = "";
      OrganizationManager omgr = null; // OIMClient API
      Organization org = null; // OIMClient API
      try { 
      omgr=ULMServiceLocator.getInstance().getOrganizationManager();
      org = new Organization();
      org.setAttribute("Organization Name", ovo.getOrgName());
      org.setAttribute("Organization Customer Type", ovo.getOrgType());
      result = omgr.create(org);
      tcUtilityFactory ioutilityFactory = ULMServiceLocator.getInstance().getcUtilityFactory();
      //TODO
      tcOrganizationOperationsIntf utilityFactory1 = (tcOrganizationOperationsIntf) ioutilityFactory
      .getUtility("Thor.API.Operations.tcOrganizationOperationsIntf");
      long l1 = utilityFactory1.provisionObject(Long.parseLong(result),
      123l);
      } catch (oracle.jrf.UnknownPlatformException e) {
      e.printStackTrace();
      } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return result;

    Hi Abhay,
    <b>If there is another way to add a record to Main table and Lookup/Qualified/Hierarchy table simultaneously then there is no need of Transaction.</b>
    There are no direct methods currently(as of MDM 5.5SP3) available in MDM API.
    You have to build your own logic to implement.
    Regarding the Transaction management, I guess you are talking aboout two phase commit scenarios. I would say you can achieve this using EJB's in which u write the business logic (In this case the MDM API code).
    For Example:
    Adding a record to Main table,
    Let say 2 fields
    1. Free text field.
    Its straight forward method, use A2iFiled object and assign some value to it.
    2. Lookup field.
    For this.
    First get the Record id for the value, which you are trying to add, from the lookup table.
    If the lookup table does not find the value in the table, it return zero or some negative value(which I am not sure).
    Based on the return value you can add the value into the lookup table and then into the main table.
    Just putting a sample scenario. Hope this helps.
    Thanks and regards
    Subbu

  • Running TX on Transaction Manager

    Hi,
    I created a "transaction chain" done this way:
    [PROCESSING RULE] P1 --> [TRANSACTION] T1 --> [TRANSACTION] T2 --> [TRANSACTION] T3
    T1 calls synchronously T2, which calls synchronously T3 (I tried both with Transaction Call/Dynamic Transaction Call action)
    When I activate the full execution (generating the event linked to processing rule, practically getting an IDOC Message), all the TXs are executed ('cause I see the effects), but Transaction Manager is showing T2 and T3 still running, instead of T1 Successfully executed.
    No way to stop T2/T3 pressing the stop button from the Transaction Manager (even if I really think TXs aren't really executing, but simply system didn't notify they are already ended).
    No way to look logs of T2/T3 from the Transaction Manager (I think 'cause running), that's why I added some Log Event action inside T1 and T2, visible from T1 logs from the Transaction Manager.
    [WARN] [T2] Could not create parameter value for: IDOCXml Exception: [null]
    [WARN] [T2] [UserEvent] : Hello!
    [WARN] [Dynamic_Transaction_Call_0] Skipping execution of output links due to action failure.
    [WARN] [UserEvent] : false
    Line 2 is the proof T2 is executed, 'cause I put Log Event action at the end of T2
    Line 3 is something coming from T2 call (done by T1)
    Line 4 is the printout of the value of Success property of T2 call (done by T1)
    it seems for some reason, T2 call action fails, so the output links of the action aren't written as told by line 3
    did you ever experienc something like this?
    due to synchronous calling, do I have to setup something in T2/T3 to have successfull action call in T1 ?
    the funny thing is that if I execute T1 directly (without the Processing Rule), everything it seems to be ok!
    tnx a lot

    Was I right saying that T2/T3 aren't really running, but simply shown in the Transaction Manager?
    Do you know if the fix in later version it has been done in Transaction Manager, the transaction call action or whatelse?
    tnx a lot for quick answer

Maybe you are looking for

  • Is there any standard report which give all information about purchase orde

    hi is there any standard report which give all information about purchase order. i need following information from Purchase Order. Vendor No, vendorname, PO No, basic , Excise , insurance , Frieght. thanks .

  • Audio distorted after Lumia 800 vibrates while tak...

    If I'm recording a video and an SMS or other notification comes in that causes the phone to vibrate, the rest of the audio recorded after the vibration will sound extremely distorted/broken. Is this a known issue with all Lumia 800s or do I have a fa

  • Identified externally

    hi my OS is windows 2000 professional addition Oracle server version is 9.0.1 i created an operating system user "guest" then set OS_AUTHENT_PREFIX="" then i restarted the satabase then i created a user as follows "CREATE USER GUEST IDENTIFIED EXTERN

  • Bulk Uploading to Infotype 0015

    Hi All,    I need to upload bulk data from file to infotype 0015 while uploading standard infotype validations also need to be performed as i know FM HR_INFOTYPE_OPERATION can be used to upload but it needs to be called for each records so it may res

  • EWA report setting for SM7

    Hi Guru, I need your extreme help for configuring EWA report in SM7 system. When i am trying to execute SDCCN tcode for gathering data in satellite system, job is not creating. Can anybody help me into this? Regards Pranav