ORA-00603 by using transactions. Unable to enlist in distributed transactio

I have a test application built with odp.net which does batches of inserts. The program might call a method that inserts 1000 rows ten times. I want all of these to be in one transaction so if I want to rollback I can restart the whole procedure. So I started a transaction and enlisted each connection to use it.
This seems to work OK for a while, but maybe after 5-10 calls to my batch-insert method I receive an ORA-00603 exception. In some rare cases I also get "Unable to enlist connection in distributed transaction."
Can someone help me or shed some light in how to get this to work?
From alert.log:
Incident details in: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
Errors in file d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [ktcirs:hds], [0x01AF68078], [0x006F10BF0], [0x021728078], [], [], [], [], [], [], [], []I tried running tkprof on the trc file but it didn't do anything. The generated file only looks like this:
TKPROF: Release 11.1.0.7.0 - Production on On Jul 21 11:40:37 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
Trace file: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
Sort options: default
count    = number of times OCI procedure was executed
cpu      = cpu time in seconds executing
elapsed  = elapsed time in seconds executing
disk     = number of physical reads of buffers from disk
query    = number of buffers gotten for consistent read
current  = number of buffers gotten in current mode (usually for update)
rows     = number of rows processed by the fetch or execute call
Trace file: d:\app\exkatr\diag\rdbms\testdb\testdb\incident\incdir_63768\testdb_ora_8848_i63768.trc
Trace file compatibility: 10.01.00
Sort options: default
       0  session in tracefile.
       0  user  SQL statements in trace file.
       0  internal SQL statements in trace file.
       0  SQL statements in trace file.
       0  unique SQL statements in trace file.
    7741  lines in trace file.
       0  elapsed seconds in trace file.

Have a look at Bug 8539335 (or 7510712)

