전산이야기

SQL서버에서 링크드 서버와의 분산 트랜잭션을 처리하기 위한 과정을 정리 합니다.

양쪽 서버에서 제대로 설정이 되어 있지 않은 경우 아래와 같은 오류가 발생 한다.

 

연결된 서버 "XXXX"의 OLE DB 공급자 "SQLNCLI10"이(가) 분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다.

 

 

1. 만약 Windows서버가 2003이면 프로그램추가삭제 > Windows구성요소 추가/제거 에서 응용프로그램서버(Application Server)를 선택하고  '자세히' 버튼을 누른 후, 네트워크 DTC 액세스 사용(Enable network DTC access)을 설치한다.

 

 

시작메뉴 > 실행에서 regedit 를 입력하여 레지스트리 편집기에서
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSTDC 에서 TurnOffRpcSecurity 키의 값을 1로 해 준다.

 

서비스 에서 'Distributed Transaction Coordinator'를 다시 시작 한다.

 

2. 만약 Windows서버가 2008 이상 이면 다음과 같이 한다.

    ① 시작메뉴 > 실행에서 dcomcnfg를 입력한 다음 확인
    ② 구성 요소 서비스 > 컴퓨터 > 내 컴퓨터 > Distributed Transaction Coordinator > 로컬 DTC 선택
    ③ 로컬 DTC를 마우스 오른쪽 단추로 클릭하고 속성 선택
    ④ 로컬 DTC 속성 창이 나타나면 보안 탭을 클릭 후 다음과 같이 설정

 

 

3. 만약 Windows 방화벽을 사용하고 있다면 Distributed Transaction Coordinator 를 예외로 두어야 한다.

 

4. SQL 상에서는 반드시  SET XACT_ABORT ON 으로 세팅을 하고 begin tran 대신 begin DISTRIBUTED tran 을 사용 해야 한다.

 

5. 만약 상대 DB가 Oracle 인 경우는 위과 같이 해도 안 될 수 있는데 , 이때는 레지스트리에서 다음과 같이 수정 해 준다.

 

레지스트리 경로는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI 이다.
기본적으로 OracleSqlLib와 OracleXaLib가 각각 SQLLib80.dll, xa80.dll로 되어 있는데 이를 설치된 Oracle의 버전에 따라
변경 해 준다.

 

(변경 전)

 

(예: Oracle 10인 경우)           

 

이 글이 도움이 되셨으면 댓글을 남겨 주세요!

 

Comment +0

드래그 드롭으로 간단히 워드, 액셀, 파워포인트 파일을 PDF 문서로 변환이 가능하다고 합니다.


http://smallpdf.com/kr





Comment +0

아래와 같이 SQL서버에서 동적쿼리에 대한 파라미터를 쉽게 전달 할 수 있는 방법이 있다.


이것을 몰랐을 때는 일일이 문자열을 조합, 편집 하느라 매우 애를 먹었는데 간결하게 사용이 가능하다.


DECLARE
    @sql  nvarchar(max),
    @params  nvarchar(max)


SET @Sql = 'select * from InvoiceMaster
            where companyseq = @p_companyseq and invoicedate like @p_invoicedate + ''%'''
 

SET @params = '@p_companyseq int, 
            @p_invoicedate nchar(8)'
 

EXECUTE sp_executesql @sql, 
                      @params, 
                      @p_companyseq = 1,
                      @p_invoicedate = '20140707'


Comment +0

윈도우 8 또는 윈도우 서버 2012 에서 없어진 시작메뉴를 그 이전의 윈도우 처럼 보이게 해 주는


프리웨어 입니다. 아래 사이트에 가서 내려 받아 설치만 하면 됩니다.


http://www.classicshell.net/




Comment +1

RANK() 함수는 순위를 매기는 함수이다.

구문은 다음과 같다.


RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )


테스트를 위해서 테이블을 생성하고 데이터를 넣는다.

create table rank_test 
(aid int,
 aname varchar(100),
 amount int)

insert into rank_test
select 1, 'aaaa', 20
union all
select 2, 'bbbb', 10
union all
select 3, 'bbbb', 10
union all
select 4, 'bbbb', 30
union all
select 5, 'cccc', 60
union all
select 6, 'cccc', 50
union all
select 7, 'dddd', 40

PARTITION BY 구문 없이 사용하면 ORDER BY 에 지정된 컬럼의 순위를 매긴다. 이때 동점의 순위는 동일하게 부여되며 그 만큼 다음 순위는 건너 띄게 된다.

select rank() over (order by amount) r, aname, amount
from rank_test


PARTITION BY 구문이 포함될 경우 PARTITION BY 에 지정된 컬럼에 대하여 그룹핑을 해서 해당 그룹 내에서 순위를 부여 하게 된다.

select rank() over (partition by aname order by amount) r, aname, amount
from rank_test


Comment +0

Windows 7 64bit 에 MySQL 32bit ODBC 설치 후 제어판에서 ODBC 데이터 원본관리자를 실행한 후

새 데이터 원본 만들기를 해봐도 설치된 드라이버가 보이지 않는다.



물론 64 bit ODBC 드라이버를 설치하면 나타나는데, 이를 사용하는 응용 프로그램에서 호환성 문제로 

32 bit만을 지원하는 경우 문제가 된다.


이때는 C:\Windows\SysWOW64\odbcad32.exe 를 실행 시키면 32bit ODBC를 이용해 데이터소스를 만들 수 있다.




Comment +2

유튜브 동영상 주소만 붙여넣기 해주면 해당 동영상 파일을 다운로드 해 주는 유용한 사이트 입니다.


http://dirpy.com/




Comment +0

무료로 각종 파일(이미지, 문서, 음악)의 포맷을 변경할 수 있는 사이트 입니다.


http://ilovefile.com/



Comment +0

최초 Eclipse 설치시에 CDT(Eclipse IDE for C/C++ Developers)를 설치 했는데, 나중에 Java 개발도 필요 

하게 되어 JDT(Eclipse IDE for Java Developers) 도 같이 필요 하게 되었다. 처음에는 별도로 설치를 해야 되는 

줄 알았는데 인터넷을 찾아보니 한지붕 두가족이 가능 했다 (참조 글 : Install Java Support for Eclipse CDT).

필요한 분을 위하여 그 과정을 남겨 놓는다.


먼저 Help 메뉴에서 Install New Software를 선택 한다.


Work with 에서 Juno - http://download.eclipse.org/releases/juno 를 선택한 후, 아래 리스트에서 Programming Languages 하위에 있는 Eclipse Java Development Tools를 선택하고 Next 버튼을 누르면 설치가 시작 된다.


설치가 완료되면 Eclipse를 재시작 한다.


Eclipse 재시작 후 Open Perspective 창에 Java 가 나타난다.


Comment +0


(발췌: http://support.microsoft.com/kb/307729/ko)


알림 영역에서 풍선 설명을 표시하지 않으려면 다음과 같이 하십시오.

  1. 시작실행을 차례로 클릭하고 regedit를 입력한 다음 Enter 키를 누릅니다.
  2. 다음 하위 키를 찾습니다.
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
  3. 오른쪽 창을 마우스 오른쪽 단추로 클릭하고 새 DWORD 값을 만든 다음 EnableBalloonTips로 이름을 지정합니다.
  4. EnableBalloonTips를 두 번 클릭한 후 값 0을 지정합니다.
  5. 레지스트리 편집기를 닫습니다.
  6. Windows에서 로그오프한 다음 다시 로그온합니다.


Comment +0