2013-12-18 1 views
0

나는 NHibernate와 Oracle이있는 어플리케이션 개발 프레임 워크 2.0을 가지고있다. 모든 것은 Win Server 2003/2008과 Win XP에서 잘 작동하지만, Win Win XP를 Win 7로 변경하고 문제가 시작되었습니다. 내 모든 트랜잭션이 작동을 멈추었으며 EnterpriseServicesInteropOption.Full을 사용한 작업 만 종료되었습니다.EnterpriseServicesInteropOption, NHibernate 및 Win7의 문제점

Windows XP에서 작동했기 때문에 Windows 7에서 수행해야하는 설정이 없습니다. 코드의 스트레칭 아래

드 객체 저장 나는 OracleException를받을 때 :

Oracle.DataAccess.Client.OracleException 분산 트랜잭션을 열 분산 트랜잭션 (transaction)

TransactionOptions options = new TransactionOptions(); 
options.Timeout = new TimeSpan(0, 5, 0); 
options.IsolationLevel = IsolationLevel.ReadCommitted; 
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options, EnterpriseServicesInteropOption.Full)) 
{      
     // Problems here 
    classDao.Save(class); 

    scope.Complete(); 
} 

답변

0

TransactionScope에 입대 할 수 없습니다 필요한 경우.

분산 트랜잭션을 사용하려면 서버에서 msdtc를 실행해야합니다.

는 다음 (taken from here)을 수행하여 실행되고 있는지 확인할 수는

당신은 (비활성화 의 기본값) MSDTC 서비스가 실행되고 있는지 확인해야합니다. 명령 프롬프트 (admin)를 열고 net start msdtc를 실행합니다. 다음 네트워크 트랜잭션을 허용하도록 msdtc를 구성해야합니다. 시작 | 실행 -> comexp.msc 그런 다음 배포판에 도달 할 때까지 아래로 내려보십시오. 트랜잭션 코디네이터에서 로컬 DTC를 마우스 오른쪽 단추로 클릭하고 속성을 선택하십시오. 보안 탭으로 이동하여 네트워크 트랜잭션을 활성화하고 XA 트랜잭션을 활성화하십시오.

+0

미샤, 답변 해 주셔서 감사합니다. 나는 모든 것을했지만 문제는 남아 있습니다. 뭔가 다른 것이 가능합니까? – user3115461

+0

idk, 100 가지의 다른 문제가 될 수 있습니다.) 오류가 발생했을 수 있으며, 많은 게시물이 있습니다. 다소 오래되었지만 재미있을 수도 있습니다. https://forums.oracle.com/thread/1038580 – MichaC

+0

구글에 대한 대부분의 답변은 로컬 DTC에 관한 것입니다. 나는 오라클 클라이언트의 두 버전을 모두 설치 했으므로 보내준 링크에서 제안을 시도 할 것입니다. 주의 =) – user3115461