Similar Messages

  • SQL Anywhere 12 (12.0.1.4155) using EF : Unable to enlist transaction; DTC may be down

    What may be causing this error??
    Sometimes the transactions runs fine, and other times I get this error message.
    Database.SqlQuery<int>("select dba.getnextid()");
    NativeError: -803
    Message: Unable to enlist transaction; DTC may be down
    Source: SQL Anywhere .NET Data Provider
    StackTrace:
    at iAnywhere.Data.SQLAnywhere.SAException.CheckException(Int32 idEx)
       at iAnywhere.Data.SQLAnywhere.DurableResourceManager.Enlist(SAInternalConnection conn, Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAInternalConnection.Enlist(Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAConnection._EnlistTransaction(Transaction tran)
       at iAnywhere.Data.SQLAnywhere.SAConnection.EnlistTransaction(Transaction transaction)
       at System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction)
    Can't seem to figure out how to resolve this issue, nor what's causing it.

    Enabling the MSDTC service solved it.  (Distributed Transaction Coordinator)

  • Linked server "LK_SERVER_NAME" was unable to begin a distributed transactio

    Hi,
    I have two DBs namely MS SQL 2008 and ORACLE 11g. I need to transfer data from MS SQL to ORACLE using the linked server. I did the following,
    I have a stored procedure in ORACLE as call_linked_oracle_procedure which needs to be called from the MS SQL server to transfer the data.
    So the steps I did to achieve this is provided as a sample as follows,
    /* Creating a sample table */
    create table source_tab3
    id numeric,
    name varchar(MAX)
    GO
    /* Creating a insert trigger for the sample table which calls the oracle through the linked server*/
    IF OBJECT_ID ('dbo.source_tab3Trigger','TR') IS NOT NULL
    DROP TRIGGER dbo.source_tab3Trigger;
    GO
    CREATE TRIGGER source_tab3Trigger ON source_tab3
    AFTER INSERT
    AS
    DECLARE @output varchar(600)
    EXEC [dbo].[call_linked_oracle_procedure] @parameter1 =N'value1', @parameter2 =N'value2'
    select @output
    GO
    /* Insert a sample data */
    insert into source_tab3 (id,name) (1,'vijai');
    GO
    Now when I insert the data, It give the following error
    OLE DB provider "OraOLEDB.Oracle" for linked server "LK_SERVER_NAME" returned message "New transaction cannot enlist in the specified transaction coordinator. ".
    Msg 7391, Level 16, State 2, Procedure source_tab3Trigger, Line 11
    The operation could not be performed because OLE DB provider "OraOLEDB.Oracle" for linked server "LK_ORACLE" was unable to begin a distributed transaction.
    The things I did to solve this were,
    1. Enabled the MSDTC services (Distributed Transaction Coordinator is started ).
    2. Enabled the Network DTC access from the control panel, component services to 'Allow InBound' etc.
    3. My 'OracleMTSRecoveryService' is running in my services list.
    Also, I have done all these where my machine where MS SQL 2008 is installed. Dono what needs to be done in the ORACLE server.
    Also to note, that I am able to query the tables/procedure via linked server individually, but not able to do that within the triggers.
    Any tip is much appreciated.
    regards,
    Vijai

    Hi,
    I made few changes in the SQL trigger code, and it seems to work. But not sure if its the right code. Any way I will leave my findings here, so others might get a tip for their tries,
    If anyone know who my code is working, please leave a comment,
    IF OBJECT_ID ('dbo.source_tab3Trigger','TR') IS NOT NULL
    DROP TRIGGER dbo.source_tab3Trigger;
    GO
    CREATE TRIGGER source_tab3Trigger ON source_tab3
    AFTER INSERT, UPDATE
    AS
    commit transaction;
    set implicit_transactions on
    DECLARE @output varchar(600)
    DECLARE @p_1 varchar(600) = 'EASYLINK51_EBS_MECH'
    DECLARE @p_2 varchar(600) = 'standard'
    DECLARE @p_3 varchar(600) = 'EBS'
    EXEC [dbo].[call_linked_sys_param] @p_1 =N'EASYLINK51_EBS_MECH', @p_2 =N'standard', @p_3 =N'EBS', @output = @output OUTPUT
    select @output
    set implicit_transactions off
    begin transaction;
    GO
    regards,
    Vijai

  • Unable to enlist in a distributed transaction (Windows7, Oracle 11G R1)

    Hi,
    I have a .Net application running on Windows 7 x64 using VisualStudio2008 and Oracle 11G R1 32bit client
    In it I call a webservice calling another webservice, this requires to use oramts that interfaces with Microsoft DTC. However I'm getting the following error when calling the service method:
    "Unable to enlist in a distributed transaction"
    I have checked the following:
    - Ora MTS is installed
    - DTC is running, the security settings allow AX transactions (in fact I just allowed everything)
    - Network services have the permission to access oracle dlls
    - The registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI contains the following: "OracleXaLib"="xa80.dll" "OracleSqlLib"="SQLLib80.dll" "OracleOciLib"="oci.dll" (not sure if this is right)
    What is it I'm doing wrong ? Does this version of Oracle work correctly on W7 ?
    By the way it works fine on Windows XP !
    I've spend quite some time trying to find a resolution..
    Thanks!

    I think I answered my own question
    It seems that MSDTC is not supported by Oracle 11G R1 on Windows x64 !
    All Oracle Database components are supported on Windows x64 with the following exceptions:
    •Oracle Services for Microsoft Transaction Server are not supported on Windows Vista. As a result, all Oracle Windows data access drivers on Windows Vista that use Oracle Services for Microsoft Transaction Server to enlist in Microsoft Distributed Transaction Coordinator (MSDTC) coordinated transactions cannot participate in those coordinated transactions. These data access drivers include Oracle Data Provider for .NET, Oracle Provider for OLE DB, Oracle Objects for OLE, and ODBC. Check OracleMetaLink for up to date information on Oracle Services for Microsoft Transaction Server certification with Windows Vista.
    http://download.oracle.com/docs/cd/B28359_01/install.111/b32006/reqs.htm#CHDCEFIJ
    Edited by: 845528 on 18 mars 2011 05:05

  • Unable to use transactions with System.Data.OracleClient data provider

    I am using VS2008, System.Data.OracleClient, Oracle 10g, and ODAC 10.2.0.20. I haven't been able to get transactions to work. When I use 'connection.BeginTransaction()', the rollback doesn't work. When I use TransactionScope, the output parameter is always DBNull. Any ideas/comments?
    Here's the sample code:
    // #define ENABLE_TRANSACTION // failure is 'rollback not working'
    #define ENABLE_TRANSACTION_SCOPE // failure is 'no output parameter value'
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Text;
    using System.Data.OracleClient;
    #if ENABLE_TRANSACTION_SCOPE
    using System.Transactions;
    #endif
    namespace TestOracleTransaction
    class Program
    static void Main(string[] args)
    #if ENABLE_TRANSACTION_SCOPE
    using (TransactionScope scope = new TransactionScope())
    #endif
    string connectionString = "Data Source=ORADEV;User ID=user;Password=pwd";
    using (OracleConnection connection = new OracleConnection(connectionString))
    try
    connection.Open();
    #if ENABLE_TRANSACTION
    using (OracleTransaction transaction = connection.BeginTransaction())
    #endif
    try
    #if ENABLE_TRANSACTION_SCOPE
    if (Transaction.Current == null)
    throw new ArgumentException("no ambient transaction found for OracleClient");
    #endif
    OracleCommand command = connection.CreateCommand();
    #if ENABLE_TRANSACTION
    command.Transaction = transaction;
    #endif
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "TIS.P_TIS_GATEWAY_INFO_ADD";
    OracleParameter param = command.CreateParameter();
    param.ParameterName = "p_gateway_id";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.Int64;
    param.Value = 18;
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_info_id";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.Int64;
    param.Value = 79;
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_user";
    param.Direction = ParameterDirection.Input;
    param.DbType = DbType.String;
    param.Value = "spms";
    command.Parameters.Add(param);
    param = command.CreateParameter();
    param.ParameterName = "p_gateway_info_id";
    param.Direction = ParameterDirection.Output;
    param.DbType = DbType.Int64;
    param.Size = sizeof(Int64);
    command.Parameters.Add(param);
    int count = command.ExecuteNonQuery();
    object value = command.Parameters["p_gateway_info_id"].Value;
    long id = (value == DBNull.Value) ? -1 : Convert.ToInt64(value);
    if (id < 0)
    // FAILURE - no output parameter value when TransactionScope enabled
    throw new ArgumentException("no return value");
    #if ENABLE_TRANSACTION
    // FAILURE - rollback doesn't work when Transaction enabled
    transaction.Rollback();
    #endif
    #if ENABLE_TRANSACTION_SCOPE
    scope.Complete();
    #endif
    catch (Exception ex)
    System.Console.WriteLine("ERROR: " + ex.Message);
    #if ENABLE_TRANSACTION
    transaction.Rollback();
    #endif
    finally
    if (connection.State == ConnectionState.Open)
    connection.Close();
    }

    Hi,
    First, this is not the place for questions with System.Data.OracleClient, this is the Oracle Data Provider for .NET forum. Having said that I went ahead and tested your code with some slight modifications because you did not provide the stored procedure information. I am assuming your stored procedure is doing some sort of DML since you are using transactions and attempting to commit and rollback.
    I tested the following with both Transaction scope and a local transaction object and it worked fine with System.Data.OracleClient. I provided the create table and stored procedure I used.
    Observations
    ========
    When using transaction scope, a distributed transactions was executed and the data was inserted and returned in the output variable.
    From console
    p1 value is Hello World
    From SQL Plus
    SQL> select * from foo;
    C1
    Hello World
    When using a local transaction, the DML was not inserted when calling rollback and when I changed it to commit, the row was inserted successfully.
    Maybe you can test the simple foo example below to see if it works for you. Maybe there is something going on in your SP that is causing your specific observations.
    The code I posted at this point is using local transaction and calling transaction.commit(), rollback is commented out. But I tested all scenarios and they worked as expected.
    HTH
    Jenny
    #define ENABLE_TRANSACTION // failure is 'rollback not working'
    //#define ENABLE_TRANSACTION_SCOPE // failure is 'no output parameter value'
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Text;
    using System.Data.OracleClient;
    #if ENABLE_TRANSACTION_SCOPE
    using System.Transactions;
    #endif
    create table foo (c1 varchar2(50));
    create or replace procedure getstr (p1 out varchar2) as
    begin
    insert into foo(c1) values ('Hello World') returning c1 into p1;
    end;
    namespace TestOracleTransaction
    class Program
    static void Main(string[] args)
    #if ENABLE_TRANSACTION_SCOPE
    using (TransactionScope scope = new TransactionScope())
    #endif
    string connectionString = "Data Source=orcl;User ID=scott;Password=tiger";
    using (OracleConnection connection = new OracleConnection(connectionString))
    try
    connection.Open();
    #if ENABLE_TRANSACTION
    using (OracleTransaction transaction = connection.BeginTransaction())
    #endif
    try
    #if ENABLE_TRANSACTION_SCOPE
    if (Transaction.Current == null)
    throw new ArgumentException("no ambient transaction found for OracleClient");
    #endif
    OracleCommand command = connection.CreateCommand();
    #if ENABLE_TRANSACTION
    command.Transaction = transaction;
    #endif
    command.CommandType = CommandType.StoredProcedure;
    command.CommandText = "SCOTT.GETSTR";
    OracleParameter param = command.CreateParameter();
    param.ParameterName = "p1";
    param.Direction = ParameterDirection.Output;
    param.DbType = DbType.AnsiString;
    param.Size = 20;
    command.Parameters.Add(param);
    int count = command.ExecuteNonQuery();
    object value = command.Parameters["p1"].Value;
    Console.WriteLine("p1 value is {0}",value.ToString());
    #if ENABLE_TRANSACTION
    // FAILURE - rollback doesn't work when Transaction enabled
    transaction.Commit();
    //transaction.Rollback();
    #endif
    #if ENABLE_TRANSACTION_SCOPE
    scope.Complete();
    #endif
    catch (Exception ex)
    System.Console.WriteLine("ERROR: " + ex.Message);
    #if ENABLE_TRANSACTION
    transaction.Rollback();
    #endif
    finally
    if (connection.State == ConnectionState.Open)
    connection.Close();
    }

  • Unable to create outbound delivery using transaction VL10B

    Hello,
    When I am trying to create an outbound delivery from refrencing a Purchase Order using transaction VL10B,
    the item is not getting selected (In the VL10B , I entered the PO number and executed but in the next screen no items are displayed ).
    Please let me know the reasons for this.
    Please Note : I tried to change the PO delivery date ,but still the above problem persist.
    Thanks & Regards,
    Sumanta Deb

    Hello Sumanta
    Please check at item level in PO under 'delivery schedule' tab, what is the material staging date. If this date is in the future, VL10B will not show any line item in due list. VL10B will only show due list from today and backdated deliveries.
    Let me know if u have any more issue related to this
    Amol

  • ORA-00603 after a commit through a dblink

    Dear Sirs:
    I am working with a 9.2.0.4.0 oracle database, with a dblink (named SIO_TEST) to another 8.1.7.0.0 oracle database. I want to insert a record in a table of the 8.1.7 DB.
    Using SQL+, and connected to the 9.2 DB, i can issue a SQL command like:
    INSERT INTO PP02_PREST_PS@SIO_TEST
    (CP02_PROGRESSIVO,CP02_C_REPARTO,
    CP02_PROGR_CERTIF,
    CP02_C_TIPO_PRESTA,
    CP02_ESITO,
    C_USR,
    DT_AGG,
    CP02_C_SALA_PS,
    CP02_C_REPARTO_PRESTA)
    VALUES (SEQ_PROGR_PREST_PS.NEXTVAL@SIO_TEST,
    'PSGEN',
    19990057207,
    'P130',
    NULL, -- ESITO
    'CARISSIM', -- max 8 caratteri
    TO_CHAR(SYSDATE, 'YYYY-MM-DD-HH.MI.SS'),
    'PSE',
    'PSGEN');
    and then COMMIT; i have NO PROBLEM AT ALL.
    I wrote a simple PL/SQL procedure in the 9.2 DB, with the same statement inside. It works fine: I can commit both into the procedure and immediately following its execution, with NO PROBLEM AT ALL.
    I tried to execute the same SQL using a trigger, in two different fashions:
    a) putting the statement it in a VARCHAR2 string and then issuing an EXECUTE IMMEDIATE command
    b) executing a direct INSERT INTO with all the needed parameters.
    The trigger works fine, but does not commit. The first COMMIT command issued after the trigger has run, terminates the session abruptly with ORA-00603 error.
    The data are actually committed in the target table, and the new record is generated in the 8.1.7 schema.
    I have trace files available, but they dont seem of any help.
    Any suggestion?
    Thank You very much

    Dear Sirs:
    I'm still eager to know what has caused the problem addressed in this topic, but I would like to let You know the solution I used. Apparently, the problem is about committing - as long as I couldn't commit from within the trigger, any commit issued subsequently to the trigger execution caused a session termination by fatal error.
    Fortunately, I can afford the inability to rollback the insert performed by the trigger, so I simply added a PRAGMA AUTONOMOUS TRANSACTION in the trigger, so that I could commit, and added a COMMIT statement within the trigger.
    The ORA-00603 error disappeared.
    Thank You for Your attention - and please let me know what may have caused the ORA-00603 problem

  • Use transacted session in MDB

              Hi,
              If I use transacted session in MDB with container managed transaction, dose the
              weblogic ignore the transacted setting or start in it's own transaction. I looked
              the JMS Tutorial from Sun, the J2EE server just ignore the transacted setting,
              treated it as non-transacted session.
              Thanks
              

              Thanks, Greg. I created another XAQCF in MQ JMSADMIN, but still did not help. The
              strange part is when this exception happens, in the Event Viewer there is a Message:
              An internal Websphere MQ Error has occurred'. In the Trace Log of MQ, the Major
              Error Code reported is arcE_XAER_PROTO.
              Has anyone encountered this error? The same code works fine when enlist an XAQCF
              defined in Weblogic and PUT into a Weblogic JMS Queue instead within the same
              XA Transaction. I am attaching the stack trace to this message, just in case,
              someone has useful pointers to help me. May be this is MQ Specific though I made
              sure I have the latest FixPack for MQ installed.
              Thanks,
              Sridhar
              "Greg Brail" <[email protected]> wrote:
              >Yeah. This comes up from time to time. MQ is upset because it wants to
              >be
              >enlisted in the JTA transaction, but JTA is not enlisting it because
              >it
              >thinks it's already enlisted. It thinks it's already enlisted because
              >the
              >same MQ connection factory was used for the MDB input queue, even though
              >it's a different JMS connection and session.
              >
              >You can avoid this by creating another "XAQCF" object in the MQ JNDI
              >space
              >and giving it a different name. If you do that -- essentially use different
              >connection factories for the MDB's input and output queues -- then this
              >will
              >work.
              >
              >Also, the transaction enlistement code in 8.1 that supports the
              >"resource-ref" feature avoids this problem.
              >
              > greg
              >
              >"Sridhar Krishnaswamy" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> Hi Greg:
              >> I assume you meant to getXAResource() from an Object of type
              >XAQueueSession. Here
              >> is the code I tried within the onMessage() method of the MDB:
              >>
              >> XAQueueConnectionFactory factory = (XAQueueConnectionFactory)
              >ctx.lookup("XAQCF")
              >> ;
              >> XAConnection connection = factory.createXAQueueConnection() ;
              >>
              >> XAQueueSession mqSession = connection.createXAQueueSession() ;
              >> XAResource mqResource = mqSession.getXAResource() ;
              >> Transaction tran = TxHelper.getTransaction() ;
              >> tran.enlist(mqResource) ;
              >>
              >> //Then I was going to get the QueueSession Object from XAQueueSession,
              >obtain
              >> the Queue
              >> //Object from JNDI, create the Sender
              >> //and call the send. But I commented out these calls. Even then, after
              >the
              >onMessage
              >> Method
              >> // completes, I get the following error:
              >>
              >> javax.transaction.SystemException: start() failed on resource
              >'com.ibm.mq.MQXAResource':
              >> XAER_PROT : Routine was invoked in an improper context
              >> javax.transaction.xa.XAException: XA Operation failed. see errorcode
              >(which I
              >> am assuming is XAER_PROT).
              >>
              >> Any idea, what I am doing wrong?
              >>
              >>
              >>
              >>
              >> "Greg Brail" <[email protected]> wrote:
              >> >In 7.0, you can do your MQ "put" inside the same JTA transaction that
              >> >was
              >> >used to receive the message for the MDB, but you have to do the
              >transaction
              >> >enlistment yourself. Basically, you have to use the class
              >> >weblogic.transaction.TxHelper class to get a reference to the current
              >> >transaction, then call "enlistResource" on the transaction using the
              >> >JTA
              >> >"XAResource" that you get from the MQ JMS "Session" object. I'm sure
              >> >we've
              >> >posted the code in this newsgroup before, but I don't know where,
              >so
              >> >it
              >> >would look something like:
              >> >
              >> >// First, get the MQ QueueSession object you're going to use to send
              >> >the
              >> >message
              >> >QueueSession mqSession = mqConnection.createQueueSession(false, 0);
              >> >XAResource mqResource = mqSession.getXAResource();
              >> >weblogic.transaction.Transaction tran =
              >> >weblogic.transaction.TxHelper.getTransaction();
              >> >tran.enlistResource(mqResource);
              >> >// Now send your message
              >> >
              >> >In 8.1, this will still work, but it's not necessary. If you register
              >> >the MQ
              >> >XA connection factory as a "resource-reference" in your EJB deployment
              >> >descriptors and look it up using java:comp/env the way the documentation
              >> >link way below describes, then this transaction enlistment happens
              >> >automatically. This only happens when you use the "resource-reference"
              >> >feature (which means that old code will still work if it does NOT
              >use
              >> >this
              >> >feature), and it's only in 8.1.
              >> >
              >> > greg
              >> >
              >> >"Sridhar Krishnaswamy" <[email protected]> wrote in
              >message
              >> >news:[email protected]...
              >> >>
              >> >> Hi Greg:
              >> >> Is the Statement
              >> >>
              >> >> 'But in this case, you don't get a "non-transactional" session,
              >but
              >> >actually a
              >> >> session that participates in the current JTA transaction for the
              >thread
              >> >where
              >> >> your EJB is running'
              >> >>
              >> >> also true in the case of an MDB running in Weblogic 7.0 (Container
              >> >Managed
              >> >Transactions)
              >> >> driven by an XAQCF and a Foreign JMS Provider such as MQSeries?
              >In
              >> >other
              >> >words,
              >> >> if I want the MDB to PUT the Message into an MQSeries Queue, can
              >the
              >> >PUT
              >> >be invoked
              >> >> under the Context of the Same XA Transaction? My understanding is
              >that
              >> >WebLogic
              >> >> 7.0 doesn't support send
              >> >> messages out of an MDB within the same XA transaction if the MDB
              >is
              >> >> XA-driven by a foreign JMS provider. Please let me know if this
              >is
              >> >false.
              >> >If true,
              >> >> does Weblogic 8.1 also have this restriction?
              >> >>
              >> >> Thanks,
              >> >> Sridhar Krishnaswamy.
              >> >>
              >> >> "Greg Brail" <[email protected]> wrote:
              >> >> >What do you mean by "use transacted session in MDB?" Are you creating
              >> >> >a new
              >> >> >session inside your MDB, or do you mean something else?
              >> >> >
              >> >> >The only Sun thing I can think of is in code that looks like this:
              >> >> >
              >> >> >InitialContext ctx = new InitialContext();
              >> >> >QueueConnectionFactory qcf = ctx.lookup("java:comp/env/jms/QCF");
              >> >> >Queue queue = ctx.lookup("java:comp/env/jms/Queue");
              >> >> >QueueConnection connection = qcf.createQueueConnection();
              >> >> >// Create "transacted" session:
              >> >> >QueueSession session = connection.createQueueSession(true, 0);
              >> >> >QueueSender sender = session.createQueueSender(queue);
              >> >> >TextMessage message = session.createTextMessage("Hello, world");
              >> >> >sender.send(message);
              >> >> >connection.close();
              >> >> >
              >> >> >If you do this, and exactly this, inside an EJB, including the
              >use
              >> >of
              >> >> >"java:comp/env/jms", in WebLogic Server 8.1, then we do indeed
              >ignore
              >> >> >the
              >> >> >"transacted" flag when you create the session, just like Sun says
              >> >we
              >> >> >should
              >> >> >in the EJB and J2EE specs. But in this case, you don't get a
              >> >> >"non-transactional" session, but actually a session that participates
              >> >> >in the
              >> >> >current JTA transaction for the thread where your EJB is running.
              >> >> >
              >> >> >The idea is that if you are working inside an EJB, you don't use
              >> >transacted
              >> >> >sessions -- you use the transaction control given to you by the
              >EJB
              >> >> >container, including the UserTransaction interface and/or the various
              >> >> >container-managed transaction flags, rather than the JMS "transacted
              >> >> >session".
              >> >> >
              >> >> >You can find more information here:
              >> >> >
              >> >> >http://e-docs.bea.com/wls/docs81/jms/j2ee_components.html
              >> >> >
              >> >> > greg
              >> >> >
              >> >> >"Jen" <[email protected]> wrote in message
              >> >> >news:[email protected]...
              >> >> >>
              >> >> >> Hi,
              >> >> >>
              >> >> >> If I use transacted session in MDB with container managed
              >transaction,
              >> >> >dose the
              >> >> >> weblogic ignore the transacted setting or start in it's own
              >> >transaction.
              >> >> >I
              >> >> >looked
              >> >> >> the JMS Tutorial from Sun, the J2EE server just ignore the
              >transacted
              >> >> >setting,
              >> >> >> treated it as non-transacted session.
              >> >> >> Thanks
              >> >> >
              >> >> >
              >> >>
              >> >
              >> >
              >>
              >
              >
              [eRRORS.txt]
              

  • Posting Payment Lot using Transaction FP05 Tcode in SAP IS-U From Database

    Hi,
    I want to post a payment lot, using transaction FP05. It is BDC.  Data is in Database that have to be posted on SAP ISU ,
    If anyone knows how  FP05 tcode structure please give your suggestions. So i can send the data to ISU using XI with JDBC
    Thanks & Regards
    Laxmi Bhushan
    Edited by: laxmi bhushan on Nov 12, 2009 1:14 PM

    Hi Suraj,
    No , My scenario is to send data from sql server to Sap ISU using XI/PI 7.0. Where we have to post my data to a Transtion code FP05. I am unable to find out the structure where FP05 Transtion store the data or wether we have to create a IDOC or BAPI for that transtions .There is millions of data so we have to automate this process using PI.
    Pl Suggest.
    Thanks
    Laxmi Bhushan

  • Fetch territory name from API by using Transaction Qualifiers value

    Hi All,
    I want to get territory name from API by using Transaction Qualifiers value. But I am unable to find any suitable API.
    Is there any standard API available?
    Its urgent issue. Please any one help me.
    Thanks in advance
    Subhas Samanta

    There is no such API available. But, I can give you a query based on the qualifier. The query changes from qualifier to qualifier.
    Thanks,

  • ORA-20079:  WM internal error [unable to rename table]

    Hi,
    I am getting following error when i try to enable versioning on a table. Any idea how to resolve it ?
    BEGIN DBMS_WM.EnableVersioning('TestTable'); END;
    ERROR at line 1:
    ORA-20079: WM internal error [unable to rename table]
    ORA-06512: at "SYS.LTDDL", line 1615
    ORA-06512: at "SYS.LTDDL", line 1193
    ORA-06512: at "SYS.LT", line 647
    ORA-06512: at "SYS.LT", line 8024
    ORA-06512: at line 1
    thanks
    -na

    Hi,
    You need to determine the original error that is being generated by oracle. This can be done by attempting to rename the table yourself. For example:
    SQL> alter table TestTable rename to RenamedTable ;
    That will give you a better understanding as to why Workspace Manager is unable to rename the table. Also, what version of the database and workspace manager are you using ?
    If the direct rename succeeds while enableversioning continues to fail, then you would need to file a TAR on this.
    Regards,
    Ben

  • ORA-06519 while doing transactions

    Hi,
    I have created a trigger on my transaction table. When a service is booked it is being inserted into two seperate tables. It is working fine, but at some times I am getting following error while recording the transactions.
    ORA-06519 Active autonomous transactions detected and rolled back.
    Following is the trigger code:
    create or replace trigger glstrip_audit
    after INSERT or update ON jeevadb.ipservice
    for each row
    declare
    pragma autonomous_transaction;
    nurstcode pbswardmast.nurstcode%type;
    roomno pbsipregist.currroomno%type;
    BEGIN
    select b.nurstcode,a.currroomno into nurstcode,roomno from pbsipregist a,pbswardmast b where a.currroomno=b.wardno and a.regno=:new.ipno;
    if :new.servcode='006013' then
    if inserting then
    insert into phindenthd(indentno,indentdate,indenttime,regno,storecd,nurstcode,doctcode,userid,edituser,editdate,status)
    values (:new.servslno,:new.servdate,:new.servtime,:new.ipno,'94',nurstcode,:new.orderedby,:new.createdby,:new.editedby,:new.editedon,'P');
    insert into phindentdt(indentno,itecode,indentqty)
    values (:new.servslno,'OPTGS01',:new.servqty);
    elsif updating then
    update phindenthd set indentno=:old.servslno,indentdate=:old.servdate,indenttime=:old.servtime,regno=:old.ipno,
    storecd='94',nurstcode=nurstcode,doctcode=:old.orderedby,userid=:old.createdby,edituser=:new.editedby,editdate=:new.editedon,status='P'
    where regno=:old.ipno and indentno=:old.servslno;
    update phindentdt set indentno=:old.servslno,itecode='OPTGS01',indentqty=:new.servqty where indentno=:old.servslno;
    end if;
    end if;
    end;
    can you help me in finding the problem?
    thanks
    satya

    Hi and welcome to the forum.
    "ORA-06519: active autonomous transaction detected and rolled back
    Cause: Before returning from an autonomous PL/SQL block, all autonomous transactions started within the block must be completed (either committed or rolled back). If not, the active autonomous transaction is implicitly rolled back and this error is raised.
    Action: Ensure that before returning from an autonomous PL/SQL block, any active autonomous transactions are explicitly committed or rolled back"
    http://download.oracle.com/docs/cd/E11882_01/server.112/e10880/e4100.htm#sthref2110
    As mentioned by Bartek, Justin and Adrian you've probably forgotten to commit your autonomous transaction and you're abusing the automomous transaction here, don't use 'autonomous triggers', they're nothing but bugs in your code.
    My $0.02: you're trying to avoid a mutating table error.
    If so, then see: http://asktom.oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551198119097816936
    (Here you can read more FAQ's: http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkyte.html )
    and:
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2212445691154

  • Pipeline function raised ORA-06519: active autonomous transaction detected

    Hi All,
    My name is John and I've got a problem which I need to share with all of you guru and experts. I've created the following pipeline function under the Oracle user ABC:
    CREATE OR replace FUNCTION SomeFunction(p_from_date DATE, p_to_date DATE) RETURN T_TAB_A pipelined
    IS
    PRAGMA autonomous_transaction;
    BEGIN
    DELETE FROM temp_rcm;
    INSERT INTO temp_rcm
    SELECT * FROM int.facility fd,
    int.capacity co
    WHERE co.resource_name = fd.resource_name
    AND co.trade_date = fd.trade_date
    AND co.trade_date BETWEEN p_from_date AND p_to_date;
    COMMIT;
    FOR rec IN (SELECT co.*
    FROM temp_rcm co
    left join int.outage o
    ON ( o.flag = 'Y'
    AND o.reason_flag = 'F'
    AND o.INTERVAL = co.INTERVAL
    AND co.resource_name = o.resource_name )
    ORDER BY co.INTERVAL,
    co.name) LOOP
    pipe ROW (T_A( rec.INTERVAL, rec.trade_date,
    rec.resource_name,rec.day_of_week_long, rec.working_day, rec.peak));
    END LOOP;
    RETURN;
    END SomeFunction;
    I was able to compile and create the SomeFunction function successfully but when I executed it using the following command:
    select * from table(SomeFunction(to_date('01/01/2010',to_date('01/01/2010')));
    I was returned with the Oracle error - ORA-06519: active autonomous transaction detected and rolled back
    I have searched through the web, such Oracle error occurs whenever the function has a missing 'COMMIT' or 'ROLLBACK' command inside an autonomous_transaction. But the fact is I have already included the 'COMMIT;' in the function. I suspected that the error was caused by the tables which I queried against (like int.facility and int.capacity) were all views that belonged to another schema called int. Or is that something that I miss in the function? Thank you for your time and assistance.
    Regards,
    John

    johnwanng wrote:
    Hi Guys,
    Thank you for all your feedback. In addition to your reply, Bill, can you spare some time and provide us a simple example of the steps involved to implement the 'correct' implementation based on the queries that I've used. As I do not understand your vanilla approach. Much appreciated and thank you for the time again.
    Regards,
    JohnIf I had to guess, Billy may have meant something like this (untested):
    CREATE OR REPLACE FUNCTION SomeFunction
    ( p_from_date IN int.facility.trade_date%TYPE
    , p_to_date   IN int.facility.trade_date%TYPE
    RETURN SYS_REFCURSOR
    AS
         rcur     SYS_REFCURSOR;
    BEGIN
         OPEN rcur FOR
              SELECT co.interval
                   , co.trade_date
                   , co.resource_name
                   , co.day_of_week_long
                   , co.working_day
                   , co.peak
              FROM   int.capacity co
              JOIN   int.facility fd        ON fd.resource_name = co.resource_name
                                           AND fd.trade_date    = co.trade_date
              LEFT OUTER JOIN int.outage o  ON o.interval       = co.interval
                                           AND o.resource_name  = co.resource_name
              WHERE  co.trade_date BETWEEN p_from_date AND p_to_date
              AND    o.reason_flag = 'F'
              AND    o.flag        = 'Y'
              ORDER BY co.interval
                     , co.name
         RETURN rcur;
    END;
    /I made the following modifications:
    1. I set the input parameter data types to match that of the table column you are checking against. A good practice to get into.
    2. Removed the autonomous transaction and inserting into a temp table. In Oracle it's a good practice to perform everything in a single SQL statement if possible.
    3. Changed the return data type to a SYS_REFCURSOR
    Hope this helps and provides a good example.

  • OLE DB provider 'MSDAORA' was unable to begin a distributed transaction

    Hello!
    I have following problem:
    When I create a linked Server in MSSQL-Server 2000 with "Microsoft OLE DB Provider for Oracle" (MSDAORA) to Oracle 9.2i and try to create a transaction, i get following error message:
    The operation could not be performed because the OLE DB provider 'MSDAORA' was unable to begin a distributed transaction.
    OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b].
    I also tried to use the "Oracle Provider for OLE DB", but with this provider i could even not get a connection to the Oracle Server. Error Message:
    Error 7302: Could not create an instance of OLE DB provider 'OraOLEDB.Oracle'. OLE DB error trace [Non-interface error: CoCreate of DSO for OraOLEDB.Oracle returned 0x80040154].
    Can anybody help me?
    (sorry for my bad english)

    I don't know if this is much help, but I came across this on the MS site:
    http://support.microsoft.com/kb/280106
    Message 9
    Error 7391: The operation could not be performed because the OLE DB provider 'MSDAORA' does not support distributed transactions. OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]
    Verify that the OCI versions are registered correctly as described earlier in this article.
    Note If the registry entries are all correct, the MtxOCI.dll file is loaded. If the MtxOCI.dll file is not loaded, you cannot perform distributed transactions against Oracle by using Microsoft OLE DB Provider for Oracle or by using Microsoft ODBC Driver for Oracle. If you are using a third-party provider and you receive Error 7391, verify that the OLE DB provider that you are using supports distributed transactions. If the OLE DB provider does support distributed transactions, verify that the Microsoft Distributed Transaction Coordinator (MSDTC) is running.

  • Append Hint causing ORA-00603: ORACLE server session terminated by fatal er

    Hi All,
    I am facing Service Terminated by Fatal Error when using APPEND hint in my Insert statement.
    We are executing the below commands in Oracle 9ir2.
    This is the scenario which I am facing.
    SQL> insert into VALIDTRANSACTIONLINE select * from TRANSACTIONONLINE;
    1910534 rows created. --works fine
    SQL> rollback;
    Rollback complete.
    SQL> insert /*+ append */ into VALIDTRANSACTIONLINE select * from TRANSACTIONONLINE;
    ERROR at line 1:
    ORA-00603: ORACLE server session terminated by fatal error
    FYI: The table is having LOGGING-NO and the tablespace for this table is having more than 5GB of free space and undotablespace is also around 650 MB and the total size of insertion will be less than 50MB records.
    Has anyone faced this kind of issue.
    Appreciate your response.
    Thanks,
    Madhu K.

    Hi,
    FYI:
    I can see the undotablespace is having 0MB free space.
    it is a very strage issue.
    With Undotablespace Zero, I was able to insert the data having APPEND Hint but no indexes on the table.
    But when I create an Index on the Table and the Index is also in NOLOGGING mode, the Insertion is again failed with FATAL Error.
    Ex: No Index on the table.
    SQL> INSERT +append
    2 INTO credit
    3 SELECT /*+ driving_site(t1) */ * FROM tru_cmp.credit@EPSARCDV_TO_EPSDEV1.DIRECTV.COM t1 WHERE PERIODSEQ =300;
    1999401 rows created.
    CREATE UNIQUE INDEX TRU_CMP.CREDIT_PK_IND ON TRU_CMP.CREDIT
    (CREDITSEQ)
    NOLOGGING
    TABLESPACE TALLYINDEX
    NOPARALLEL
    INSERT +append
    INTO credit
    SELECT /*+ driving_site(t1) */ * FROM tru_cmp.credit@EPSARCDV_TO_EPSDEV1.DIRECTV.COM t1 WHERE PERIODSEQ =300;
    ERROR at line 3:
    ORA-00603: ORACLE server session terminated by fatal error
    Can you let me is this related to the Data File issue, so that I can ask the DBA to look into this as I dont have access to those alert log files.
    Thanks,
    Madhu K.

Maybe you are looking for

  • Remote Access VPN on Cisco ASA Problem

    Hi, i configured Remote access VPN on Cisco ASA 8.x as per below configuration. Problem is that my internet has stopped working, and default route is just showing stars. i can ping internal server 10.110.10.150 fine , which i allowed on VPN ACL, but

  • I  have no service on my iphone 3gs. Is there a fix for this problem.

    I have no service  or no 3G Network on my iphone 3GS. Is there a fix from Apple for this problem.

  • How to disable save button on selection screen (1000) run from other report

    Hi Experts, Can any one let me know how to disable save button on selection screen (1000) run from other report. Say I am running from report R1 which submits report R2, but the save button should be disabled on report R2(selection screen 100). Thank

  • Iweb, ftp plugin??

    Please help. I have created a website on iweb. My website needs to have an ftp option for my customers to upload their files. is there a simple answer? I need something relatively easy! I would like files to be uploaded under my domain name - but hid

  • Java 6 update 3 not running with Vista

    Previously I have had not problems with getting Java applets to work, but I just got a new computer with a Vista operating system and I cannot get any applets to work. I tried uninstalling and reinstalling the lastest JRE from Java's website many tim