내부 데이터 공급자 오류 해결 -4000 System.string 트랜잭션 문제

고객이 내부 데이터 공급자 오류-3000 system.string transactioncope 오류를 받는 경우 이 문제 해결 방법을 읽어야 합니다.

[PC 사용자] Windows 오류로 고생하지 마세요. Reimage이 도와드리겠습니다. 여기에서 다운로드하세요.

내부 데이터 공급자 오류-3000 system.string transactionscope

우리는 확실히 ASP.net 응용 프로그램을 가지고 있으며 Oracle 응용 프로그램 2의 예를 사용하고 있습니다.

우리는 전체 데이터베이스의 한가운데에 전역적으로 넣을 수 있는 트랜잭션이 필요합니다. “Microsoft Transaction Services를 위한 Oracle Services”를 설치하고 MsDTC를 구성합니다.

@데이터

이 작업을 시작하면 흥미로운 오류가 발생합니다. 내부 데이터 공급자 오류(-3000)

이 오류를 검색하여 다음과 같은 유용한 링크까지 찾았습니다. http://weblogs.asp.net/ricardoperes/archive/2009/04/07/using-transactionscope-with-odp-net.aspx, OracleMTSRecoveryService가 올바르게 작동하지만 분산 트랜잭션을 제공하지 않기 때문에 “transaction promotable is equal to local”을 사용하는 데 문제가 있습니다.

Windows 오류로 인해 문제가 발생하지 않도록 하십시오.

PC 문제로 인해 실망하지 마십시오! Reimage 복구 도구를 사용하면 일반적인 Windows 문제를 빠르고 쉽게 진단하고 수정할 수 있습니다. 또한 Reimage을 사용하여 시스템 성능을 높이고 메모리를 최적화하고 보안을 개선하고 PC를 미세 조정하여 안정성을 극대화할 수도 있습니다. 그러니 기다리지 마세요. 지금 Reimage을 다운로드하세요!

  • 1단계: Reimage 다운로드 및 설치
  • 2단계: 프로그램을 열고 "스캔"을 클릭합니다.
  • 3단계: "복구"를 클릭하여 복구 프로세스 시작

  • DTC는 의심할 여지 없이 매우 잘 설정되어 있으며 DTCPing은 문제 없이 작동할 수 있습니다.

    안녕하세요, 저는 Pattern에서 제공하는 In Action 4.0을 사용하고 있으며 저희 팀은 Oracle Databse를 Oracle.DataAccess.Client 공급자에 연결해야 합니다.

    TransactionDecorator를 사용하여 트랜잭션 도움말 수준 옆에 있는 예쁜 단계를 수행해야 합니다.

    ServiceLayer에서 Oracle.DataAccess에 대한 중단점을 활성화해야 하는 경우

    단계를 기다리는 동반 연결을 전파해야 합니다.

    저 덕분에 프로덕션 환경에서 MSDTC가 작동할지 확신이 서지 않습니다. 동일한 웹 연결로 가까운 로컬 트랜잭션을 사용하고 싶습니다.

     connectionString = "사용자 ID는 xxx와 동일, 암호 = xxx, 데이터 소스는 oralex와 동일, DEAL PROMOTION = LOCAL"

    당신의 전략이 맞습니까? 어떤 제안이라도 대단히 감사합니다 !!!!!!

    이 정보를 연구한 후 위의 특정 솔루션을 구현했습니다.

    ODP.NET과 함께 TransactionScope 사용

    data support internal error-3000 system.string transactionscope

    Oracle Database Provider를 .NET(ODP.NET)용으로만 사용하고 또한 TransactionScope를 사용하려는 경우 다음이 있을 수 있습니다. 싫어하는 “내부 데이터 공급자 오류(-3000) [System.String]”을(를) 놓쳤습니다. 내가 어떻게 모든 것을 정리했는지 설명하겠습니다.

    전송된 직접 트랜잭션을 지원하려면 먼저 많은 경우에 컴퓨터와 관련된 OracleMTSRecoveryService를 설치하고 시작해야 합니다(Data Oracle Access Components 설치를 위해 제공됨). 구성 요소 서비스 애플릿의 MSDTC 손실에 대해 올바르게 구성됩니다.

    sgenetransacted 지불이 필요하지 않은 경우 위치에 대해 새 연결 문자열에서 포트 수집 매개변수 TRANSACTION PROMOTABLE = LOCAL을 설정할 수 있습니다.

    cmd. = commandtext “SELECT sysdate FROM double”; 짧은 날짜 시간 = (날짜 시간) cmd.ExecuteScalar();

    자세한 내용은 Oracle Data Provider for .NET Provider Guide, Developer를 자주 참조하십시오. 이것은 B28359_01 win.111 Oracle 문서(버전 11g)에 있는 e10927.pdf 파일입니다.

     작업 중(TransactionDecorator 트랜잭션 = 새 TransactionDecorator())                                            (연결 Oracle.DataAccess.Client.OracleConnection = DataObjects.ONYX.ODP.NET.Db2.Connect())를 사용하여                                                    //. 폴더를 삽입하고 현재 구조를 채우십시오 - 재귀 적으로                            dx = folderDao.OnyxSsprodInsert(dx, 연결);                            /// 4. 디나미체 노트 삽입                            notaDinamicaDaoDao.InsertCollection(dx.NoteDinamiche, 연결);                            /// 단순한. Tibco 세부 정보 입력                            ReiszioneDao.TibcoWsInsert(dx.DataRicezione, 연결);                            /// 6. Tibco Prestazi trans를 삽입합니다.                            prestazioneDao.InsertCollection(dx.Prestazioni, 연결);                            // 9월 소파를 삽입하려면 메모를 삽입하세요.                            notaSinteticaDao.InsertCollection(dx.NoteSintetiche, 연결);                                            
     OnyxSsprodInsert 공유 폴더(폴더, OracleConnection 상호 작용 = null)                    여기서 (folder.IsValid())                           부울 닫기가 거짓일 수 있습니다.                느껴야 합니다(join == null)                                    문자열 constr = ConfigurationManager.ConnectionStrings [1] .ConnectionString.Trim();                    공용체는 Db2.Connect()를 의미합니다. // 최신 연결 가져오기                    닫기 = 사실;                                // SQL 문을 생성하는 명령을 생성합니다.                OracleCommand cmd = new OracleCommand("폴더 삽입", 연결);                // DbCommand는 db입니다.                // 오라클 커맨드 cmd. = 새로운 Oracle 명령("insertDossier_type", 조인);                cmd.CommandType = 명령 유형. 유지 절차;               cmd.Parameters.AddRange((폴더) 가져오기);                시도하다                                    // 현재 명령을 실행합니다. 기능을 채우십시오                    cmd.ExecuteNonQuery();                    // OracleDataAdapter 생성                    OracleDataAdapter da = OracleDataAdapter 요금(cmd);                    // 이 DataSet을 refcursor1로 채웁니다.                    DataSet 닌텐도 ds lite는 DataSet()을 나타냅니다. 새로 발견된 da.Fill(ds, "p_return_cursor", (OracleRefCursor)(cmd.Parameters ["p_return_cursor"]. 값));                    .....                                캡처(예외 e)                                    System.Diagnostics.Debug.WriteLine("오류: 0, e.Message);                    쓰레기;                                마지막으로                                    // OracleCommand 객체 삭제                    cmd.Dispose();                    // 사용 가능한 경우 로컬 연결을 닫습니다.                    여부(닫기)                                            분명히 (join! = null)                                                    연결.닫힘();                            연결.Entsorgen();                                                                                    다른                            // 엄청난 오류 예외를 던집니다.                새로운 예외 발생 ArgumentException (string.Join (System.Environment.NewLine, folder.Errors.ToArray ()));                        홈 파일 반환;        

    이 소프트웨어는 컴퓨터를 수정하고 오류로부터 보호하도록 설계되었습니다.

    Resolve Internal Data Provider Error -3000 Problem With System.string Transaction
    Устранить ошибку внутреннего поставщика данных -3000 Проблема с транзакцией System.string
    Risolvi L’errore Del Provider Di Dati Interno -3000 Problema Con La Transazione System.string
    Resolva O Erro Interno Do Provedor De Dados -3000 Problema Com A Transação System.string
    Résoudre L’erreur Du Fournisseur De Données Interne -3000 Problème Avec La Transaction System.string
    Beheben Sie Den Internen Datenprovider-Fehler -3000 Problem Mit Der System.string-Transaktion
    Resolver El Error Interno Del Proveedor De Datos -3000 Problema Con La Transacción System.string
    Interne Gegevensproviderfout Oplossen -3000 Probleem Met System.string-transactie
    Rozwiąż Błąd Wewnętrznego Dostawcy Danych -3000 Problem Z Transakcją System.string
    Lös Internt Dataleverantörsfel -3000 Problem Med System.string-transaktion