posted by 방랑군 2012. 1. 21. 14:49
ebXML [e-business Extensible Markup Language]
ebXML 정의
-      전자상거래 데이터 교환 표준을 마련하고자 하는 전세계적 프로젝트
-      XML 기반으로 e-business 가능하게 하고자 하는 목적의 표준안
-      OASIS/CEFACT 주도하여 기업의 규모나 지역적 위치에 관련 없이 인터넷을 통해 거래할  있도록 하는 규약들의모음
 
ebXML 필요성
-      전자상거래를 위한 단일 표준이 없음
-      XML 실제 전자 상거래의 표준적인 기반으로 인식하고 사용되고 있으나 구체적인 전자 상거래에서의 표준규약은 마련되어 있지 않음
 
ebXML 구성요소
1.     BP(Business Process)
-       다른 기업이 비즈니스 서비스 제공자의 비즈니스를 이용할  있도록 명세화 .
-       업무 프로세스업무절차를 정의한 부분임
-       기업간 거래에 있어서 공유하는 역할(Role), 관계(Relationship), 의무사항(Responsible) 등을 어떻게 수행(처리) 것인가를 상세히 정의하는 
-       비즈니스 프로세스와 이와 연관된 정보 모델 등의 일관된 모델링 방법 제공
-       업무 프로세스를 정의하는 과정에서 문서의 검토가 자연스럽게 이루어지므로 기존 문서 수준의 표준화에서 업무수준의 표준화로 확대가 가능한 것이 EDI 다름.
2.     CC(Core Components)
-       비즈니스 서비스에 사용되는 기능객체를 의미하며 이를 추출하여 이용할  있는 명세를 제공함
-        세계 개념과 비즈니스 개념과의 관계를 구문 독립적이고 명확하게 공통의 핵심 컴포넌트로서 구분하고 새로운확장이 가능하도록 정의한 객체
-       비즈니스 프로세스를 기반으로 재사용성확장성상속성을 지닌 의미 중립적인 비즈니스 객체
3.     RR(Registry/Repository)
-       Registry : 서비스의 메타데이터등 색인정보를 보관
-       Repository : 거래 상대자가 제출한 정보를 안전하게 보관
-       ebXML 구현 인프라의 핵심요소
4.     TP(Trading Partner)
-       거래상대자의 프로파일(TPP) 작성  거래협약(TPA) 작성
-       ebXML 핵심 컨텐츠 부분임
-       CPP(Collaboration Protocol Profile)
-       CPA(Collaboration Protocol Agreement)
5.     MS(Message Service)
-       각각의 요소 사이에 메시지 전송  보안성을 규정
-       ebXML 거래 당사자들간의 비즈니스 메시지들을 교환하기 위한 표준 방법을 제공
 
ebXML 운영 시나리오

 
 
 
 
     기업A ebXML등록기를 인지하고 있으며, ebXML 준수하는 거래를 하기 위하여 등록기에 ebXML규격서를 요청한다.
     등록기는 ebXML BP 규격서를 기업A에게 제공한다.
     기업A 규격서를 받아서 검토한  규격서에 따라서 자신의 시스템을 구축한다.
     기업A 자신의 구현내역참조링크거래 파트너 프로필 (TPP: Trading Partner Profile) 등을 등록기에 제출한다.
     TPP  기업의 ebXML능력과 제약시나리오 등의 내용을 포함한다등록기는 업무 객체의 형식과 사용이 정확함을검증한  기업A에게 승인되었음을 전달한다.
     기업A 중소규모의 기업B에게 ebXML 사용하여 거래를 하고자 함을 통지하면기업B 자신의 기존 응용어플리케이션과 접속이 가능하고 ebXML 준수하는 응용어프리케이션을 획득하여 설치하게 된다 ebXML응용은 기본적인객체 라이브러리와  기업이 속한 산업분야의 BP 모델 등을 포함하고 있으나새로 등록된 기업A 관한 정보는 없으므로이를 입수하기 위하여 등록기에 기업A 관한 질의를 하게 된다.
     기업B 등록기로부터 기업A 관한 프로필을 획득한다.
     TPP(Trading Partner Profile) 바탕으로 기업 A 지원하는 특정 시나리오를 수행할  있는지를 결정하게 된다시나리오를 실행하기 전에기업B 작성된 거래 파트너 합의 (TPA: Trading Partner Agreement)  작성하여 기업A 응용 인터페이스에 제출한다.
     메시지 처리사고 처리보안 등의 요구사항과 시나리오를 규정하고 있는 TPA 수신한 기업A  TPA 승인되었음을 기업B ebXML응용어플리케이션에 통보하게 된다.
     기업A 시나리오가 아직 기업B 응용에 존재하지 않기 때문에 등록기에 요청하여  시나리오를 확보한다.
     기업A 기업B ebXML규격서를 사용하여 B2B거래를 실행하게 된다.
 
ebXML Web Service 비교
구분
ebXML
Web Service
서비스 정보
-      RR
-      (B2B) Business Collaboration
-      Registry Federation(v3.0)
-      UDDI
-      (A2A) Application Integration
-      Registry Federation 기능 없음
-      각각의UDDI 연경된 기능은 정의 것이 없음
서비스 흐름
-      BP
-      기업간 거래의 역할관계의무사항 등을 정의한 시나리오
-      BP
-      다수  서비스를 연결한 복합  서비스를 제공하기 위한 시나리오
서비스의 구체적구현
-      XML 사용한 것으로만 정의
-      BPML4WS
 
ebXML 기타 저자 상거래 안과의 비교
구분
ebXML
eCo
UDDI
RosettaNet
Biztalk
대상산업
특별한 규정 없음
특별한 규정 없음
특별한 규정 없음
IT & 전자 부품
특별한 규정 없음
통신프로토콜
HTTP, SMTP
HTTP
HTTP(SOAP)
HTTP/CGI
HTTP(SOAP)/MSMQ
서비스찾기
지원
확장 지원
지원
없음
지원
레파지토리
분산형태
로컬에 위치
분산형태
없음
지원
메시지 형식
XML Document(MIME)
XML Document
XML Document
XML Document(MIME)
Biztalk Document기반을  Biztag
보안
S/MINE, 디지털 서명
선택적임
각각 UDDIregistry에서 인증
HTTP SSL/디지털 서명  인증서
표준화된 계층정보
온톨로지
Common Business Object
Common Business Library
NAICS, UN/SPSC
Technical and Business Dictionaries
Collection of Biztag
 
ebXML 파급효과
-      IT 산업 측면으로 보면 주요 IT기업의 ebXML 지원 제품 출시  시장 지배력 강화 노력 증대 기여
-      새로운 신생기업에게 새로운 기회를 주는 시장
-      경제적 측면으로 전자상거래 활성화에 따른 경제의 역동성 증가
-      신생기업에게 진입 장벽을 낮추어   있는 새로운 전자 상거래 관행 장착
 
ebXML 향후 전망
-      현재 EDI 채택하고 있는 대기업들이 병행적으로 ebXLM 사용을 시작으로 장기적으로는 대부분 기업이 ebXML 사용하여 전자 상거래를  것으로 예견됨
-      그러므로 기업은 ebXML 대한 표준화 동향을 예의 주시하여 신규시장 진입  새로운 기술에 대비하여야 
-      ebXML 이용한 B2B전자 상거래는 새롭게 시작하는 중소기업에게 신규시장에서의 새로운 도약기회를   있으므로이에 대한 대비 필요

[출처] ebXML |작성자 피비티

'BIZTALK > DEFINITION' 카테고리의 다른 글

Microsoft는 BizTalk Server를 이해  (0) 2009.12.22
SOA와 미들웨어, EAI하고 차이  (0) 2009.12.22
SOA와 EAI  (0) 2009.12.22
EAI 연동방안의 차이점  (0) 2009.12.22
EAI와 ERP의 차이점  (0) 2009.12.22
posted by 방랑군 2010. 3. 26. 09:49
MS
BizTalk Server Developer Center

참고 사이트 : http://msdn.microsoft.com/en-us/library/ms946383.aspx




I've exposed quite a lot of my orchestrations as web services; while doing that I faced numerous problems sojust thought of summarizing all possible resolutions techniques here
1. SOAP Port not created
2. All properties required for correlation are not promoted; so uninstall assembly are redeploy it
3. SOAP Port created is not bound to orchestration
4. Web service is using anonymous access; remove this anonymous access; keep only windows authentication
5. User account for web service application pool doesn't have access to %temp% folder
6. User account for web service application pool is not member of IIS_WPG group
7. Client to this web service is sending credentials
8. Do iisreset once to ensure all changes are reflected
9. User account for Isolated host has enough rights to access SQL server
10. If you are using Http and SOAP adapters both then create seperate instances of isolated hosts for them

11. Changing receive location pipeline to XML receive pipeline from default passthru pipeline

12. Finally check event log for more information 

posted by 방랑군 2009. 12. 28. 16:52

Indentify BizTalk Version and Edition

Here is how you can find out the edition: Enterprise/Standard/Branch 

HKLM\SOFTWARE\Microsoft\BizTalk Server\3.0 and the key ProductEdition. This should tell you if it is Enterprise/Standard or Branch.... 

 

BizTalk version through Registry:

HKLM\SOFTWARE\Microsoft\BizTalk Server\3.0

 

ProductVersion key

version

3.0.4902.0

BizTalk Server 2004

3.0.6070.0

BizTalk Server 2004 SP1

3.0.7405.0

BizTalk Server 2004 SP2

3.5.1602.0

BizTalk Server 2006

3.6.1404.0

BizTalk Server 2006 R2

 

Here is a way to determine the version of BizTalk Server through Database:

open BizTalkDBVersion Table from BizTalk Management database.. Do not change any values here as the supportability clause comes into picture....

 

 

Version(Minor + Major)

Comments

BizTalk 2009

3.7

 

BizTalk 2006 R2

3.6

 

BizTalk 2006 RTM

3.5

 

BizTalk 2004 SP2

3.2

If table exists ('admv__BackupDatabases')

BizTalk 2004 SP1

3.2

If table exists ('adm_OtherDatabases')

BizTalk 2004 RTM

3.2

If not table specified above exist

 

This is by DB version though.. not the registry.. there should be some easy way to tell, trying to get that mapping...

'BIZTALK' 카테고리의 다른 글

SOA(Service Oriented Architecture)란?  (0) 2009.12.22
MS BizTalk Server 소개  (0) 2009.12.22
미들웨어란 무엇인가?  (0) 2009.12.22
BizTalkDTADb  (0) 2009.11.29
Microsoft BizTalk ESB Toolkit  (0) 2009.10.05
posted by 방랑군 2009. 12. 22. 16:03
1.Service Overview - MS BizTalk Server 구현
기업은 비즈니스 환경의 급속한 전산화 과정을 통하여 필요한 여러 가지의 시스템들을 구축하게 되었습니다. 이러한 과정을 통해 도입된 기업의 시스템들은 점점 기업 내부의 일을 처리하는 영역의 어플리케이션에서 기업간 업무를 처리하는 영역의 어플리케이션으로 그 담당 업무의 영역을 확대해 갔으며, 각 어플리케이션 단독으로 업무를 처리하던 경향에서 연관된 어플리케이션들간의 상호 보완적인 운용을 통하여 담당 업무를 처리하는 경향을 나타내게 되었습니다. 이러한 경향에서 가장 주목 받는 분야가 어플리케이션 통합(Application Integration)입니다.

기업내의 어플리케이션을 주 대상으로 통합하는 것을 EAI(Enterprise Application Integration),
기업간의 (웹)어플리케이션을 주 대상으로 통합하는 것을 B2Bi(Business to Business Integration)이라고 나누며, 이 두 종류의 통합을 통칭하여 eAI(e-Business Application Integration)라고 합니다.

TOBEway는 BizTalk Server에 대한 깊은 이해와 프로젝트 경험을 토대로 고객의 표준화되고 통합화된 기업환경을 구축해 드립니다.

2.Service 유형
어플리케이션 통합 서비스는 다음과 같은 서비스의 조합으로 이루어진다고 할 수 있습니다.

  • 메시징 서비스 및 관리 서비스
    문서의 수/발신, 문서의 포맷을 찾아내기 위한 파싱, 문서의 전송 및 문서 추적/상태 확인 등의 기능을 제공합니다.
  • 데이터브로커 서비스
    상이한 시스템과 어플리케이션을 연동하기 위해 적절한 메시지를 정의하고 생성하며, 이를 변환하는 문서 변환 서비스를 제공합니다.
  • 어댑팅 서비스
    어댑터란 패키지 어플리케이션 또는 메인프레임과 같은 이기종 시스템과의 접속을 위한 소프트웨어 모듈로서 해당 소프트웨어와 플랫폼 사이에 위치하며 데이터 중개 및 어플리케이션 연동의 인터페이스를 담당하게 됩니다. 적절한 어댑터를 선택하여 제공합니다.
  • 비즈니스 프로세싱 서비스
    연동 비즈니스의 프로세스를 분석하여 자연스럽고 통합의 효과를 극대화 할 수 있도록 제어하는 비즈니스 workflow기능을 제공합니다.
  • 글로벌 표준 지원 서비스
    기업간 어플리케이션 연계를 위한 기능을 제공하며, 여러 산업별 표준을 지원하는 프로세스 팩을 제공함으로써, 외부 기업간 B2B 통합 기능을 지원합니다.
  • 플랫폼 기능성 확보 서비스
    eAI의 모든 데이터를 안전하게 전달하고 안정성, 성능 등을 보장하는 기반 소프트웨어로서 주로 미들웨어를 사용하며 이를 적절히 선택/구성합니다.


  • 3. Service Principles
  • Global Standard based Integration : 국제표준 프레임워크를 적극 활용하여 통합함으로써 비즈니스
        환경의 변화에 빠르게 대응할 수 있도록 합니다.

  • Loosely Coupled Integration : 개별 시스템과 어플리케이션의 장점을 살리면서 시너지 효과를 낼 수
        있는 적정한 정도의 통합을 설계합니다.

  • Process-Oriented Integration : 통합대상에 대한 프로세스를 이해하고 자연스럽고 통합의 묘를 가장 잘
        살릴 수 있는 프로세스 중심의 통합을 지향합니다.

  • Leverage of Legacy system : 기존 IT 시스템을 최대한 활용하여 통합으로 인한 추가 비용의 발생과
        업무영향을 최소화하고 익숙한 기존 시스템을 최대한 활용합니다.

  • Scaleable and Securable Integration : 시스템의 확장성과 보안성에 대한 고려가 필요합니다.

  • Adequately Synchronous Integration : 메시지의 전달과 기능 수행 간에 연동 신뢰도와 수행 능률을
       높이기위해 동기화통합(Synchronous Integration)과 비동기화 통합(Asynchronous Integration)을
       적절히 설계합니다
  • 'BIZTALK > DEFINITION' 카테고리의 다른 글

    ebXML  (0) 2012.01.21
    SOA와 미들웨어, EAI하고 차이  (0) 2009.12.22
    SOA와 EAI  (0) 2009.12.22
    EAI 연동방안의 차이점  (0) 2009.12.22
    EAI와 ERP의 차이점  (0) 2009.12.22
    posted by 방랑군 2009. 12. 22. 15:23
    -       개방형 표준(Open standard) 따라 자치적인 서비스(Autonomous service) 메시지 기반(message-based)으로 서로 커뮤니케이션 하도록 소프트웨어 시스템을 설계하는 방식을 정의하는 아키텍쳐적인 원리와 패턴을 포함하는 아키텍쳐 스타일(Architecture style)

    'BIZTALK' 카테고리의 다른 글

    BizTalk Version  (0) 2009.12.28
    MS BizTalk Server 소개  (0) 2009.12.22
    미들웨어란 무엇인가?  (0) 2009.12.22
    BizTalkDTADb  (0) 2009.11.29
    Microsoft BizTalk ESB Toolkit  (0) 2009.10.05
    posted by 방랑군 2009. 12. 22. 15:21
    Microsoft BizTalk Server 2000은 EAI의 구축을 위하여 필요한 개발 도구 및 구현된 EAI의 실행을 위해서 필요한 Messaging Engine과 Workflow Engine의 두 개의 실행부분으로 구성됩니다. 이외에 실행시의 BizTalk Server의 실행 상태를 monitoring하고 control할 수 있는 관리 도구가 제공됩니다.

    BizTalk Server는 비즈니스 문서를 처리하기 위해 사용된 응용 프로그램에 관계 없이 다양한 플랫폼과 운영 체제간에 비즈니스 문서를 교환하기 위해 필요한 도구와 기반 구조를 제공합니다. 또한 BizTalk Server는 인터넷을 통해 문서를 주고 받을 수 있도록 표준 게이트웨이를 제공하며, 이를 통해 외부의 거래 업체들과도 문서를 교환할 수 있도록 해줍니다.

    시스템 구성

      BizTalk Orchestration Designer
    BizTalk Orchestration Designer는 비즈니스 프로세스를 작성하기 위한 도구입니다. BizTalk Orchestration Designer는 Business Process와 Data의 흐름을 분할하여 보여줌으로써, 프로세스를 구성하는 Data 흐름의 파악이 용이하며, 프로세스를 이루는 각각의 Activity에 대해 구현될 수 있는 기술적인 항목들을 연결함으로써 전체적인 비즈니스 프로세스를 완성하게 됩니다.

      BizTalk Editor
    BizTalk Editor는 문서의 구조를 레코드 및 필드 세트로 표현합니다. 레코드에는 필드와 다른 레코드가 포함될 수 있습니다. BizTalk Editor 스키마는 레코드와 필드를 결합하고, 문서 설명의 레코드와 필드에 있는 데이터를 해석하고 그 문서를 설명하는 XML 데이터 스키마를 만듭니다. 응용 프로그램간의 문서 교환을 위해 생성하는 모든 문서의 Spec.은 BizTalk Editor를 통해 작성하게 됩니다.

      BizTalk Mapper
    BizTalk Mapper는 변환 디자인 도구로 간단한 링크, 기능적 개체 및 프로그래밍 개체를 사용하여 두 개의 서로 다른 문서 형식 사이에서 레코드와 필드를 매핑합니다. 이 도구는 소스 문서의 데이터 요소와 대상 문서의 데이터 요소 사이의 변화하는 구조적 관계를 그래픽으로 표현합니다. 상호 참조와 데이터 조작 기능을 구축함으로써, 사용자는 문서 변환 맵을 만들 수 있습니다. 이 맵에는 두 개의 서로 다른 문서 형식 사이의 관계를 정의하는 설명이 포함되어 있습니다. 이 맵은 XSL(Extensible Stylesheet Language) 파일로 만들어지고 저장됩니다.

      BizTalk Messaging Manager
    BizTalk Messaging Manager는 BizTalk을 이용한 문서 교환의 흐름의 형태를 정의하고 구성하기 위한 도구입니다. 또한 BizTalk Messaging Manager는 교환되는 문서의 무결성을 검증하고, 문서의 보안을 위한 방법을 제공합니다. 기업간의 문서 교환을 통한 인티그레이션 작업 시 가장 많이 사용될 수 있는 형태로 문서 전송을 위한 다양한 방법(HTTP/HTTPS/SMTP/FTP 등)을 제공합니다.

      BizTalk Server Administration
    BizTalk Server Administration은 윈도우의 MMC snap-in의 형태로 제공되며, BizTalk Server 그룹을 구성하고 새로운 BizTalk 서버를 추가하는 것부터 BizTalk 서버 내에서 발생하는 작업 상황 모니터링 및 Receiving Function을 통한 문서 교환의 흐름 구성을 지원합니다.

      BizTalk Document Tracking
    BizTalk Document Tracking은 BizTalk을 이용하여 교환되는 모든 문서의 전달 상태 및 문서 변환 결과 등을 확인/추적할 수 있도록 합니다.

    'BIZTALK' 카테고리의 다른 글

    BizTalk Version  (0) 2009.12.28
    SOA(Service Oriented Architecture)란?  (0) 2009.12.22
    미들웨어란 무엇인가?  (0) 2009.12.22
    BizTalkDTADb  (0) 2009.11.29
    Microsoft BizTalk ESB Toolkit  (0) 2009.10.05
    posted by 방랑군 2009. 12. 22. 15:18


    참조 : http://blog.naver.com/dhysys?Redirect=Log&logNo=50039413036


    BizTalk Server를 설치하러 다니다보면 꼭 한번은 격는 문제중에 하나는 MSDTC 문제입니다.

    문제가 생기면 인프라적인 문제와 애플리케이션적인 문제속에서 고민하느라 시간을 마구 잡아먹는 하마가 될 경우도 종종 발생합니다.

     

    오늘은 그동안 사이트를 돌아다니면서 여러가지 시도해본것중에 필요한 스텝만 정리해보도록 하겠습니다.

     

    그럼 MSDTC가 무엇이냐?

    DTC(Distributed Transaction Coordinator) 서비스는 데이터베이스, 메시지 큐, 파일 시스템 등 두 가지 이상의 트랜잭션 보호 리소스를 업데이트하는 트랜잭션을 조정합니다. 단일 환경의 컴퓨터나 또는 네트워크 상에 있는 분산환경의 컴퓨터들의 트랜잭션 리소스를 보호합니다. blah..blah..blah.. 자세한 설명은 링크를 확인하시기 바랍니다. 한국어 페이지는 열리지 않는군요..

     

    큰 내용을 살펴보면 트랜잭션을 사용하는 상황에서 그것도 분산환경 상에서 그것을 보장해주는 기술입니다.

     

    트랜잭션 (Transaction) 이란?

    정보의 교환이나 데이터베이스 갱신 등 연관되는 작업들에 대한 일련의 연속을 의미...

     

    예를들어 은행 ATM기를 사용할때 A라는 고객과 B라는 고객에 서로 다른 위치에서 같은 구좌의 돈을 찾게 되는 상황이 발생하였을때 B라는 사람이 먼저 조회를 했지만 A라는 사람이 돈을 찾아버리게 되면 B가 조회한 내용과 찾을 수 있는 돈이 달라지면서 문제가 발생할 수 있습니다. 이럴때에 구좌의 돈(데이터)의 무결성을 보장해주는것이 트랜잭션이라고 생각하시면 됩니다.

     

    분산환경에서 트랜잭션을 보호해준다!

    이렇게 보았을때는 괴장히 비즈니스에 도움을 주는 기술입니다. 하지만! 이것이 Microsoft사에서 나왔기때문에.. Microsoft 제품 (SQL, MSMQ)에 제한적으로 지원됩니다. 물론 Oracle 같은 경우도 지원을 하지만 Version을 매우 따지기때문에 아무래도 이기종간 (Oracle, DB2, HOST, CA...)에 사용하기에는 좀 무리가 있습니다.

     

    사설이 길었지만... 이기술이 BizTalk Server에서도 사용되어지고 있습니다. BizTalk Server 와 Message Box(SQL) 사이에 트랜잭션 그리고 BizTalk Server 와 분산환경의 SQL Server와 통신하기 위해서 사용되고 있습니다.

     

    그렇다면 왜! Microsoft 제품군을 설치하는데 문제가 발생할까?

    BizTalk Server를 설치하게 되면 절대! 같은 머신에 설치하는 경우가 없습니다. 테스트 용도 또는 아주 작은 사이즈에서는 가끔 설치하기도 하지요.. 그렇게 되면 BizTalk Server와 Message Box 사이가 분산환경이 되버리면서.. IP Filtering, FireWall, Security... 같은 아주 다양한 문제와 맞이 하게 됩니다.

     

    MSDTC는 분산환경에서 트랜잭션을 보장하기 위해 매우 많은 포트를 사용하고 있습니다. 그것도 동적으로! 가끔 너무 많은 포트를 사용한다는 고객사로부터 듣습니다.

     

    MSDTC관련 오류가 발생하였다!! 무엇을 확인해야할까?

     

    1. 방화벽 체크

    MSDTC를 사용하기 위해서는 필요한 포트가 있습니다. 반드시 포트가 오픈되었는지 확인해야 합니다.

    다음의 포트리스트는 일반적으로 BizTalk Server에서 필요로 하는 포트입니다. 

     

    2. MSDTC 구성 체크

    로컬 머신과 MSDTC통신을 하고 싶은 리모트 머신의 MSDTC구성을 확인합니다.

    (1) Application Server

    Windows Add/Remove -> Applicatoin Serve에서 "Enable network COM+ access", "Enable network DTC acess"를 체크하여 설치하도록 합니다.

     

     

    (2) MSDTC Security Configuration

     

    Start->Administrator Tools->Component Services에서 트리노드를 확장하여 "My Computer"에서 속성버튼을 클릭합니다.

    "COM Security"탭으로 이동 "Security Configuration"을 클릭합니다.

     

    - "Network DTC Access" 체크

    - "Allow Remote Clients, Allow Remote Administration" 체크

    - "Allow Inbound, Allow Outbound, Incomming Caller Authentication Required" 체크

     

    ** Windows 2003 Server 버전을 기준으로 설명하고 있습니다. Window Server 2003 이전 버전은 Regstry에서 설정하여야 합니다.

         

    (3) Port Range assignment

    기본적으로 포트의 제한을 걸지 않은 상태라면 0~65535라는 말 그대로 몽땅 다 이용하도록 되어있습니다.

    일반적으로 기업내에서 모든 포트를 다 열어주지 않기 때문에 제한을 하도록 합니다. 일반적으로 200개 정도를 동적포트로 할당합니다.

     

     

    ** 로컬 머신과 리모트 머신 모두 구성해야됩니다.

    자 이렇게 하면 기본적인 구성은 완료가 되었다. 하지만.. 실제 해보면 안되는 경우가 비일비재 합니다.. 이제 몇가지 사항을 더 확인해보고 Microsoft에서 제공하는 Tool을 이용하면 당신은 MSDTC를 멋지게 연결할 수 있을것입니다.

     

    3. HOST명, IP 확인

    MSDTC연결은 HOST명으로 연결되기 때문에 HOST명과 IP가 동일한지 반드시 확인해봐야 합니다.

    AD(Active Directory)환경이라면 Domain Server에서 HOST명과 IP를 연결해 줍니다.

    AD환경이 아니라면 "C:WINDOWSsystem32driversetc" hosts파일에서 지정할 수 있습니다.

     

     

    ** 한번 이런경우가 있었습니다. AD환경이기 때문에 아무생각없이 테스트를 하고 있었는데 아무리 해도 연결이 안되는겁니다.

        나중에 알고보니 hosts파일에 IP가 고정되어 전혀 다른 컴퓨터를 바라보고 테스트를 하고 있었습니다. hosts파일을 수정한 후에야

        정상적으로 연결할 수 있었습니다.

     

    4. 컴퓨터 방화벽 체크

    Windows 2003, XP, Vista... 등에서는 기본적으로 방화벽을 제공 하고 있습니다. 방화벽에 MSDTC를 사용할 수 있도록 구성하거나 방화벽 사용을 중지하여야 합니다.

     

     

    5. Microsoft에서 제공하는 툴로 점검하기 (DTCPing, DTCTester, TCPView)

    Microsoft에서 제공하는 툴로 정상적으로 RPC통신이 되는지 포트가 열리는지를 확인할 수 있습니다.

    (1) DTCPing

    가장 기본적으로 사용하는 툴로서 방화벽이 제대로 열렸는지 확인 할 수 있습니다. RPC통신에 필요한 포트를 확인합니다.

    실제 통신은 하지 않기 때문에 통신은 되지만 안되는 경우가 발생할 수 있습니다.

     

    1. 서버와 클라이언트에 모두 실행되어야 합니다.

     

    2. HOST명으로만 연결할 수 있습니다. (AD환경이 아니라면 HOST파일에 정의되어야 합니다.)

     

    ** 다운로드는 여기서 받을 수 있습니다.

     

    (2) DTCTester

    DTCPing이 기본적인 RPC통신 확인만 한다면 DTCTester는 실제 SQL데이터베이스에 DTC작업을 합니다. MSDTC가 되는지 확실하게 테스트해 볼 수 있습니다.

    1. SQL에 데이터베이스가 있는 환경에서만 사용할 수 있습니다.

     

    ** ODBC Data source를 이용하여 연결하기 때문에 테스트하려는 서버의 SQL의 Data Source를 반드시 만들어야 합니다.

     

    2. SQL데이터베이스에 하는 작업은 다음과 같습니다.

    ** 사용방법은 "dtctester.exe <dsn name> <user name> <password>" 입니다.

     

    - SQL 서버의 데이터 원본명(DSN)으로 연결을 합니다.

    - 임시 테이블을 생성합니다.

    - 트랜잭션을 초기화 합니다.

    - 임시테이블에 데이터를 입력합니다.

    - 분산트랜잭션을 커밋합니다.

    - 커밋이 되었는지 확인합니다.

    - 컨넥션을 종료합니다.

     

     

    ** 사용방법은 여기서 볼 수 있습니다.

        다운로드는 여기서 받을 수 있습니다.

      

    (3) TCPView

    "netstat -na"와 비슷한 기능을 제공합니다. 현재 열린 포트 목록과 상태들을 확인 할 수 있습니다. GUI기반으로 좀더 편하게 확인 할 수 있습니다.

     

    ** Dtcping.exe 가 1567포트로 열린것을 확인할 수 있습니다.

     

    다운로드는 여기서 받을 수 있습니다.

     

    MSDTC문제가 발생하면..같은 오류이지만 너무나도 많은 환경에 의해서 발생할 수 있습니다. 그 중에서 많이 해결했던 방법을 조금이나만 도움이 되길 바라면서 정리했습니다.

    posted by 방랑군 2009. 12. 22. 15:15
    1. 미들웨어
        - 말 그대로, "중간 단계에 위치하여 서비스를 해 주는 소프트웨어적으로 운영되는 프로세스"를 
    말합니다.
        - 이러한 소프트웨어가 출현한 배경으로는 우선 기존 Client/Server의 2 Tier 환경에 있어서 
    업무 처리 로직이 Client에 위치하게 되어 Fat Client를 초래함으로써 버젼 관리가 어렵고, Client 프로그램이 많아지게 되면 
    Server에 추가되는 부하도 동일하게 증가되어 대용량 환경하에서의 컴퓨팅에 적당하지 않게 되었습니다.
        - 이에, 비즈니스 로직을 Client에서 떼어내고, Client의 수가 증가하더라도 Server에 
    미치는 영향을 최소화하고자 하는 측면에서 중간에 Middleware라는 소프트웨어를 활용하게 되었습니다.
        - 현재 사용하는 EAI, WAS(Web Application Server)도 Web 환경하에서 운영되는 
    대표적인 미들웨어라고 볼 수 있습니다.
     
    2. EAI(Enterprise Application Integration)
        - 기업이 업무를 처리하는 데 있어서는 인사 시스템, 회계 시스템, 마케팅 시스템, 재무 시스템 등 많은 
    시스템들이 존재하게 되는 데,
        - 시간이 지남에 따라서 이러한 시스템들간에 데이터 연동이 필요로 하게 되었습니다. 
        - 이러한 연동을 위해서 각 시스템들간의 1:1 직접적인 연동 프로그램을 개발하여 문제를 
    해결하였습니다만,
        - 이 같은 해결 방식은 연동 대상 시스템이 많을 경우, 개발할 연동 프로그램의 수가 많아질 뿐 
    아니라, 연동에 대한 내용이 변경이 될 때에 관련되는 모든 프로그램을 고쳐야 해서 관리 측면에서 많은 문제를 야기 했습니다.
        - 이러한 문제를 해결하기 위해서, 연동 되는 시스템들의 중간에 일종의 Middleware로서 EAI를 
    두고 EAI에서 각 시스템들간의 연동과 다른 시스템으로의 데이터 송수신을 책임지게 하는 아키텍쳐를 고안하게 되었습니다.
        - 이렇게 되면, 연동해야 시스템들은 EAI에게만 데이터를 전송하면 EAI가 다른 
    시스템으로 필요한 데이터를 필요한 포맷에 맞게 전달해 주게 되므로 인해 기존의 1:1적인 연동으로 인해 일어나는 관리상의 문제들을 제거할 수 
    있습니다.
     
    3. SOA(Service Oriented Architecture)
        - IT 자원을 서비스화하여 재사용함으로써 비즈니스의 요구에 빨리 대응할 수 있게하는 IT 
    Architecture의 한 형태를 말합니다.
        - IT 자원을 재사용한다는 측면에서 컴포넌트를 사용하는 개발방법과 유사하다고 할 수 있지만, 요즘 
    얘기되는 SOA는 플랫폼에 관계 없는 표준 기반의 기술을 사용한다는 측면에서 조금 차이가 있다고 볼 수 있습니다.
        - SOA가 되기 위해서는 사용할 수 있는 서비스를 설명(Description)하고, 이러한 서비스를 
    찾을 수(Search) 있는 인프라가 제공이 되어야 하는 데, 그러한 인프라를 요즘 얘기하는 ESB(Enterprise Service 
    Bus)라고 합니다.
        - 이 ESB는 일종의 Middleware로서 기존 시스템의 연동 기능을 제공하는 EAI와 유사한 기능을 
    제공하고 있습니다만,
        - EAI가 제공하는 업체가 사용하는 벤더 종속적인 기술을 사용하는 반면, ESB는 표준 기반(예를들면 
    웹서비스)의 기술을 사용한다는 측면에서 EAI와 가장 큰 차이가 있다고 볼 수 있습니다.
     
    결론은, EAI나 (SOA의) ESB는 미들웨어라고 볼 수 있고 동일한 목적, 즉 시스템의 연동이라는 목적을 수행하는 솔루션이라고
    볼 수 있지만, 그 방법에 있어서는 표준 기술을 사용하느냐 하지 않느냐의 차이가 있습니다.
     
    표준 기술을 사용하는 것의 잇점은 서로 다른 벤더 제품의 ESB를 사용하고 있는 기업이라도 ESB의 연동을 통해 다른 기업의 IT 
    자원을 재사용할 수 있어 기업간 프로세스 통합에 큰 도움이 된다는 것입니다.

    이 지식은 삼성경제연구소에서 공유해주셨습니다.

    'BIZTALK > DEFINITION' 카테고리의 다른 글

    ebXML  (0) 2012.01.21
    Microsoft는 BizTalk Server를 이해  (0) 2009.12.22
    SOA와 EAI  (0) 2009.12.22
    EAI 연동방안의 차이점  (0) 2009.12.22
    EAI와 ERP의 차이점  (0) 2009.12.22
    posted by 방랑군 2009. 12. 22. 15:14
    우선 SOA가 무엇인지 알아보자면요,
     
    SOA는 아키텍처와 인터페이스의 다른점을 신경 쓰지않고 모든 어플리케이션을 
    네트워크를 경유하여 서비스로서 자유롭게 조합하여 이용할 수 있도록 하기위한 시스템 설계상의 방법입니다.
     
    여기서 서비스라는 것은 비지니스 로직을 컴포넌트화 한 것으로, 예를 들면 '2분기연속으로 이익을 내고 있는 기업의 
    리스트를 조회한다'라는 비교적 포괄적인 형태에서도 API를 호출하는 것처럼 서비스를 호출하는 측이 하위레벨(네트워크 설정과 SQL 등)를 의식할 
    필요가 없이 필요로 하는 서비스를 호출하기만 하면 됩니다.
     
    웹 서비스는 여기서 말하는 서비스의 내장방법 중에 하나입니다.
     
    그럼 다음으로 EAI는 무엇인지 알아보겠습니다.
     
    소위 EAI 툴이라 불리 우는 제품을 판매하고 있는 각 벤더는 최근에는 EAI 보다는 BPM이라는 단어를 사용하기 
    시작하고 있고 웹 어플리케이션 서버도 어댑터가 사용되면서 EAI 툴이라 불리게 되었습니다.
     
    더욱 진보한 SOA(Service Oriented Architecture)에 기반으로 하는 ESB 
    (Enterprise Service Bus) 제품 이라는 새로운 흐름도 나타나기 시작했습니다. 그 외에 데이터 웨어 하우스 구축에서 사용되는 
    ETL (Extract, Transform, Loading : IT환경에서 상이한 종류의 데이터를 추출, 변환, 가공하는 툴)도 어플리케이션의 
    데이터 연계라는 의미에서는 EAI의 범위에 포함됩니다.
     
    EAI의 기본은 1대1 어플리케이션 연계에서 시작됩니다.
    다시 말해서 EAI는 부분적으로 도입 되어지는 업무 어플리케이션과 기존 시스템을 통합해서 하나의 시스템으로 활용하기 
    위한 조합을 목적으로 하고 있습니다. 
    여기에서 우선 1대1 어플리케이션 연계를 설명해보도록 하죠.
     
    1대1 어플리케이션 연계에는 MOM(Message Oriented Middleware)이 
    사용됩니다.
    MOM 이라는 것은 어플리케이션간의 계속적인 쌍방향 데이터 교환을 가능하게 하는 미들웨어 이며 EAI의 가장 기본이 
    되는 소프트웨어입니다.
    프로그래머는 MOM을 도입함으로써 어플리케이션의 통신부분을 개발하지 않고도 개발을 마칠 수 있습니다. 어플리케이션의 
    연계부분의 개발시간과 개발비용을 크게 절감 할 수 있다는 얘기가 됩니다.
    MOM에는 메시지 큐잉 모델이 사용됩니다.
     
    여기서는 아이비엠의 MQ를 예를 들어 알아보겠습니다.
    이 시스템간의 통신방식의 최대 특징은 어플리케이션 간에 직접 세션을 맺지않고 큐(Queue)라고 불리는 스토리지 
    (디스크상이나 메모리 상에 생성이 가능)를 경유해서 간접적으로 메시지(데이터)를 주고 받을 수 있습니다.
    결국 메시지 큐잉 모델에서는 메시지 발신 어플리케이션에서 발송 되어진 메시지를 일단 큐에 저장을 하고 그 후에 수신 
    어플리케이션이 큐로부터 메시지를 받는 방식으로 되어있습니다.
     
    이 방법이라면 발신측은 수신측 상태를 신경 쓸 필요가 없어집니다. 실제 어플리케이션 간의 통신에서는  
    운영체재의 장해, 네트워크의 장해 등으로 수신측 어플리케이션이 이용할 수 없는 경우가 발생하지만 그 때에는 이용이 가능할 때까지 큐에 메시지를 
    일시적 (장기간 보존가능)으로 보관해 두기만 해도 됩니다.
     
    구체적으로는 MQ는 tcp/ip, SNA 등의 복수의 프로토콜에 대응하고 있기 때문에 프로그래머는 어떤 통신 
    프로토콜을 통해서 통신을 하고 있는가에 대해 의식 할 필요가 없습니다.
    MQI(Message Queue Interface)라는 복수의 플랫폼 간의 통일된 13개의 인터페이스 
    (MQOPEN:큐의 오픈, MQPUT : 큐로 메시지 전송) 구사만으로 충분합니다.

    이 지식은 삼성경제연구소에서 공유해주셨습니다.

    posted by 방랑군 2009. 12. 22. 15:13

    1. Adaptor를 사용하는 방식은 보통  메시지큐잉이나 MOM 통합 방식에서 사용합니다. Point-to-Point 방식 EAI라고도 합니다. MQ 가 대표적인 방식이구요.

    EAI와 양 연동대상 모두 Adaptor를 설치합니다.

     

    2. Adaptor를 사용하지 않는 방식을 Hub-and-Spoke 방식이라고 합니다.

    EAI가 표준화된 연동기술을 제공하여 연동대상 시스템에는 Adaptor가 설치되지 않는 방식입니다.

    엄밀히 말하면 Hub-spoke방식에서도 Adaptor가 쓰이지만, Adaptor를 EAI만 가지고 있다라고 보시면 됩니다.

    최근의 EAI 제품은 모두 이 방식이 아닐까 싶네요.

    posted by 방랑군 2009. 12. 22. 15:12

    다른 사람들 마냥..^^

    사전식으로 비교 설명해 가며 논문형식으로 쓸 맘의 여유는 없으니.. 허접하지만..^^

     

    간단히 알려드릴께요..^^

     

    EAI는 Application system들 끼리의 연계가 주목적입니다.

     

    ERP는 기업의 자원(예를 들면 돈, 사람, 제품, 재고, 기타등등)을 관리하기 위한

     미리 개발되어서 검증되어져 있으며 하나의 DB를 통해 구현된 기업에서 사용되어지는

    애플리케이션 프로그램들의 종합선물세트같은것입니다.

     

    ERP를 도입하면서 ERP자체에 없는 업무가 회사에 존재할경우 ERP시스템 안에 새로

    개발하여 사용할수도 있으며,  새로 개발 할것이 아니라 기존에 이 업무에 관한 애플리케이션 시스템이 있다면 ERP와의 연계를 위해서

    EAI 툴도 같이 도입하여 기존 애플리케이션 과 새로도입한 ERP시스템과 연계를 시키기도 합니다.

     

    더 자세히 쓰자면 한정이 없어서리..^^  이상입니다...

    posted by 방랑군 2009. 12. 22. 15:11
    2.2.1 기업 애플리케이션 통합(EAI) 

    제품
    액티브엔터프라이즈(ActiveEnterprise) - 팁코 소프트웨어(Tibco Software)네온 임팩트(NEON Impact) - 뉴 에라 오브 네트웍스(New Era of Networks)이-게이트(e-Gate) - STC(Software Technologies Corp.)비즈니스웨어(BusinessWare) - 비트리아 테크놀러지(Vitria Technology)제네바 엔터프라이즈 인티그레이터(Geneva Enterprise Integrator) - 레벨 8 시스템즈(Level 8 Systems)(그 외 다수) 

    설명
    EAI 업체들은 EAI 제품을 미들웨어라고 부르는데 커다란 거부감을 느끼고 있다. 기업(enterprise)이란 매력적인 단어를 포함하고 있는 EAI에 미들웨어란 명칭은 어울리지 않는다는 것이다. 그러나 EAI의 근본 개념은 통합이다. 불행하게도 EAI란 단어는 마케팅 목적에 아주 유용하기 때문에, 많은 업체가 각자의 제품이 제공하는 기능성들이 그처럼 폭이 넓음에도 불구하고 이 용어를 굳이 사용하고 있는 것이다. EAI는 미들웨어 이상이다. ORB와 같이 EAI 도구들은 일반적으로 데이터 전송을 위한 기저 메커니즘으로 메시지 브로커(broker)를 사용한다. 여기에 EAI 도구들은 데이터를 받으려는 각각의 특정한 애플리케이션의 입맛에 맞춘 형태로 데이터를 분석, 복제, 변환할 수 있다. 대기업의 경우, MOM과 EAI를 모두 사용할 수는 있지만, 아주 탄탄한 EAI 제품을 사용하고 있다면, MOM 같은 더 낮은 수준의 통합 도구를 사용하지 않아도 된다.EAI 도구들이 제공하게 될 차세대 기능성(이 기능성으로 인해 EAI와 다른 종류의 미들웨어는 한층 명확히 구분이 될 것이다.)은 비즈니스 프로세스 규칙들(rules)의 지원이다. EAI는 사용자가 적절한 비즈니스 프로세스를 정의하고 이런 규칙에 따라 데이터를 통합할 수 있게 해 준다. 일례로 적절한 권한자에 의해 승인을 받기만 하면, 구매 애플리케이션에서 수취 계정 애플리케이션으로 데이터를 자동으로 이동시키도록 규칙을 정할 수 있다.허위츠 그룹에 따르면, 비트리아社의 제품이 이런 종류의 비즈니스 프로세스 규칙을 지원한 최초의 제품이라 한다. 현재 다른 경쟁사들도 기업의 내부 및 공급망 전체에 이 기능을 추가할 수 있도록 각사 제품에 대해 작업하고 있다.XML(eXtensible Markup Language) 지원은 EAI 제품의 최대 장점중 하나다. 또한 EAI 제품은 비쯔톡(BizTalk, 마이크로소프트가 후원하는 B2B 통신 프로토콜)과 로제타넷(RosettaNet, 전자 업계 통신 프로토콜을 만들기 위한 이 업계 컨소시엄) 등 표준도 지원한다. 

    대부분의 EAI 제품의 경우, 사용자는 중앙 모듈을 구매한 후 각자가 필요로 하는 특정 인터페이스만을 선택적으로 구매할 수 있다. 일례로 STC의 이-웨이(e-Way) 제품군은 SAP, 시벨, 로터스 노츠, 다양한 후방지원 데이터베이스들을 위한 개별적인 ‘어댑터들(adapters)’을 포함하고 있다. 또한 대부분의 EAI 업체는 고객이 자체적으로 개발한 애플리케이션들을 연결할 필요가 있을 때, 고객의 프로그래밍 작업을 지원하는 서비스 부서를 갖고 있다. “그들은 80-20 법칙을 따르는 것처럼 보인다. 다시 말해 인터페이스의 80%는 미리 구축된 것을 사용하도록 하고, 나머지 20%는 고객이 작업을 하도록 하는 것이다.”라고 컨설팅 업체인 ARC의 부사장 존 캠패네일은 말한다. 

    전형적인 사용처 

    EAI는 많은 애플리케이션들을 통합해야 하는 대기업에 적합하다. 일례로 카길은 ERP, 유지보수 관리, 재고, 비용 회계 시스템 등 다양한 애플리케이션들을 연결하기 위해 BEA 시스템즈社의 이링크(eLink) EAI 제품을 사용하고 있다. 


    3. 결론

    당신의 회사에 적합한 미들웨어는 어떤 것인가? 유일한 대답은 없다. 서로 다른 애플리케이션과 통합 요구에 맞춰 각기 다른 미들웨어를 사용해야 한다. 반면 단일화된 접근법은 규모의 경제성을 제공하고 개발에 따른 수고를 덜어줄 것이다. 어느 경우든 각 용어가 무엇을 의미하는지 알고 있을 때, 선택의 고민은 훨씬 가벼워질 것이다. 

    'BIZTALK' 카테고리의 다른 글

    BizTalk Version  (0) 2009.12.28
    SOA(Service Oriented Architecture)란?  (0) 2009.12.22
    MS BizTalk Server 소개  (0) 2009.12.22
    BizTalkDTADb  (0) 2009.11.29
    Microsoft BizTalk ESB Toolkit  (0) 2009.10.05
    posted by 방랑군 2009. 12. 22. 15:07

    순수(Pure-Play) BPM 이라는 용어보다는 WorkFlow 기반 BPM 이라는 용어가 맞습니다.

    그래서 BPMS Solution 은 두가지 형태 즉

     

    1. WorkFlow 기반 BPM ( 핸디 나 Savvion )

    2. EAI 기반 BPM ( Tmax, WebMethod 등)


    으로 나누어 집니다. 이 두개의 그룹으로 나누는 기준은

     

    첫째. 프로세스 단위를 정의하고 통제하는데 적용되는 기술 표준이 다릅니다. 
    WorkFlow 기반은 주로 XPDL 이라는 표준기술을 적용하고
    EAI 기반은 BPEL 이라는 표준기술을 적용하여 개발됩니다.


    둘째. 다루려는 대상의 차이입니다.

    WorkFlow 그룹은 Work 즉 업무수행 중심 즉 하나의 시스템내에서 수행되는 업무의 수행 통제 및 제어가 주 목적이고

    EAI 그룹은 업무를 수행하는데 있어서 관계되는 타 업무 및 관련 시스템들간의 연동 및 통제에 중점을 두었습니다.

     

    그래서 BPMS 라는 개념이 부각되기보다는 WorkFlow 시스템 구축이라는 개념이 만연한 초창기때는 WorkFlow 기반 솔루션이 강세이었는데 근래에 Internet 발달등을 근거로 시스템의 확장 및 다변화에 따라서 회사의 업무가 단위 업무 또는 단일 시스템내에서만 수행되는 업무이기보다는 업무대 업무가 연결되고 업무와 시스템이 엮이고 연관되는 프로세스 개념이 강하게 부각되어서 EAI 기반의 BPMS 즉 BPEL 기반으로 개발된 BPMS에 관심이 집중 되고 있습니다. 이와같이 변화의 근거에는 WebService 라는 개념과 SOA 라는 개념의 발달이 바탕이 되었습니다. (이것까지 여기서는...^^)

     

    그러나 이것들은 작년정도까지 서로 자기집단것이 좋다 고 주장하였던 근거였고요 지금은 이런 기준(WorkFlow, EAI)으로 제품을 나누것이 점점(점점입니다. ^^) 무의미 해지고 있습니다. 각 그룹의 제품마다 그룹 파트의 장점은 살리고 단점은 보강하는 추세입니다. 소속그룹의 단점이 상대 그룹의 장점이니까 WorkFlow 그룹은 EAI 장점을 받아들이고(BPEL, WebService) EAI 파트는 Workflow 의 요소 (수행주체, 사람, 업무단위) 등을 받아들이고(BPEL2, BPEL4People) 있습니다. 아마도 1~2년 후에는 파트 구분 자체가 무의미 해질거라고 저는 예상합니다.

     

    각 그룹의 장, 단점은 어떤 기준으로 BPMS 을 도입하느냐? 의 결정에 따라서 매우 많은 영향을 받습니다.

    첫째. '단일 업무 시스템 을 BPM 기반으로 구축한다.' 즉 BPM 기반의 회계관리시스템 이런 기준이라면 업무중심이 강하기에 WorkFlow 기반의 BPMS 가 유리한 면이 많이 있습니다.

    둘째. 업무의 그룹 또는 연결 즉 프로세스 위주로 수행 업무에 관련된 전체 업무를 연동시킨다면 즉 회계관리-전자결재-지급처리-ERP반영 등 수행 업무를 진행하는데 적용/연관되는 모든 업무 및 시스템의 통합 및 관리위주로 시스템을 구축한다면 시스템 연동 및 통제가 가능하고 쉬운 EAI 기반이 유리합니다.

     

    그리고 어떤 기준으로 BPMS 을 활용할 것인지를 결정하십시요.

    첫째. BPMS 의 역활이 무엇이냐? (하나의 업무 통제냐?, 아님 그 업무와 연관된 다른 업무 및 시스템의 통제까지냐?)

    둘째. 향후 BPMS 의 활용성은 무엇이냐? (구축 대상 시스템만을 위한것인지?  아님 향후 확장되고 만들어지는 모든 시스템의 통제인지?)

    셋째. 미래 기업의 전산 운영 계획 및 정책은 어떻게 되는지? (SOA 체계의 Infra 를 구축할것인지? 지금의 체계를 유지 할 것인지? )

     

    이전에 그룹별 특화된 분야는 은행/금융권에서는 단위업무 위주의 수행시스템이 많은 관계로 주로 Workflow 기반을 도입하였고 시스템이 많은 대기업등에서 연결/연관된 업무가 많은 업무관리시스템을 구축시에는 EAI 기반으로 구축하였는데 지금은 그것이 절대적 기준이나 의미가 되지는 않습니다.

    'BIZTALK > DEFINITION' 카테고리의 다른 글

    SOA와 EAI  (0) 2009.12.22
    EAI 연동방안의 차이점  (0) 2009.12.22
    EAI와 ERP의 차이점  (0) 2009.12.22
    EAI(Enterprise Application Integration)란?  (0) 2009.12.22
    Explaining the BizTalk Architecture  (0) 2009.09.02
    posted by 방랑군 2009. 12. 22. 15:06
    EAI는 기업내의 컴퓨터 애플리케이션들을 현대화하고, 통합하고, 조정하는 것을 목표로 세운 계획, 방법 및 도구 등을 일컫는 비즈니스 컴퓨팅 용어이다. 대체로, 기업들은 오래 전부터 사용해오는 기존의 응용프로그램들과 데이터베이스를 가지고 있으며, 여기에 기능을 추가하거나, 또는 인터넷, 전자상거래, 엑스트라넷 및 기타 다른 기술들을 이용하는 새로운 애플리케이션으로 바꾸어나가는 동안, 기존의 것들을 계속해서 사용하기 원한다. EAI는 기업의 비즈니스와 애플리케이션의 새롭고 통합적인 시각을 개발하고, 기존의 애플리케이션들이 새로운 시각 내에 어떻게 맞추어지는지를 확인하고, 또 새로운 애플리케이션과 데이터를 추가하는 동안 이미 존재하는 것들을 효과적으로 재 사용할 수 있는 방법을 고안하는 등의 활동을 포함할 수 있다. 

    EAI는 객체지향 프로그래밍, 분산처리, CORBA나 COM+와 같은 메시지 브로커 등을 사용한 다중 플랫폼 프로그램 교신, 새로운 목표에 맞추기 위한 ERP의 수정, 공통 데이터베이스를 이용한 기업내의 콘텐츠와 XML로 구현된 데이터 표준의 배포, 미들웨어, 메시지 큐잉, 그리고 기타의 접근방법 등과 같은 방법론들을 포함한다.

    'BIZTALK > DEFINITION' 카테고리의 다른 글

    SOA와 EAI  (0) 2009.12.22
    EAI 연동방안의 차이점  (0) 2009.12.22
    EAI와 ERP의 차이점  (0) 2009.12.22
    순수(Pure-Play) BPM[WorkFlow BPM]과 EAI 기반 BPM 의 차이  (0) 2009.12.22
    Explaining the BizTalk Architecture  (0) 2009.09.02
    posted by 방랑군 2009. 12. 21. 13:13


    GlobalTrackingOption 

    1 : 트랙킹 데이타 쌓이게 한다. [DEFAULT]
    0 : 트랙킹 데이타 안 쌓이게 한다. 
    posted by 방랑군 2009. 12. 11. 16:55



    AP.NET Connector 2.0의 한계

    SAP에서 제공하는 Connector는 크게 Java를 위한 SAP JCo와 닷넷을 위한 SAP NCo 두가지로 나뉘어 진다. SAP Nco는 SAP.NET Connector의 약자인데, 일반적으로 배포되지는 않고 SAP 개발자 네트워크에 접속할 수 있는 인증된 사용자를 통하여 받을 수 있다.

    작년에 SAP 연동할 일이 있어서 사용했던 것이 바로 SAP.NET Connector 2.0버전이었는데, 몇가지 단점을 가지고 있다. 첫번째가 Visual Studio 2003 에서만 사용할 수 있다는 점이고 두번째가 속도가 느리다는 점이다.

    두번째 속도가 느린점이야, 서버를 액세스하고 클래스를 만들때 까지만 참으면 되기 때문에 무시하고 넘어갈 수 있지만 Visual Studio 2003 에서만 사용할 수 있다는 점은 2005 버전으로 개발자들의 이동이 많이 이루어진 현 시점에서 그닥 반가운 이야기는 아닐거라고 생각이 든다.

    2005 버전은 안나오는가?

    사실 Visual Studio 2005 버전이 나온지도 꽤 되었기 때문에 이쯤되면 SAP.NET Connector 3.0 정도의 이름으로 VS 2005를 지원하는 개선된 버전이 나와야 하는 것이 아닌가 싶은데 전혀 소식은 없다. 여전히 자료 검색을 해보면 VS 2003에서 프록시 라이브러리를 만들어서 VS 2005에 사용하는 방법만이 배포되고 있다. using_sap_connector_for_ms_.net_in_microsoft_visual_studio_2005.pdf

    대안은 없는가?

    당연히 대안이 있다. 코드프로젝트(http://www.codeproject.com)에서 SAP 관련 프로젝트들을 검색하던 도중 평점이 상당히 안좋은 상태로 코드 공개도 안하면서 어디다가 상업적인 목적의 Trial을 올리냐고 욕을 먹던 친구를 발견했으니 회사 이름부터 현명함이 느껴지는 Softwise ! (http://www.softwise.com.ar, ar은 아르헨티나의 AR이던가?)

    웹사이트에서 배포되는 버전은 30일 Trial 버전(http://www.softwise.com.ar/files/Softwise.SAPExplorer.Trial.rar)이지만 구매 가격도 그닥 비싸지 않아서 개발자 1명에 USD로 150 달러에 구매가 가능하다. 최근에 프로젝트용으로 구매했던 Dundas Chart 컴포넌트가 1천만원에 달했던것에 비하자면 새발의 피라 할만한 금액이다. (사이트 라이센스도 1천불을 넘지 않는다)

    사실, SAP Connector가 하는일이 특별한 것도 없는데 비싼것 아니냐 라고 하실지 모르겠지만 VS 2003에서 코드 만들어서 VS 2005에 옮기는 삽질을 하다보면 저정도 가격은 지불할 만한 가격이 아닌가? 라는 생각이 들 것이다.

    편리한가?

    SAP.NET Connector 2.0을 VS 2003에서 써본 사람이라면 "하던 그대로" 쓰면 된다. 그만큼 기존 사용자들을 위한 배려라고 이해하면 좋지 않을까 싶다. 오히려 VS 2005의 특성 몇가지를 적극 활용하면서 사용은 더욱 편리해 졌다고 생각된다. 

    애드인 형태로 배포되기 때문에 기존의 서버 탐색기, 솔루션 탐색기등과 같은 형태로 사용이 가능하다. 웹 프로젝트 같은 경우 APP_CODE 폴더 아래에 프록시 코드를 만들어 주기 때문에 프로젝트 어디서든 USING 문 하나 쓰지 않고 손쉽게 사용이 가능하다.

    끝으로

    개발사의 말에 따르면 SAP.NET Connector의 XSLT 파일을 분석해서 Managed C# 코드만으로 프로그램을 개발했다고 한다. 대단하고 한편으로 부러울 따름이다. 혁신적인 소프트웨어나 서비스는 일상에서 느껴지는 "불편"을 개선한 것이라고 하지 않았던가. 그런 불편을 감수하고 느냥 썼던 NoPD는 조금 문제가 있는 것 처럼 느껴져 괜히 작아지는 느낌이다.

    어찌되었건 VS 2005에서 SAP 프로젝트를 진행하는 사람들에게 큰 도움이 될 것 같아서 소개해보았다. 30일간의 Trial 기간동안 필요한 모든 프록시 코드를 만들어 두고, 지속적으로 액면상 "무료"로 써볼까 한다 ^^;;; (아주 안좋은 마인드다 ;;)

    - NoPD -

    posted by 방랑군 2009. 11. 30. 14:20


    Version 10.15.8078. 

    Download it MsgBoxViewer10_15.zip

     

    New Features:

    - New query in “Server Info” category: “NET Config files” on all BT servers - not checked by default
    - New query in “Server Info”: “Running Processes” on all servers
    - New query in “Advanced DB Info” category: “Tracking tables Sequence Number”  -  not checked by default
    - New query in “Advanced DB Info” category:  “Tracking tables Sequence Number gaps” - not checked by default
    - New query in “Advanced DB Info” category : “Tracking tables Sequence Large BLOBs” - not checked by default
    - Provides a rule raising a warning if large table “NotEqualPredicateTables” found (known issue)
    - Provides additional EventsLog rules
    - Improves MsgBox Database naming convention in some Summary Report categories to be unique in multiple MsgBox scenarios
    - Provides “Total Q rows” entry in the “MsgBox Table” Summary Report category
    - "Current Error Log" query is modified to list entries in Descendant order
    - Provides some rules to the "Current Error Log" query to check for Disk space errors, Db Integrity or Fatal errors, and raise warnings if   found
    - "Error Log.1" request in now moved into its dedicated query  - not Checked by default
    - Host instance "Start time" is now added in Topology Report "Running Host instance" category
    - System Variables are added in Topology Report

     

    Version 10.15. 

    Download it : MsgBoxViewer10_15.zip

     

    New features:

    - Can export now into MBV Extension File custom rules created in MBV gui ("Export" button present in the Rule Dialog in MBV gui)
    - Get Artefacts per Host
    - Get  COM+ rollup version from COM+ & MSDTC modules loaded in BizTalk instances and from the “Important software Layer” query
      and add it in the Topology Report
    - Get SQL ERROR LOGs
    - Get LanManWorkstations parameters of all Servers
    - Get Config File of all BT servers
    - Get also the list of Stopped services on all servers, raise warning if some BizTalk related services are stopped (EDI, Rules update, etc…) and add this list in the Topçology Report
    - Get BAM Portal  config file
    - Get BAMQueryService  config file
    - Get BAMMgmtService Config File
    - Get RPC Settings and Internet Port range on all Servers if found
    - Get File list of all BT HotFixes installed on all BT Servers
    - Include also in the Perfmon Log query the “Process” counters for all running BTSNTSVCx.EXE and RUNTIMEAGENT.EXE 
    - Select now by  default "Error and Warning" as type of events to retrieve in the Event Log Query
    - Changed DTC Settings and CID duplication queries to be a single VBS query and manage x64 targeded servers (so it should target correctly this time remote x64 registries)
    - Check for “FailureActions” changes in BizTalk Services (default  is “Restart Service”)
    - Check when max size of a DB file is soon reached (based on his growth) and raise warning if it is 
    - Add  SQL Servers Disk Infos in Topology with Disk  types, Capacity, and FreeSpace
    - Populate more statistics in the “BizTalk group” category in the Summary Report to reflect very quickly number of BT Servers, SQL ones, 
      DBs,  MsgBoxes, RL, send Ports, pipelines,  ports, etc…
    - Identify and include more software versions in the Topology Report  (WCF adapter, MQS client layer, Oracle client layer, SAP client layer, etc..) 
    - For BT 2009, add UDDI Db in list of Dbs analyzed  if its location is found in registry in the BTS running MBV
    - Detect when SMS agent is running and raise a warning suggesting to use latest version of Mgmt Pack (risk of 100 CPU% wiyh previous version of the BizTalk Mgmt Pack)
    - Detect if some BizTalk related  services were stopped on BT servers (MSDTC, ENTSSO, EDI, Rule Engine)
    - Raise "not supported" warning if W2K8 R2 is detected
    - Fixed bug when generating temp .VBS file with path having spaces
    - Fixed bug whene generating temp .BAT file with a long filename
    - Checks for non unique document namespaces and raise a warning if found

    Posted: Tuesday, December 18, 2007 9:49 PM by jpierauc
    Attachment(s): MsgBoxViewer10_15.zip

    Comments

    Jean-Paul Smit said: 

    On a blogpost by Yossi Dahan I read about a BizTalk tool I didn&#39;t know about: MsgBoxViewer Via Google

    # May 6, 2008 7:55 AM

    EAI world! said: 

    Cuando necesitamos conocer y/o predecir del comportamiento de nuestro entorno de BizTalk Server entonces,

    posted by 방랑군 2009. 11. 30. 14:19


    이 페이지에서

    요약

    Microsoft BizTalk Server 데이터베이스 및 데이터베이스 상태를 성공적인 BizTalk Server 메시징 환경에 대한 매우 중요한 역할을 합니다. 이 문서에서는 BizTalk Server 데이터베이스를 사용하여 작업할 때 고려해야 할 중요한 사항을 설명합니다. 이러한 고려 사항은 다음과 같습니다.
    • 통계 자동 업데이트 및 자동 통계 만들기 Microsoft SQL Server 옵션을 해제해야 합니다.
    • 병렬 속성의 최대 학위 올바르게 설정해야 합니다.
    • 확인할 때 BizTalk Server가 인덱스를 다시 만들 수 있습니다.
    • 잠금, 교착 상태, 또는 차단이 발생할 수 있습니다.
    • 큰 데이터베이스 또는 테이블을 문제가 발생할 수 있습니다.
    • BizTalk SQL Server 에이전트 작업
    • 서비스 인스턴스는 일시 중단할 수 있습니다.
    • SQL Server 및 BizTalk Server 성능 문제가 발생할 수 있습니다.
    • BizTalk Server 에서 최선의 방법을 따라야 합니다.

    소개

    이 문서에서는 BizTalk Server 데이터베이스를 유지 관리하는 방법 및 BizTalk Server 데이터베이스 문제를 해결하는 방법에 대해 설명합니다.

    추가 정보

    알려진된 문제

    통계 자동 업데이트 및 자동 통계 만들기 옵션을 사용하지 않도록 설정해야 합니다.

    BizTalkMsgBoxDb 데이터베이스에서 자동 통계 만들기 및 통계 자동 업데이트 옵션을 해제해야 합니다. 다음 저장된 프로시저를 실행할 SQL Server에서 이러한 설정을 사용할 수 있는지 여부를 확인하려면:
    exec sp_dboption 'BizTalkMsgBoxDB', 'auto create statistics'
    exec sp_dboption 'BizTalkMsgBoxDB', 'auto update statistics'
    
    끄기"." CurrentSetting 설정을 설정해야 합니다 이 설정은 "시" 로 설정되어 있으면, SQL Server에서 다음 저장된 프로시저를 실행하여 해제할:
    exec sp_dboption 'BizTalkMsgBoxDB', 'auto create statistics', 'off'
    exec sp_dboption 'BizTalkMsgBoxDB', 'auto update statistics', 'off'
    
    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    917845  차단이 발생할 조건, 또는 다른 SQL Server 문제를 BizTalkMsgBoxDb 데이터베이스 BizTalk Server 2006 또는 BizTalk Server 2004 연결하려고 하면 교착 상태
    912262  자동 업데이트 통계 옵션을 자동 통계 옵션을 만들고 BizTalk Server 2004 또는 BizTalk Server 2006 BizTalkMsgBoxDB 데이터베이스를 호스팅하는 SQL Server 2000 또는 SQL Server 2005 데이터베이스 인스턴스에서 병렬 설정이 해제되어

    병렬 property최대 학위 올바르게 설정해야 합니다.

    SQL Server를 실행 중이고 BizTalkMsgBoxDb 데이터베이스를 호스팅하는 컴퓨터에서 최대 학위 병렬 run_value 및 config_value 속성의 값을 1로 설정하십시오. 저장 프로시저에 대해 마스터 병렬 처리 설정 최대 학위 확인하려면 다음을 실행합니다 SQL Server 에서 데이터베이스: run_value 및 config_value 속성 값을 1로 설정된 경우 SQL Server에서
    exec sp_configure 'max degree of parallelism'
    다음 저장된 프로시저를 실행할:
    exec sp_configure 'max degree of parallelism', '1'
    reconfigure with override
    
    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    899000  BizTalk Server를 구성할 때 SQL Server 인스턴스에 대한 병렬 처리 설정
    917845  차단이 발생할 조건, 또는 다른 SQL Server 문제를 BizTalkMsgBoxDb 데이터베이스 BizTalk Server 2006 또는 BizTalk Server 2004 연결하려고 하면 교착 상태

    확인할 때 BizTalk Server가 인덱스를 다시 만들 수 있습니다

    대부분의 BizTalk Server 인덱스에는 클러스터된 (인덱스 ID: 1). DBCC SHOWCONTIG 문을 BizTalk Server 테이블의 조각화 정보를 표시할 수 있습니다. 

    BizTalk Server 인덱스의 GUID를 기반으로 합니다. 따라서 일반적으로 조각화가 발생합니다. DBCC SHOWCONTIG를 문에 의해 반환된 검색 밀도 값이 30% 미만인 경우 가동 중지 시간 동안 BizTalk Server 인덱스는 다시 작성할 수 있습니다. 

    BizTalk Server 테이블이 많은 데이터 형식 정의를 사용하는 열이 포함되어 있습니다. 이러한 열은 온라인 인덱싱을 수행할 수 없습니다. 따라서 BizTalk Server 데이터를 처리하는 동안 BizTalk Server 인덱스를 결코 다시 합니다. 

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    917845  차단이 발생할 조건, 또는 다른 SQL Server 문제를 BizTalkMsgBoxDb 데이터베이스 BizTalk Server 2006 또는 BizTalk Server 2004 연결하려고 하면 교착 상태
    DBCC SHOWCONTIG를 문을 출력을 분석하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.

    잠금, 교착 상태, 또는 차단이 발생할 수 있습니다.

    일반적으로, 잠금 및 블록 BizTalk Server 환경에서 발생합니다. 그러나 이러한 잠금 또는 블록 오랫동안 계속 수행할지 않습니다. 따라서, 차단 및 교착 상태는 잠재적인 문제를 나타냅니다.

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    917845  차단이 발생할 조건, 또는 다른 SQL Server 문제를 BizTalkMsgBoxDb 데이터베이스 BizTalk Server 2006 또는 BizTalk Server 2004 연결하려고 하면 교착 상태

    큰 데이터베이스 또는 테이블을 문제가 발생할 수 있습니다.

    BizTalkMsgBoxDb 데이터베이스 5 GB 보다 큰 경우 문제가 발생할 수 보았습니다. 이상적으로는 BizTalkMsgBoxDb 데이터베이스의 모든 데이터를 보유하는 수 합니다지 않습니다. 데이터 처리 또는 BizTalkDTADb 데이터베이스로 이동할 때까지 BizTalkMsgBoxDb 데이터베이스 버퍼를 간주해야 합니다. 

    강력한 SQL Server 백 엔드 및 많은 긴 오케스트레이션 시 사용하는 환경을 5 GB 보다 큰 BizTalkMsgBoxDb 데이터베이스가 있을 수 있습니다.

    장기 실행 오케스트레이션 사용하는 대용량 환경의 5 GB 이상의 훨씬 작은 BizTalkMsgBoxDb 데이터베이스에 있어야 합니다.

    BizTalkDTADb 데이터베이스 집합 크기를 있지 않습니다. 그러나 쿼리 성능이 저하되면, 데이터베이스가 너무 큰 것 같습니다. 일반적으로, 20 GB 15GB은 너무 커서 간주됩니다. 큰 BizTalk Server 데이터베이스를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
    • BizTalkMsgBoxDb 데이터베이스 계속해서 커집니다. 그러나 로그 파일과 데이터 크기가 큰 남아 있습니다.
    • BizTalk Server 경우에도 간단한 메시지 흐름 시나리오를 처리하는 데 평소보다 시간이 더 걸립니다.
    • 상태 및 활동 추적 (HAT) 평상시보다 시간이 더 걸릴 쿼리와 시간이 초과될 수 있습니다.
    • 데이터베이스 로그 파일에 절대 잘립니다.
    • BizTalk SQL Server 에이전트 작업을 평소보다 느리게 실행됩니다.
    • 일부 테이블 훨씬 큰 수 또는 행이 너무 일반적인 테이블 크기를 비교하여 있습니다.
    데이터베이스를 여러 가지 이유로 커질 수 있습니다. 이러한 이유는 다음과 같습니다.
    • BizTalk SQL Server 에이전트 작업을 실행하지 않는
    • 일시 중단된 인스턴스 수가 많은
    • 디스크 오류
    • 추적
    • 조절
    • SQL Server 성능
    • 네트워크 대기 시간
    사용자 환경에서 데이터 문제가 발생하는지 여부를 확인하려면 예상한 알고 있어야 합니다.

    기본적으로 추적 기본 호스트에서 사용할 수 있습니다. BizTalk은 호스트 추적 허용 옵션이 있는 단일 호스트를 확인할 수 있어야 합니다. 추적을 사용하면 추적, 추적 데이터 디코딩 서비스 (TDDS) 이동합니다 BizTalkMsgBoxDb 데이터베이스의 데이터를 이벤트 BizTalkDTADb 데이터베이스에. 추적 호스트를 중지하면 TDDS BizTalkDTADb 데이터베이스로 데이터를 이동하는 및 TrackingData_x_x BizTalkMsgBoxDb 데이터베이스의 테이블을 증가합니다. 

    추적 하나의 호스트에 지정하는 것이 좋습니다. TDDS에서 대용량 시나리오에서 새 추적 이벤트를 유지 관리할 수 있도록 단일 추적 호스트 여러 인스턴스를 만들 수 있습니다. 하나 이상의 추적 호스트 있어야 합니다.

    테이블에 너무 많은 행이 있을 수 있습니다. 너무 많은 행 없음 집합 수가 있습니다. 또한 이 행 수를 테이블에 저장되는 데이터 종류에 의해 달라집니다. 예를 들어, 1 백만 개 이상의 행이 있을 것입니다 dta_DebugTrace 테이블에 너무 많은 행이 있습니다. 200,000 두 개 이상의 행이 있을 것입니다 HostName Q_Suspended 테이블에 너무 많은 행이 있습니다.

    올바른 BizTalk SQL Server 에이전트 작업을 사용하십시오.

    BizTalk SQL Server 에이전트 작업을 BizTalk Server 데이터베이스를 관리하는 높은 성능을 유지하는 데 중요합니다.

    SQL Server 에이전트 백업 BizTalk Server BizTalk Server 데이터베이스를 백업하려면 지원되는 유일한 방법은 작업입니다. 이 작업의 모든 BizTalk Server 데이터베이스를 전체 복구 모델 사용하도록 설정할 수 있어야 합니다. 이 작업에 정상 BizTalk Server 환경에 대해 구성해야 합니다. SQL Server 메서드를 사용하여 SQL Server 서비스가 중지된 경우 및 모든 BizTalk Server 프로세스가 중지된 경우 BizTalk Server 데이터베이스를 백업하는 데 사용할 수 있습니다. 

    MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업 무한히 실행됩니다. 따라서 SQL Server 에이전트 작업 기록을 절대로 성공적인 완료를 표시합니다. 오류가 발생할 경우 작업 1분 내에 다시 시작되고 계속 무한히 실행됩니다. 따라서 오류를 안전하게 무시할 수 있습니다. 또한 작업 기록을 지울 수 있습니다. 경우에만 이 작업을 지속적으로 오류가 발생하여 다시 작업 기록을 보고하는 경우 고려해야 합니다. 

    MessageBox_Message_Cleanup_BizTalkMsgBoxDb SQL Server 에이전트 작업에 의해 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 작업을 시작할 때문에 사용하면 합니다 유일한 BizTalk Server 작업을 것입니다.

    DTA 제거 및 보관 SQL Server 에이전트 작업 BizTalkDTADb 데이터베이스 제거 및 추적된 메시지 보관을 유지할 수 있습니다. 이 작업은 테이블의 모든 행을 읽고 레코드를 제거 여부를 확인하는 데 시간 스탬프를 비교합니다.

    MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업 제외한 모든 BizTalk SQL Server 에이전트 작업을 성공적으로 실행되고 있어야 합니다.

    모든 BizTalk Server SQL Server 에이전트 작업의 설명을 보려면 다음 MSDN) Microsoft 소프트웨어 개발자 네트워크 (웹 사이트를 방문하십시오. 모든 BizTalk Server 2004 SQL Server 에이전트 작업에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    919776  BizTalk Server 2004 SQL Server 에이전트 작업에 대한 설명

    서비스 인스턴스는 일시 중단될 수 있다

    서비스 인스턴스는 일시 중단된 (다시 시작 가능) 또는 (중단되어) 일시 중단할 수 있습니다. 이러한 서비스 인스턴스 메시징, 오케스트레이션, 포트 수 있습니다. 

    서비스 인스턴스 두 종류의 데이터베이스 unnecessarily.These 인스턴스를 종료할 수 증가 BizTalkMsgBoxDb을 할 수 있습니다. 어떤 방법을 사용하는 BizTalk 버전에 따라 다음 표에 나와 있습니다.
    그룹 허브 모자 Terminate.vbs
    BizTalk Server 2009년 아니오
    BizTalk Server 2006 R2
    BizTalk Server 2006
    BizTalk Server 2004 아니오
    Terminate.vbs 스크립트에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. 그룹 허브 페이지 캐싱 인스턴스가 나타나지 않는 및 일시 중단 또는 캐싱 인스턴스를 종료할 수 없습니다. 이 제한 테이블 증가 일반적인 원인입니다. BizTalk Server 2006의 캐시 서비스 인스턴스에 대한 새 좀비 메시지를 방지하기 위해 Microsoft 기술 자료 문서 936536 설명되어 있는 핫픽스를 적용하십시오. BizTalk Server 2006 R2 및 나중에 이 문제가 해결되었습니다.

    참고 좀비 메시지가 있었지만 라우팅되지 않은 소비되는 메시지입니다.

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    936536  FIX: BizTalk Server 2006 성능 문제가 발생할 및 조절 메시지가 성능 로그 파일에 기록됩니다.
    BizTalk Server 호스트 인스턴스가 종료되면 캐싱 인스턴스를 제거할 수 없습니다. BizTalk Server 2006과 BizTalk Server 2006 R2이 이 문제를 해결하려면 Microsoft 기술 자료 문서 944426 설명되어 있는 핫픽스를 적용하십시오. 이 문제는 BizTalk Server 2009년 해결되었습니다.

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    944426  FIX: 고아 캐시 인스턴스가 BizTalk Server 2006의 BizTalkMsgBoxDb 데이터베이스 인스턴스 테이블의 빌드할 수 있습니다.
    또 다른 일반적인 문제는 라우팅 실패 보고서 (RFRs) BizTalkHostQ 및 BizTalkHostQ_Suspended 테이블을 만들 수 있다는 점입니다. 해당 RFRs 제거 및 증가 BizTalkMsgBoxDb 데이터베이스에 이 동작이 발생할 수 있습니다. BizTalk Server 2006의 이 문제를 해결하려면 Microsoft 기술 자료 문서 941690 설명되어 있는 핫픽스를 적용하십시오. BizTalk Server 2006 R2 및 나중에 이 문제가 해결되었습니다. 

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    941690  FIX: <biztalkhostname>Q_Suspended 테이블의 BizTalk Server 2006 서버의 라우팅 오류 보고서 제거되지 않지만
    용어 "고아" 메시지와 메시지를 "좀비" 자주 같은 의미로 사용됩니다. 

    고아 메시지는 연관된 인스턴스가 없는 메시지입니다. 예를 들어, 라우팅 오류 보고서 고아 메시지입니다.

    좀비 메시지가 있었지만 라우팅되지 않은 소비되는 메시지입니다. 예를 들어, 메시지는 호송 오케스트레이션 배달되었습니다. 그러나 호송 오케스트레이션 다른 코드 경로를 아래로 진행되었습니다. 오케스트레이션 인스턴스가 완료됩니다. 메시지가 삭제되고 좀비 메시지로 이제 알려져 있습니다. 

    좀비 메시지를 설명을 보려면 다음 MSDN 웹 사이트를 방문하십시오.

    SQL Server 및 BizTalk Server 성능 문제가 발생할 수 있다

    BizTalk Server 짧고 매우 빠른 트랜잭션 수백을 SQL Server에 1분 내에 있습니다. SQL Server이 이 활동 유지할 수 없는 경우 BizTalk Server 성능 문제가 발생할 수 있습니다. 실제 디스크 성능 개체는 읽기 평균 디스크 초, 평균 디스크 초/전송 및 평균 디스크 초/쓰기 성능 모니터 카운터를 모니터링하십시오. 최적 값은 미만의 10 밀리초 (ms) 입니다. 20ms 또는 값은 성능이 간주됩니다.

    SQL Server 성능에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오. BizTalk Server 2004 데이터베이스 가용성에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. BizTalk Server 2006 데이터베이스 가용성에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. 추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    298475  SQL Server 성능 문제를 해결하는 방법
    271509  SQL Server 2000 및 SQL Server 2005 차단 모니터링하는 방법

    BizTalk Server에서 최상의 방법

    SQL 서버에서 SQL Server 에이전트를 시작해야 합니다. SQL Server 에이전트가 중지되었을 때 데이터베이스 유지 관리를 담당하는 기본 제공 BizTalk SQL Server 에이전트 작업을 실행할 수 없습니다. 이 동작으로 인해 데이터베이스 증가 및 이 성장 성능 문제가 발생할 수 있습니다. BizTalk Server 데이터베이스 유지 관리 BizTalk Server 2004 서비스 팩 2(SP2) 것보다 최신 버전의 BizTalk Server 크게 향상되었습니다. 

    SQL Server LDF 및 MDF 파일을 별도의 드라이브에 넣습니다. BizTalkMsgBoxDb 및 BizTalkDTADb 데이터베이스에 대한 LDF 및 MDF 파일이 같은 드라이브에 있는 경우 디스크 경합이 발생할 수 있습니다.

    추적 메시지 본문에서 활용할 경우 이 기능을 사용하지 마십시오. 자주, 개발 및 솔루션을 문제를 해결하는 동안 메시지 본문을 추적을 사용하도록 설정하고 싶을 수 있습니다. 이렇게 하면 끝나면 메시지 본문 추적 사용하지 않도록 확인하십시오. 추적 메시지 본문에 사용하면, BizTalk Server 데이터베이스를 커집니다. 만들어야 비즈니스 있는 경우 메시지 본문 추적 사용, TrackedMessages_Copy_BizTalkMsgBoxDb 및 DTA 제거 및 보관 SQL Server 에이전트 작업이 성공적으로 실행 중인지 확인해야 합니다.

    일반적으로 더 작은 트랜잭션 로그를 더 나은 성능을 발생합니다. 트랜잭션 로그를 작게 유지하려면 백업 BizTalk Server SQL Server 에이전트 작업을 더 자주 실행하도록 구성하십시오. 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. 해당 BizTalk Server 2006 최상의 방법 분석 (BPA) 기존 BizTalk Server 배포를 평가할 수 있습니다. 해당 BPA 수많은 데이터베이스 관련 검사를 수행합니다. 해당 BPA에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.

    문제 해결

    문제 해결 단계를 BizTalk Server SQL Server 데이터베이스에 대한 최상의 블로킹 또는 교착 상태 같은 데이터베이스 문제 종류에 따라 달라집니다. BizTalk Server 데이터베이스 문제를 해결하려면 다음과 같이 하십시오.

    1단계: 사용 및 필요한 모든 BizTalk SQL Server 에이전트 작업을 실행하십시오.

    MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 작업 제외한 모든 BizTalk SQL Server 에이전트 작업을 성공적으로 설정된 실행 중이어야 합니다. 다른 작업 사용 안 함으로 설정하지 마십시오. 

    오류가 발생할 경우 기록 보기 옵션을 SQL Server 오류 정보를 볼 수 있으며 그에 따라 실패 문제 해결 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 에이전트 작업 무한히 실행되도록 합니다. 따라서 사용자가 경우에만 작업을 지속적으로 오류가 발생하여 다시 작업 기록을 보고하는 경우 관심을 합니다.

    2단계: MsgBoxViewer 도구를 사용하십시오.

    문제를 재현하는 동안 MsgBoxViewer 데이터를 수집하십시오. 

    MsgBoxViewer 도구에 대한 테이블 크기 및 행 수를 자세한 정보를 가진 HTML 보고서를 제공하므로 문제 해결에 유용합니다. 보고서를 또한 BizTalk Server 조절 여부를 확인하는 데 도움이 될 수 있습니다. 또한 이 도구는 BizTalk Server 데이터베이스 및 BizTalk Server 구성에 대한 스냅샷을 제공합니다. 

    MsgBoxViewer 도구를 사용할 때 선택 모든 쿼리에 대한 완전한 분석 선택적 쿼리 탭을 눌러 확인하십시오. 

    MsgBoxViewer 도구를 다운로드하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오. BizTalk Server 조절에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. BizTalk Server 보통 때보다 느리게, MsgBoxViewer 도구를 실행할 실행 중일 때 모든 쿼리에 선택적 쿼리 탭을 선택합니다 클릭한 다음 모든 문제에 대해 생성된 HTML 보고서를 검토하십시오. 요약 보고서 섹션을 빨간색으로 노란색 및 잠재적인 문제 경고를 나열합니다. 

    또한 어떤 테이블에 가장 큰 수 및 대부분의 레코드가 확인하려면 출력 MsgBoxViewer 도구를 사용할 수 있습니다. 다음 표에서는 일반적으로 가장 큰 증가 BizTalk Server 테이블을 보여 줍니다. 이 데이터는 잠재적인 문제가 발생할 확인할 수 있습니다.
    테이블설명
    HostNameQ_Suspended 이 테이블은 특정 호스트에 대해 일시 중단된 인스턴스 관련된 메시지 스풀 테이블에 대한 참조를 포함합니다. BizTalkMsgBoxDb 데이터베이스 테이블입니다.
    HostNameQ 이 테이블은 특정 호스트와 연결되지 않는 일시 메시지 스풀 테이블에 대한 참조를 포함합니다. BizTalkMsgBoxDb 데이터베이스 테이블입니다.
    스풀 
    부분 
    조각
    이러한 테이블의 실제 메시지 데이터를 BizTalkMsgBoxDb 데이터베이스에 저장합니다.
    인스턴스 이 테이블은 모든 인스턴스 및 현재 상태 BizTalkMsgBoxDb 데이터베이스에 저장합니다.
    TrackingData_ x _ x 이 테이블은 추적된 이벤트를 TDDS에서 이벤트를 BizTalkDTADb 데이터베이스로 이동하는 BizTalkMsgBoxDb 데이터베이스에 저장합니다.
    Tracking_Fragments x
    Tracking_Parts x
    Tracking_Spool x
    BizTalkMsgBoxDb 및 BizTalkDTADb 데이터베이스에서 이러한 테이블을 각각 두 가지입니다. 온라인 상태인 및 다른 오프라인 상태입니다. 

    BizTalk Server 2004 SP2 에서 및 이후 버전에서 TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server 에이전트 작업 추적된 메시지 본문을 BizTalkDTADb 데이터베이스에서 이러한 테이블을 직접 이동합니다.

    BizTalk Server 2004 서비스 팩 1 (SP1) 및 이전 버전의 BizTalk Server TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server 에이전트 작업 추적된 메시지 본문을 BizTalkMsgBoxDb database.The TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server 에이전트 작업 이러한 테이블로 오프라인 테이블을 제거하고 테이블 온라인 작업 또한 온라인 테이블 오프라인 상태로 동안 있습니다 복사합니다.
    dta_ServiceInstances 이 표는 서비스 인스턴스에 대한 추적된 이벤트를 BizTalkDTADb 데이터베이스에 저장합니다. 이 테이블이 많은 경우 BizTalkDTADb 데이터베이스 가능성이 큽니다.
    dta_DebugTrace 이 테이블은 오케스트레이션 디버거 이벤트를 BizTalkDTADb 데이터베이스에 저장합니다.
    dta_MessageInOutEvents 이 테이블은 추적된 이벤트 메시지를 BizTalkDTADb 데이터베이스에 저장합니다. 이러한 추적된 이벤트 메시지는 메시지 컨텍스트 정보를 포함합니다.
    dta_ServiceInstanceExceptions 이 테이블은 일시 중단된 서비스 인스턴스 오류 정보를 BizTalkDTADb 데이터베이스에 저장합니다.
    다음 시나리오를 고려하십시오.
    HostNameQ_Suspended 테이블
    HostName Q_Suspended 테이블에 레코드가 여러 개 있을 경우 테이블 그룹 허브 페이지 또는 HAT를 나타나는 유효한 일시 중단된 인스턴스 수 있습니다. 이러한 인스턴스를 종료할 수 있습니다. 이러한 인스턴스가 있는 그룹 허브 페이지 또는 HAT를 의 인스턴스가 나타나지 않는 경우 인스턴스 또는 라우팅 오류 보고서 분리된 아마도 캐싱. 일시 중단된 인스턴스를 종료할 때 이 테이블의 항목 및 스풀 및 인스턴스 테이블의 해당 연결된 행을 정리합니다.
    HostNameQ: 테이블
    HostName Q 테이블에 레코드가 많은 경우 다음과 같은 종류의 인스턴스가 있을 수 있습니다.
    • 실행 준비 인스턴스
    • 활성 인스턴스
    • 디하이드레이션된 인스턴스
    BizTalk Server "" catch하고 인스턴스를 처리하는 데 시간이 필요합니다. 이 표에서는 들어오는 속도를 처리 나가는 처리 속도가 outpaces 때 커질 수 있습니다. 이 시나리오는 큰 BizTalkDTADb 데이터베이스 또는 SQL Server 디스크 지연 등의 다른 문제가 발생할 때 발생할 수 있습니다.
    스풀링하기에, 파트 및 테이블 조각 수
    스풀, 파트 및 조각 테이블에 레코드가 여러 개 있을 경우 디하이드레이션된, 또는 일시 중단된 메시지 수를 현재 활성화되어 있습니다. 크기, 부품 번호 및 이러한 테이블의 조각화 설정을 따라 단일 메시지를 이러한 모든 테이블을 생성할 수 있습니다. 각 메시지에는 스풀 테이블 정확히 하나의 행과 하나 이상의 파트 테이블의 행에 있습니다.
    인스턴스 테이블
    인스턴스 테이블에 남아 있게 많은 일시 중단된 인스턴스를 BizTalk 관리자 허용해서는 안 됩니다. 장기 실행 오케스트레이션 비즈니스 논리가 필요한 경우 디하이드레이션된 인스턴스가 많은 경우에만 유지되어야 합니다. 하나의 서비스 인스턴스가 스풀 테이블의 많은 메시지와 연결될 수 있습니다.
    TrackingData_ x _ x 테이블
    TrackingData_ x _ x 테이블을 큰 경우, 추적 호스트 (TDDS) 실행되고 있지 않거나 성공적으로 실행되고 있지 않습니다. 추적 인스턴스를 호스트하는 경우 실행, 이벤트 로그 및 오류 정보를 BizTalkDTADb 데이터베이스에서 TDDS_FailedTrackingData 테이블을 검토합니다.
    Tracking_Spool1 또는 Tracking_Spool2 테이블
    BizTalk Server 2004 SP1 및 BizTalk Server의 이전 버전에서 Tracking_Spool1 또는 Tracking_Spool2 테이블 커질 경우 TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server 에이전트 작업 활성화되어 있고 실행 중인지 확인하십시오. 

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    907661  Tracking_Spool1 또는 Tracking_Spool2 BiztalkMsgBoxDb 데이터베이스의 테이블을 BizTalk Server 2004 매우 커질 수
    BizTalk Server 2004 SP1 및 이전 버전의 BizTalk Server 대신 BizTalkMsgBoxDb 데이터베이스에서 추적된 메시지 본문을 제거하고 BizTalkDTADb 데이터베이스에 추적된 메시지 본문을 이동하는 것이 좋습니다. 

    자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
    dta_DebugTrace 테이블
    dta_DebugTrace 테이블의 많은 레코드가 있는 경우 사용 중인 또는 사용되고 오케스트레이션 디버깅. 오케스트레이션 디버깅 일반 작업에는 필요하지 않은 경우 오케스트레이션 디버깅을 사용하지 않도록 설정하십시오. 오케스트레이션 디버깅을 사용할 경우 또는 BizTalkMsgBoxDb 데이터베이스에서 백로그가 존재할 경우 dta_DebugTrace 테이블을 계속 TDDS 계속 이 데이터를 dta_DebugTrace 테이블로 이동하는 커질 수 있습니다. 

    전역 추적 기본적으로 사용할 수 있습니다. 전역 추적 필요하지 않으면 해제할 수 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 참고하시기 바랍니다: dta_DebugTrace 테이블 및 dta_messageInOutEvents BizTalkTrackingDb 데이터베이스에서 테이블의 너무 큰 경우 추적 호스트 중지 후 테이블을 수동으로 잘라낼 수 있습니다. BizTalk 2004 BizTalkDTADb 데이터베이스에서 dtav_FindMessageFacts 뷰의 dta_messageInOutEvents 테이블을 잘라내는 것을 방지합니다. 이 문제를 해결하려면 다음 이 단계를 수행하십시오.
    1. 추적 호스트 및 DTA 제거 및 보관 작업을 중지하십시오.
    2. dta_messageInOutEvents 테이블을 자를 경우 저장하고 dtav_FindMessageFacts 보기를 삭제하십시오. 이렇게 하려면 다음과 같이 하십시오.
      1. SQL Server에서 dtav_FindMessageFacts 보기를 BizTalkDTADb 데이터베이스에 액세스하십시오.
      2. dtav_FindMessageFacts 보기를 마우스 오른쪽 단추로 클릭하고 모든 작업 을 누른 다음 SQL 스크립트 생성 을 클릭하십시오. SQL 스크립트 생성 대화 상자를 열면 변경 내용이 없습니다 확인한 다음 확인 을 누릅니다.
      3. 파일 dtav_FindMessageFacts.sql 이름을 지정한 다음 저장 을 누릅니다.
      4. dtav_FindMessageFacts 뷰를 마우스 오른쪽 단추로 클릭한 다음 삭제 를 클릭하십시오. 모두 삭제 를 클릭하십시오.
    이제 테이블이나 테이블을 자를 수 있습니다. dta_messageInOutEvents 테이블을 자를 경우 dta_url 테이블을 자를 수도 합니다. BizTalk Server 2004 dta_url 테이블이 하나만 있습니다.

    작업을 마치면, dtav_FindMessageFacts 보기를 다시 만들려면 다음과 같이 하십시오.
    1. SQL Server에서 새 쿼리를 엽니다.
    2. 사용 가능한 데이터베이스 목록에서 BizTalkDTADb 데이터베이스를 선택하십시오.
    3. 저장된 dtav_FindMessageFacts.sql 스크립트를 실행하십시오. BizTalkDTADb 데이터베이스에서 뷰를 다시 만듭니다.
    추적 호스트 및 DTA 제거 및 보관 작업을 다시 시작하십시오.
    추적 데이터베이스 크기 조정 지침에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오.
    dta_ServiceInstanceExceptions 테이블
    dta_ServiceInstanceExceptions 테이블의 일반적으로 정기적으로 인스턴스를 일시 중단했습니다 환경에서 큰 됩니다.

    3단계: 교착 상태 시나리오는 조사

    교착 상태 시나리오에서 SQL Server에서 DBCC 추적이 있도록 교착 상태 정보를 SQLERROR 로그에 기록됩니다. 

    SQL Server 2005 에서 이상에서, 다음 문을 실행할:
    DBCC TRACEON (1222,-1)
    다음 문을 실행할 SQL Server 2000 위치:
    DBCC TRACEON (1204)
    또한 PSSDiag 유틸리티를 사용하여 잠금: 교착 상태 이벤트 및 잠금: 교착 상태 체인 이벤트 데이터를 수집합니다. 

    BizTalkMsgBoxDB 고용량, 높은 트랜잭션 온라인 트랜잭션 처리 (OLTP) 데이터베이스에 데이터베이스입니다. 교착 상태는 일부 예상 및 이 교착 상태는 BizTalk Server 엔진에서 내부적으로 처리됩니다. 이 문제가 발생하면 오류 로그에 오류가 나열됩니다. 교착 상태 시나리오는 조사할 때 교착 상태가 오류 이벤트 로그에 출력을 조사 중인 교착 상태가 상관될 합니다.

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    830232  PSSDIAG 데이터 컬렉션 유틸리티

    차단된 프로세스 단계 4: 위치

    SQL Server에서 활동 모니터 잠금 시스템 프로세스의 서버 프로세스 식별자 (SPID) 얻을 수 있습니다. 그런 다음 SQL 프로필러를 확인할 잠금 SPID가 실행 중인 SQL 문을 실행하십시오.

    SQL Server 에서 잠금 및 블로킹 문제를 해결하는 데 사용할 블로킹 스크립트를 모든 Transact-SQL 이벤트를 캡처하려면 PSSDiag 유틸리티를 사용하십시오. 

    SQL Server 2005 에서 이상에서, SPID 또는 SPID 지정한 임계값 이상 차단 확인하려면 차단된 프로세스 임계값 설정을 지정할 수 있습니다. 

    PSSDiag 유틸리티에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    830232  PSSDIAG 데이터 컬렉션 유틸리티
    차단된 프로세스 임계값에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. 참고 SQL Server 에서 차단 문제에 대한 잠금이 발생할 때 또는 Microsoft 고객기술지원부에 문의하는 것이 좋습니다. Microsoft 고객기술지원부에 올바른 PSSDiag 유틸리티를 옵션을 구성하는 데 도움이 될 수 있습니다.

    단계 5: BizTalk Server 2004 SP2 설치

    BizTalk Server 2004 SP1 제거 및 기능을 BizTalkDTADb 데이터베이스의 보관 없는 기본 제공이 있습니다. 이 기능은 BizTalk Server 2004 SP2에 포함되어 있습니다. 설치 프로그램이 BizTalkDTADb 데이터베이스를 삭제하는 때문에 BizTalkDTADb 데이터베이스 크기에 따라 BizTalk Server 2004 SP2 설치 시간이 걸릴 수 있습니다. 

    BizTalk Server 2004 서비스 팩 2를 설치할 때 발생할 수 있는 알려진된 문제에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    940519  BizTalk Server 2004 서비스 팩 2 ReadmeS.htm 파일에 설명되어 있는 알려진된 문제
    BizTalk Server 2004 SP2를 설치할 때 아래 이 단계를 따르는 것이 좋습니다.
    1. 다운로드 및 Microsoft 기술 자료 문서 894253 설명되어 있는 핫픽스를 적용하십시오. SQL Server 2000에서 Bts_tracking_shrinkexistingdatabase.sql 스크립트를 실행하려면 이 기술 자료 문서의 단계를 수행하십시오. 

      추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
      894253  FIX: dtasp_PruneTrackingdatabase() 저장된 프로시저를 BizTalk Server 2004 DTA 데이터베이스를 정리하는 데 많은 시간이 걸릴 수 있습니다.
    2. BizTalk Server 2004 SP2를 설치하십시오. 

      추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
      888751  BizTalk Server 2004 최신 서비스 팩을 구하는 방법

    모든 데이터 삭제

    데이터베이스가 너무 큰 경우 및 기본 방법은 모든 데이터를 삭제할 경우 데이터를 삭제할 수 있습니다.

    주의 이 메서드는 모든 환경에서 데이터가 중요한 비즈니스 또는 데이터가 필요한 곳에 사용하지 않습니다.

    BizTalkMsgBoxDb 데이터베이스 단계 제거

    추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
    924715  FIX: BizTalk Server 2006 테스트 환경에서 저장 프로시저를 사용하여 bts_CleanupMsgbox 실행하면 데이터 추적 데이터베이스에서 삭제할 메시지
    BizTalkMsgBoxDb 데이터베이스에서 데이터를 모두 삭제하려면 다음과 같이 하십시오.

    참고 이 작업은 모든 메시지를 삭제합니다. 프로덕션 환경에서 이러한 단계를 따르지 않습니다.
    1. 모든 BizTalk Server 데이터베이스를 백업하십시오.
    2. Drive Msgbox_cleanup_logic.sql 스크립트 복사: SQL Server BizTalk 200 x \Program Files\Microsoft \schema.
    3. 이 bts_CleanupMsgbox 저장 프로시저의 업데이트 BizTalkMsgBoxDb 데이터베이스에 대해 SQL 스크립트를 실행하십시오.
    4. 모든 BizTalk 호스트, 서비스 및 사용자 지정 격리된 어댑터를 중지하십시오. HTTP 또는 SOAP 어댑터를 사용하는 경우 IIS 서비스를 다시 시작하십시오.
    5. 모든 BizTalkMsgBoxDb 데이터베이스에 대해 bts_CleanupMsgbox 저장 프로시저를 실행하십시오.
    6. 모든 호스트 및 BizTalk Server 서비스를 다시 시작하십시오.

    BizTalkDTADb 데이터베이스 옵션 제거

    BizTalkDTADb 데이터베이스에서 데이터를 모두 삭제하려면 다음 방법 중 하나를 사용할 수 있습니다.

    참고 두 메서드 모두 모든 메시지를 삭제합니다.
    • 방법 1:
      1. 모든 BizTalk Server 데이터베이스를 백업하십시오.
      2. dtasp_PurgeAllCompletedTrackingData 저장 프로시저를 실행하십시오. 저장된 dtasp_PurgeAllCompletedTrackingData 절차에 대한 자세한 내용은 다음 MSDN 웹 사이트를 방문하십시오. 참고 이 작업은 완료된 모든 메시지를 삭제합니다.
    • 방법 2:
      1. 모든 BizTalk 데이터베이스를 백업하십시오.
      2. dtasp_CleanHMData 저장 프로시저를 실행하십시오. 제거해야 하는 불완전한 인스턴스가 많은 BizTalkDTADb 데이터베이스에 포함된 경우에만 이 옵션을 사용하십시오.

        이렇게 하려면 다음과 같이 하십시오.
        1. 모든 BizTalk 호스트, 서비스 및 사용자 지정 격리된 어댑터를 중지하십시오. HTTP 또는 SOAP 어댑터를 사용하는 경우 IIS 서비스를 다시 시작하십시오.
        2. BizTalkDTADb 데이터베이스에서 dtasp_CleanHMData 저장 프로시저를 실행하십시오.
        3. 모든 호스트 및 BizTalk Server 서비스를 다시 시작하십시오.
    BizTalk Server 2004 전용 단계
    BizTalk Server 2004의 BizTalkDTADb 데이터베이스에서 모든 데이터를 삭제하려면 다음과 같이 하십시오.

    참고 이 작업은 완료된 모든 메시지를 삭제합니다.
    1. 모든 BizTalk Server 데이터베이스를 백업하십시오.
    2. 모든 BizTalk 호스트, 서비스 및 사용자 지정 격리된 어댑터를 중지하십시오. HTTP 또는 SOAP 어댑터를 사용하는 경우 IIS 서비스를 다시 시작하십시오.
    3. 다운로드 및 Microsoft 기술 자료 문서 894253 설명되어 있는 핫픽스를 적용하십시오. SQL Server 2000에서 Bts_tracking_shrinkexistingdatabase.sql 스크립트를 실행하려면 이 기술 자료 문서의 단계를 수행하십시오. 

      추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
      894253  FIX: dtasp_PruneTrackingdatabase() 저장된 프로시저를 BizTalk Server 2004 DTA 데이터베이스를 정리하는 데 많은 시간이 걸릴 수 있습니다.
    4. 모든 호스트와 BizTalk 서비스를 다시 시작하십시오.
    참고 추적 데이터를 사용해야 하는 경우 BizTalkDTADb 데이터베이스를 다시 설정하는 다른 SQL Server 데이터베이스를 복원하고 원래 BizTalkDTADb 데이터베이스 제거. 

    MsgBoxViewer 데이터 또는 PSSDiag 출력을 분석하는 도움이 필요한 경우 Microsoft 고객기술지원부에 문의하십시오. 고객 지원 서비스 전화 번호 및 지원 비용에 대한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문하십시오. 참고 기술 지원 서비스에 문의하여 전에 MsgBoxViewer 데이터, PSSDiag 출력 및 업데이트된 이벤트 로그 (.evt 파일) 압축하십시오. 지원 엔지니어는 이러한 파일을 BizTalk Server에 보내야 할 수 있습니다.

    본 문서의 정보는 다음의 제품에 적용됩니다.
    • Microsoft BizTalk Server 2009 Enterprise
    • Microsoft BizTalk Server 2009 Developer
    • Microsoft BizTalk Server 2009 Standard
    • Microsoft BizTalk Server 2009 Branch
    • Microsoft BizTalk Server 2006 R2 Enterprise Edition
    • Microsoft BizTalk Server 2006 R2 Developer Edition
    • Microsoft BizTalk Server 2006 R2 Standard Edition
    • Microsoft BizTalk Server 2006 R2 Branch
    • Microsoft BizTalk Server 2006 Enterprise Edition
    • Microsoft BizTalk Server 2006 Developer Edition
    • Microsoft BizTalk Server 2006 Standard Edition
    • Microsoft BizTalk Server 2004 Enterprise Edition
    • Microsoft BizTalk Server 2004 Developer Edition
    • Microsoft BizTalk Server 2004 Standard Edition
    키워드: 
    kbmt kbpubtypekc kbinfo kbhowto KB952555 KbMtko
    기계 번역된 문서기계 번역된 문서
    중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
     
    posted by 방랑군 2009. 11. 29. 22:11

    Hi Nick,

    Last night I successfully truncate the BizTalkDTADb database. By the way, I found that views with SCHEMABINDING and truncate tablecommand work different in SQL 2000 and SQL 2005. When I tested the script on SQL 2005 there wasn't any issue, but SQL 2000 refused truncate a table without droping the views (that's probably why you did it).

    As a result, steps are:

    0. Before start, ensure you have got the database admin priveleges on the database

    1. Stop all BizTalk Server Host Instances

    2. Full backup BizTalkDTADb database (just in case)

    3. Make scripts to create views (MANDATORY)
        dbo.dtav_ServiceFacts
        dbo.dtav_MessageFacts
        dbo.dtav_FindMessageFacts

    4. Run SQL script:

    use BizTalkDTADb
    GO

    -- Drop the Views (before you perform this, ensure you take copies of these views!)
    -- unfortunately, it's necessary for SQL 2000, but you can skip it for SQL 2005
    Drop View dbo.dtav_ServiceFacts
    Drop View dbo.dtav_MessageFacts
    Drop View dbo.dtav_FindMessageFacts
    Go

    -- Truncate the necessary Tables
    Truncate Table dta_CallChain
    Truncate Table dta_DebugTrace
    Truncate Table dta_MessageInOutEvents

    Truncate Table dta_ServiceInstanceExceptions
    Truncate Table dta_ServiceInstances

    Truncate Table Tracking_Fragments1
    Truncate Table Tracking_Parts1
    Truncate Table Tracking_Spool1

    Truncate Table dta_MessageFieldValues

    -- end of the script

    5. Update statistics on BizTalkDTADb database

    -- update statistics
    exec sp_updatestats

    6. Run the saved scripts (see step 3) to recreate the dropped views from your own environment.

    7. Shrink BizTalkDTADb database (sometimes it doesn't work from GUI, so using sql command will help)

    -- shrink database
    dbcc shrinkdatabase (BizTalkDTADb, 10)

    8. Start BizTalk Server Host Instances

    9. Configure and enable SQL Agent job "DTA Purge and Archive" (to avoid over-growing the database in the future)

    P.S. The script above does not truncate Rule Engine related tables.

    Regards,

    Nick Busy

    'BIZTALK' 카테고리의 다른 글

    BizTalk Version  (0) 2009.12.28
    SOA(Service Oriented Architecture)란?  (0) 2009.12.22
    MS BizTalk Server 소개  (0) 2009.12.22
    미들웨어란 무엇인가?  (0) 2009.12.22
    Microsoft BizTalk ESB Toolkit  (0) 2009.10.05
    posted by 방랑군 2009. 11. 23. 19:32

    "Some forms of reality are so horrible we refuse to face them, unless we are trapped into it by comedy. To label any subject unsuitable for comedy is to admit defeat." -- Peter Sellers (1925 - 1980)

    In the Patterns and Practices Group's "Improving .NET Application Performance and Scalability", which is available in full text online and as a PDF download from the above link, as well as in softcover through MSPress and major booksellers, there are over 1000 pages and appendixes of detailed information about how to improve .NET application performance and scalability, written by the top experts in the business. One area that is both little understood and potentially confusing is the tuning of Internet Information Services 6.0.

    The skinny about all this is that the PAP group says the default settings shipped with IIS and the .NET Framework should be changed. They provide detailed information in pages 332 through 342 in Chapter 6 on ASP.NET, and they provide even more information in Chapter 17. I'll summarize some of the more important points here, since I know that, human nature being what it is, most people running IIS and reading this article probably have not waded through this lengthy but excellent publication. Once you see the quality of the information you can get from it, it may encourage you to do so; it is an investment of your time as a professional ASP.NET developer that I highly recommend. The fact that the book is made available free online by Microsoft should not in any way diminish its importance or value to developers who are interested in achieving the absolute best performance and scalability from their .NET Applications.

    NOTE:  This "helper" article focuses almost totally on the IIS-related issues and settings. However, Chapter 6 and additional information in the various checklists and in Chapter 17 address many other issues that are related to, but do not specifically involve IIS 6.0 settings. Some of these can be addressed at the machine.config level, others are "best practices" coding techniques, and some can be addressed in web.config. Paragraphs marked "Discussion" are my individual comments. The rest is (mostly) untouched snippets from the PAP publication itself.

    First, lets examine some of the "reduce contention" formula settings. All this information, and a lot more, is right in the book:

    Formula for Reducing Contention

    The formula for reducing contention can give you a good empirical start for tuning the ASP.NET thread pool. Consider using the Microsoft product group-recommended settings that are shown in Table 6.1 if the following conditions are true:

    • You have available CPU.
    • Your application performs I/O bound operations such as calling a Web method or accessing the file system.
    • The ASP.NET Applications/Requests In Application Queue performance counter indicates that you have queued requests.

    Table 6.1: Recommended Threading Settings for Reducing Contention

    Configuration setting Default value (.NET Framework 1.1) Recommended value
    maxconnection 2 12 * #CPUs
    maxIoThreads 20 100
    maxWorkerThreads 20 100
    minFreeThreads 8 88 * #CPUs
    minLocalRequestFreeThreads 4 76 * #CPUs

    To address this issue, you need to configure the following items in the Machine.config file. Apply the recommended changes that are described in the following section, across the settings and not in isolation. For a detailed description of each of these settings, see "Thread Pool Attributes" in Chapter 17, "Tuning .NET Application Performance."

    • Set maxconnection to 12 * # of CPUs . This setting controls the maximum number of outgoing HTTP connections that you can initiate from a client. In this case, ASP.NET is the client. Set maxconnection to 12 * # of CPUs.
    • Set maxIoThreads to 100 . This setting controls the maximum number of I/O threads in the .NET thread pool. This number is automatically multiplied by the number of available CPUs. Set maxloThreads to 100.
    • Set maxWorkerThreads to 100 . This setting controls the maximum number of worker threads in the thread pool. This number is then automatically multiplied by the number of available CPUs. Set maxWorkerThreads to 100.
    • Set minFreeThreads to 88 * # of CPUs . This setting is used by the worker process to queue all the incoming requests if the number of available threads in the thread pool falls below the value for this setting. This setting effectively limits the number of requests that can run concurrently tomaxWorkerThreads � minFreeThreads . Set minFreeThreads to 88 * # of CPUs. This limits the number of concurrent requests to 12 (assumingmaxWorkerThreads is 100).
    • Set minLocalRequestFreeThreads to 76 * # of CPUs . This setting is used by the worker process to queue requests from localhost (where a Web application sends requests to a local Web service) if the number of available threads in the thread pool falls below this number. This setting is similar tominFreeThreads but it only applies to localhost requests from the local computer. Set minLocalRequestFreeThreads to 76 * # of CPUs.

    Discussion: The proviso above indicates that these settings should be used when your application has I/O bound operations and the Applications/Requests In Application Queue perfcounter indicates you have queued requests. However, I have found that settings approaching those indicated can improve performance on ASP.NET apps that do not exhibit these conditions. I recommend using the "Homer" web stress tool from at least one remote machine (and preferably more than one machine, with the supplied ASP controller page), or the .NET ACT Application Center Test application, to throw a good solid load at your app and carefully measure the performance statistics with each set of both the default and the above settings. In particular, pay close attention to the Requests per second and the time to last byte readings. This baseline testing scenario should provide the basis for further tuning if it is necessary, and it doesn't take long at all. You can only improve something if you have metrics, and the way you get the metrics is to take the time to get them! You can easily script all kinds of "user paths" through your ASP.NET application with testing software such as is mentioned here, and get the important baseline metrics you need. One more thing-- rule number 1 of software testing and debugging:

    "When you are going to change something, ONLY CHANGE ONE THING AT A TIME!" Test it, get the metrics, and only then, proceed.

    Kernel Mode Caching

    If you deploy your application on Windows Server 2003, ASP.NET pages automatically benefit from the IIS 6.0 kernel cache. The kernel cache is managed by the HTTP.sys kernel-mode device driver. This driver handles all HTTP requests. Kernel mode caching may produce significant performance gains because requests for cached responses are served without switching to user mode.

    The following default setting in the Machine.config file ensures that dynamically generated ASP.NET pages can use kernel mode caching, subject to the requirements listed below.

    <httpRunTime enableKernelOutputCache="true" . . ./>

    Dynamically generated ASP.NET pages are automatically cached subject to the following restrictions:

    • Pages must be retrieved by using HTTP GET requests. Responses to HTTP POST requests are not cached in the kernel.
    • Query strings are ignored when responses are cached. If you want a request for http://contoso.com/myapp.aspx?id=1234 to be cached in the kernel, all requests for http://contoso.com/myapp.aspx are served from the cache, regardless of the query string.
    • Pages must have an expiration policy. In other words, the pages must have an Expires header.
    • Pages must not have VaryByParams .
    • Pages must not have VaryByHeaders .
    • The page must not have security restrictions. In other words, the request must be anonymous and not require authentication. The HTTP.sys driver only caches anonymous responses.
    • There must be no filters configured for the W3wp.exe file instance that are unaware of the kernel cache.

    Discussion: The "enableKernelOutputCache = "true" setting IS NOT present in the default machine.config "httpRunTime" element. Since it is not present, we should be able to expect that the default setting of "true" is automatic. Personally, I feel better explicitly putting the attribute in there, and setting it to "true". As an aside, I have found that it is ALWAYS a good idea to KEEP A BACKUP COPY of your machine.config stored somewhere safe.

    Tuning the Thread Pool for Burst Load Scenarios

    If your application experiences unusually high loads of users in small bursts (for example, 1000 clients all logging in at 9 A.M. in the morning), your system may be unable to handle the burst load. Consider setting minWorkerThreads and minIOThreads as specified in Knowledge Base article 810259, "FIX: SetMinThreads and GetMinThreads API Added to Common Language Runtime ThreadPool Class," at http://support.microsoft.com/default.aspx?scid=kb;en-us;810259 .

    Discussion: The .NET Threadpool is somewhat limited in its flexibility and is specifically limited in terms of how many instances you may have per process, since it is static. If you have ASP.NET applications that specifically need to run background thread processing, you may wish to investigate using a custom threadpool class. I have used Ami Bar's SmartThreadPool with great success, and have even modified it to provide a ThreadPriority overload. You can have more than one instance of this pool, and each can be custom configured. This type of approach provides maximum flexibility while simultaneously permitting individual threadpool tuning of critical resources.

    Tuning the Thread Pool When Calling COM Objects

    ASP.NET Web pages that call single-threaded apartment (STA) COM objects should use the ASPCOMPAT attribute. The use of this attribute ensures that the call is executed using a thread from the STA thread pool. However, all calls to an individual COM object must be executed on the same thread. As a result, the thread count for the process can increases during periods of high load. You can monitor the number of active threads used in the ASP.NET worker process by viewing theProcess:Thread Count (aspnet_wp instance) performance counter.

    The thread count value is higher for an application when you are using ASPCOMPAT attribute compared to when you are not using it. When tuning the thread pool for scenarios where your application extensively uses STA COM components and the ASPCOMPAT attribute, you should ensure that the total thread count for the worker process does not exceed the following value.

    75 + ((maxWorkerThread + maxIoThreads) * #CPUs * 2)

    Evaluating the Change

    To determine whether the formula for reducing contention has worked, look for improved throughput. Specifically, look for the following improvements:

    • CPU utilization increases.
    • Throughput increases according to the ASP.NET Applications\Requests/Sec performance counter.
    • Requests in the application queue decrease according to the ASP.NET Applications\Requests In Application Queue performance counter.

    If this change does not improve your scenario, you may have a CPU-bound scenario. In a CPU-bound scenario, adding more threads may increase thread context switching, further degrading performance.

    When tuning the thread pool, monitor the Process\Thread Count (aspnet_wp) performance counter. This value should not be more than the following.

    75 + ((maxWorkerThread + maxIoThreads) * #CPUs)

    If you are using AspCompat, then this value should not be more than the following.

    75 + ((maxWorkerThread + maxIoThreads) * #CPUs * 2)

    Values beyond this maximum tend to increase processor context switching.

    Discussion: There is a long list of attention items that revolve around and are tightly woven into the IIS tuning issue for ASP.NET application tuning and scalability. These include, but are not limted to the following:

    • Improving page response times.
    • Designing scalable Web applications.
    • Using server controls efficiently.
    • Using efficient caching strategies.
    • Analyzing and applying appropriate state management techniques.
    • Minimizing view state impact.
    • Improving performance without impacting security.
    • Minimizing COM interop scalability issues.
    • Optimizing threading.
    • Optimizing resource management.
    • Avoiding common data binding mistakes.
    • Using security settings to reduce server load.
    • Avoiding common deployment mistakes.

    You can find detailed treatment of most of these issues in Chapter 6 of the above-captioned publication.

    I hope this brief synopsis of IIS tuning parameters is useful to you. Once again, I strongly recommend reading all this in the bigger context of the book, and mapping out an optimization plan that includes code review, refactoring, and optimization tuning both at the ASP.NET application and IIS webserver levels. One of the great things about the lessons learned from IIS / ASP.NET testing and tuning optimizations is that they can be carried forward to new applications and will improve your skills and value as a professional developer. I spent nearly three weeks at the Microsoft Testing Lab in Charlotte, NC under the tutelage of Dennis Bass and his fine crew, and the lessons learned there were invaluable. If this book were avalable then, I may not have needed to spend so many nights in hotel rooms.

     

    'BIZTALK > DOC' 카테고리의 다른 글

    Tuning IIS - machine.config settings  (0) 2009.11.23
    BizTalk 2004 Performance and Tuning  (0) 2009.11.23
    posted by 방랑군 2009. 11. 23. 19:31
    Tuning IIS - machine.config settings

    Recently I needed to try and reduce contention within IIS when calling a number of web services.  Eventually this led to the need to make some changes to the machine.config file.

    The changes identified were based on the Microsoft recommended settings.  These recommended values should be viewed as a start point for continued tuning, but have been shown to work in most circumstances.  They are based on the premise that for each ASPX page in use you are making one Web service call to a single IP address.

    It is only suggested that you try this in situations where you are performing operations such as calling Web Services or accessing files (IO processes) and you have some available processing power.

    It is not recommended that these changes be applied in isolation, as this causes problems.  Similarly, setting these values incorrectly can also cause problems.  

    Some of these recommendations involve a simple formula that involves the number of CPUs on a server.  Where hyperthreading is enabled, you should base the calculation on the number of logical CPUs and not the number of physical CPUs.

    i.e. On a two-processor server with hyperthreading enabled, you should be calculating these settings based on 4 CPUs not 2.

    The recommendations I followed are detailed below, followed by an example of these setting in the machine.config file.  I have also included a couple of links that hepled me identify the changes I needed; these may be of interest if you want to read into this further.

    The machine.config file can be found in the \WINDOWS\Microsoft.NET\Framework\vXXXX\CONFIG directory.

     

    maxconnection

    Controls the maximum number of outgoing HTTP connections that you can initiate from a client to a specific IP address.

    Setting the address attribute to * applies this value to all addresses.  You can include multiple entries for this setting to control the maximum number of connections to specific IP addresses.

    The maxconnection parameter setting applies at the AppDomain level. By default, you can create a maximum of two connections to a specific IP address from each AppDomain in your process.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    Default                              2
    Recommended              12 * Number of CPUs 

    maxIoThreads

    Controls the maximum number of I/O threads in the .NET thread pool. 

    This number is automatically multiplied by the number of available CPUs.

    Default                              20
    Recommended              100 
     


    maxWorkerThreads                 

    Controls the maximum number of worker threads in the thread pool.


    This number is then automatically multiplied by the number of available CPUs.

    Default                              20
    Recommended              100 
     

    minWorkerThreads

    Determines how many worker threads may be made available immediately to service a remote request.  This can be useful when there may be sudden rise in the number of requests, such as a burst of requests from another server or from client users.  This enable ASP.NET to service requests that may be suddenly filling the ASP.NET request queue. 


    This number is then automatically multiplied by the number of available CPUs.


    Default                              1
    Recommended              maxWorkerThreads / 2
     

    minIoThreads

    Determines how many of I/O threads may be made available immediately in the .NET thread pool.

    This number is then automatically multiplied by the number of available CPUs.

    Default                              1
    Recommended              maxIoThreads / 2


    minFreeThreads

    Used by the worker process to queue all the incoming requests.  This only applies if the number of available threads in the thread pool falls below the value for this setting.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    This setting effectively limits the number of requests that can run concurrently to maxWorkerThreads - minFreeThreads .

    Default                              8                                  
    Recommended              88 * Number of CPUs

    Following the recommendation above limits the number of concurrent requests to 12 per CPU (assuming maxWorkerThreads is 100) because 100 - 88 = 12.  This leaves at least 88 worker threads per CPU and 88 completion port threads per CPU available for other uses (such as for the Web service callbacks).


    minLocalRequestFreeThreads            

    Used by the worker process to queue requests from localhost, such as requests to a local Web service.  This only applies if the number of available threads in the thread pool falls below this number.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    This setting is similar to minFreeThreads but it only applies to localhost requests from the local computer.

    Default                              4
    Recommended              76 * Number of CPUs  
     

    Example

    An example of how these entries might look in the machine.config file is shown below.  This is an edited version of this file, focusing only on those settings discussed above.

     <configuration>
     <system.net>
             <connectionManagement>
                 <add address="*" maxconnection="24" />
             </connectionManagement>
         </system.net>
         <system.web>
             <processModel autoConfig="true"
                 maxWorkerThreads = "100"
                 maxIoThreads = "100"
                 minWorkerThreads = "50"
                 minIoThreads = "50"
             />
             <httpRuntime 
                 minFreeThreads="176" 
                 minLocalRequestFreeThreads="152" 
             />
         </system.web>
    </configuration>

    Links

    Contention, poor performance, and deadlocks when you make Web service requests from ASP.NET applications

    IIS 6.0 Tuning for Performance

    'BIZTALK > DOC' 카테고리의 다른 글

    IIS 6.0 Tuning for Performance  (0) 2009.11.23
    BizTalk 2004 Performance and Tuning  (0) 2009.11.23
    posted by 방랑군 2009. 11. 23. 19:01




    BizTalk 2004 Performance and Tuning

    Recently I had cause to investigate performance and tuning of BizTalk Server 2004, and found that although there was some useful and interesting information available, there was usually little actual guidance on how to apply even the simplest settings to your specific solution/environment. 

    When you take a look at the guidance available for tuning IIS, there are some reasonably simple steps that you can follow to get you started; for example you can make some simple changes to machine.config based on some simple calculations and the number of CPUs in use.  I previsouly  discussed this inTuning IIS - machine.config Settings

    For BizTalk Server 2004, once you look beyond the hardware options (such as scaling up the CPU(s) in use or scaling out the number of BizTalk Servers in use) I was unable to find much that was as simple to follow as these IIS guidelines. 

    Although I have still not yet found the magic formula, the potential for tweaking your BizTalk Server 2004 installation is there, so here are some thoughts and settings that you may find useful when looking into this yourself. 

    Create Separate Hosts

    It is highly recommended that you create separate hosts to handle different jobs and processes within your BizTalk Server 2004 solution.

    I would suggest that a good starting point is to consider separating out the following:

    • Orchestrations
    • Adapters
    • BizTalk Host Tracking

    Separating the Orchestrations from the Adapters will also help reduce resource contention when dealing with higher load, as you will have separate host processes dealing with the send/receive (adapters) and the business process (orchetsrations) for each process being handled.

    You may also wish to investigate further separtion of these hosts, creating separate hosts for related Orchestrations and Adapter types.  My preferred option is to provide Orchestration hosts for each of my "applications" and then a separate host for each Adapter type.

    As each host runs in its own process, this gives you a more robust and flexibible solution; individual hosts can be stopped and started and a failure in one host will not automatically bring down all processes. 

    BizTalk Server Engine

    The performance characteristics of the BizTalk Server engine can be modified by changing the following columns in the adm_ServiceClass table of the BizTalkMgmtDb database:

    HighWatermark / LowWatermark

    These settings determine the outbound processing rate for messages, representing the high and medium stress-level thresholds. They define the number of messages processed by BizTalk Server 2004, but not yet consumed by subscribers.

    When BizTalk Server processes more messages than specified by the HighWatermark, it will stop processing messages from the message box until the number of active messages drops below the LowWatermark threshold.

    HighMemorymark / LowMemorymark

    These settings control the memory thresholds at which BizTalk Server 2004 starts and stops processing messages. They define the percentage of overall memory consumed and affect both inbound and outbound throughput.

    When BizTalk Server memory consumption reaches the level defined by the LowMemorymark, BizTalk Server increases the stress level, and by extension the CPU usage on the host server.

    If memory consumption reaches the level defined by the HighMemorymark, BizTalk Server stops processing messages until memory consumption is reduced.

    BizTalk Server also stops creating new orchestrations when the memory consumption reaches the HighMemorymark.  Orchestration creation is only resumed once the memory consumption reaches the LowMemorymark.

    HighSessionmark / LowSessionmark

    These settings determine the inbound processing rate for messages and represent high and medium stress-level thresholds.

    They define the number of parallel database sessions that are persisting messages to the message box.  When the number of sessions specified by the HighSessionmark is exceeded, BizTalk Server blocks incoming messages until the number of sessions decreases below the LowSessionmark
     
    Threading Issues

    With thread starvation, you may see slow performance when using the SOAP, HTTP, or WSE adapters, including situations where a large flood of messages can trigger a degradation of performance.

    The BizTalk host(s) with the SOAP, HTTP or WSE Adapters running has worker threads handling queued work items and I/O threads for completed asynchronous I/O requests. Problems can occur when there are not enough free threads in the thread pools to handle the number of messages (SOAP, HTTP, or WSE requests). 

    A freshly started BizTalk host has default thread pool sizes that are small and therfore may not be able to handle requests made of it.  The adapter must then add more worker or I/O threads to the thread pool, stopping once there are enough to fulfill the request or the maximum thread limit is reached. This can be time consuming. 

    If the maximum thread pool limit is not large enough to handle the sustained work load, messages must wait until a thread becomes available before they can be processed.

    Minimum worker and I/O thread pool sizes should be set at a level appropriate to the initial and sustained work load.

    MinIOThreads

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0{guid}]\CLR Hosting

    This DWORD is the minimum number of threads, per processor, available from the CLR thread pool at any given time.

    This number is automatically multiplied by the number of available CPUs and should have the same values as MinWorkerThreads.  If MinWorkerThreads is configured but MinIOThreads is not, BizTalk server sets this to the value of MaxWorkerThreads.

    Default                     1
    Recommended     Maximum number of messages received at initialization + 10 percent

    MinWorkerThreads

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\BTSSvc.3.0{guid}]\CLR Hosting

    This DWORD is the minimum number of threads, per processor, available from the CLR thread pool at any given time.

    This number is automatically multiplied by the number of available CPUs. 

    Default                     1
    Recommended     Maximum number of messages received at initialization + 10 percent

    The maximum worker and I/O thread pool sizes should be set to cater for sustained and peak burst loads. These loads should be defined by the business requirements and validated during stress testing. It is not recommended to define excessive thread pool sizes, as although this may resolve thread starvation it can increase context switching and this can offset the performance gained

    MaxIOThreads

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0{guid}

    This DWORD is the number of threads per processor that will run to handle I/O within the common language runtime or Microsoft .NET connection software.

    This number is automatically multiplied by the number of available CPUs and should have the same values as MaxWorkerThreads.  If MaxWorkerThreads is configured but MaxIOThreads is not, BizTalk server sets this to the value of MaxWorkerThreads.

    Default: 20

    MaxWorkerThreads

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0{guid}

    This DWORD is the number of threads per processor that the HTTP adapter will use to process messages.

    This number is automatically multiplied by the number of available CPUs.

    Default: 25

    A larger thread pool can put more pressure on your Biztalk Server CPUs and the SQL Server hosting the BizTalk databases. Increasing the MaxWorkerThreads value beyond 100 can have an adverse effect on the performance of SQL Server. Make sure the computer(s) installed with SQL Server can handle the additional stress before increasing the thread pool size greater than 100.

    MessagingThreadPoolSize

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0{guid}

    This defines the number of threads that will be used to process messages on a per processor basis on the computer running BizTalk Server.

    MessagingThreadsPerCpu

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0                              (Isolated Host)

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc{guid of the host}      (In-process hosts)

    This DWORD defines the number of threads per CPU processor that BizTalk Server uses to process incoming message batches for the isolated host or in-process host that you define it against.  Larger numbers increase the CPU processor utilization in the receive host. Smaller numbers might improve performance if there is excessive context switching in the receive host.

    ASP .NET Settings Related to HTTP, SOAP, or WSE Adapter Performance

    In addition to thread starvation, there are several ASP.NET settings affecting SOAP, HTTP, or WSE adapter performance. These settings are made in the web.config or machine.config files. Because these adapters communicate with external Web sites or Web services, consider tuning these external components as part of overall performance review. The settings described in this section were sugegsted to be specific to BizTalk Server, but are similar to changes that can be made when tuning IIS.

    The tunable attributes include maxconnection, maxWorkerThreads, minWorkerThreads, maxIOThreads, and minIOThreads. The properties that can be tuned include minFreeThreads and minLocalRequestFreeThreads.

    maxconnection

    Controls the maximum number of outgoing HTTP connections that you can initiate from a client to a specific IP address. This can be a bottleneck if BizTalk Server makes a large number of HTTP, SOAP, or WSE requests.

    Setting the address attribute to * applies this value to all addresses.  You can include multiple entries for this setting to control the maximum number of connections to specific IP addresses.

    The maxconnection parameter setting applies at the AppDomain level. By default, you can create a maximum of two connections to a specific IP address from each AppDomain in your process.

    Increasing maxconnection attribute increases thread pool and CPU utilization. This may mean that the thread pool settings described in the previous section may not be optimal. Test larger thread pool sizes to determine if adjustment is necessary.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    Default                     2
    Recommended     12 * Number of CPUs 

    maxIoThreads

    Controls the maximum number of I/O threads in the .NET thread pool. 

    This number is automatically multiplied by the number of available CPUs.

    Default                     20
    Recommended     100 

    maxWorkerThreads                 

    Controls the maximum number of worker threads in the thread pool.

    This number is then automatically multiplied by the number of available CPUs.

    Default                     20
    Recommended     100 

    minWorkerThreads

    Determines how many worker threads may be made available immediately to service a remote request.  This can be useful when there may be sudden rise in the number of requests, such as a burst of requests from another server or from client users.  This enables ASP.NET to service requests that may be suddenly filling the ASP.NET request queue.

    This number is then automatically multiplied by the number of available CPUs.

    Default                     1
    Recommended     maxWorkerThreads / 2 

    minIoThreads

    Determines how many of I/O threads may be made available immediately in the .NET thread pool.

    This number is then automatically multiplied by the number of available CPUs.

    Default                     1
    Recommended     maxIoThreads / 2

    minFreeThreads

    Used by the worker process to queue all the incoming requests.  This only applies if the number of available threads in the thread pool falls below the value for this setting.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    This setting effectively limits the number of requests that can run concurrently to maxWorkerThreads - minFreeThreads .

    Default                     8                                  
    Recommended     88 * Number of CPUs

    Following the recommendation above limits the number of concurrent requests to 12 per CPU (assuming maxWorkerThreads is 100) because 100 - 88 = 12.  This leaves at least 88 worker threads per CPU and 88 completion port threads per CPU available for other uses (such as for the Web service callbacks).

    minLocalRequestFreeThreads            

    Used by the worker process to queue requests from localhost, such as requests to a local Web service.  This only applies if the number of available threads in the thread pool falls below this number.

    This setting is not automatically multiplied by the number of available CPUs, you must do this yourself.

    This setting is similar to minFreeThreads but it only applies to localhost requests from the local computer.

    Default                     4
    Recommended     76 * Number

    Messaging Changes

    HTTPBatchSize

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc.3.0\ HTTPReceive

    This setting specifies the batch size that the HTTP receive adapter uses to submit requests to BizTalk Server.  By default the HTTP Receive adapter waits for a batch of ten messages to accumulate in order to submit them all at once, or until a one-second time-out has elapsed.

    You can decrease the latency of HTTP request/response processes by creating and setting this DWORD registry key to 1.  This forces the HTTP receive adapter to submit each message as soon as it is received.

    Links

    The following MSDN links both have some great information (and lots of it) but you are still left to your own devices when applying these to your specific scenario:

    BizTalk Server 2004: Performance Tuning for Low Latency Messaging

    BizTalk Server 2004 Performance Characteristics

    I also found a decent overview of a particular implementation of some of these settings, although it is not fully clear what the scenario that is being implemented is or how the setting used were decided upon:

    BizTalk 2004 Tuning Recommendations

    For BizTalk 2006 I found a decent overview of what can be done to help when using the Soap adapter, and much of this is also applicable to BizTalk Server 2004:

    'BIZTALK > DOC' 카테고리의 다른 글

    IIS 6.0 Tuning for Performance  (0) 2009.11.23
    Tuning IIS - machine.config settings  (0) 2009.11.23
    posted by 방랑군 2009. 10. 5. 17:20
    Microsoft BizTalk ESB Toolkit 2.0 자료가 있네요. 다운로드에서 받아보시구요.

    설명은 여기를 보시면 되겠습니다.



    Dd897973.6295a095-201a-4211-b4f7-552f1673f968(en-us,MSDN.10).png

    Figure 2 
    The architecture and components of the BizTalk ESB Toolkit

    'BIZTALK' 카테고리의 다른 글

    BizTalk Version  (0) 2009.12.28
    SOA(Service Oriented Architecture)란?  (0) 2009.12.22
    MS BizTalk Server 소개  (0) 2009.12.22
    미들웨어란 무엇인가?  (0) 2009.12.22
    BizTalkDTADb  (0) 2009.11.29
    posted by 방랑군 2009. 9. 2. 13:58

    참조 : http://www.codeproject.com/KB/biztalk/BiztalkToGrandma.aspx


    Introduction

    I have heard they ask "How would you explain Excel (any product) to your grandmother?" in many companies; a question popularized by Microsoft, I believe. First, I am not so sure my grandma would understand any technology product so easily. Also, I am not sure if this is a good question to ask a software developer; maybe, to someone from sales, yes! On the record, I must say that my grandmother is an incredibly smart lady. So the question really boils down to "How you would make an IT common man understand what a product is all about?" This is what I am trying to endeavor in this article.

    Sometime back, I had to explain to a group of non-IT folks about BizTalk Server. You know the people who wouldn't understand all these geeky terms like SOA, XML, SOAP, or Orchestrations (pardon me, she says she knows about SOAP!). I thought I'd share my experience here in this article for the benefit of the CodeProject community. This article is aimed at you if you have heard about this wonderful thing called BizTalk Server, and want to understand what it is clearly before diving into the marketing material which seems to be the same for every product - the "panacea" of all your problems.

    Drawing a Parallel

    BizTalk Server is Microsoft's enterprise application integration solution, with built-in support for XML and SOAP. It offers integration with Visual Studio .NET, and provides speed, reliability, and flexibility for standards-based enterprise application integration. An analogy they say is "Similarity in some respects between things that are otherwise dissimilar". So for me, to explain BizTalk, I would start off with an analogy. In the section below, I am comparing BizTalk Server to a Customs facility.

    The Customs Facility

    sample image

    What we have in the figure above is a Customs facility. We have an Import Terminal through which a large number of packages come in by different modes of transport: planes, ships, buses, trucks, barges. These packages then go through a standard inspection process, with several stages including identifying the package, unpacking the contents, and then identifying the shipper. The packages then go to a central store. From there, customs inspection of the packages takes place. The process could be different for different types of packages, and there is a "Customs Inspection Rules and Regulations Manual" which details the inspection process, and which in practice, gets updated from time to time. After a package passes the inspection process, it is sent back to the central store, from where it is packaged and sent to the correct destination.

    The BizTalk Server Architecture

    sample image

    The figure above is the architecture of a BizTalk Server messaging subsystem. As you will notice, this figure is same as the previous figure except for the labeling. Here, instead of packages moving, we have XML messages that are moving. The files come in through Receive Ports and are passed to the "Message Box" through a "Receive Pipeline". They are then picked up by "BizTalk Orchestrations" and are processed. Custom rules maybe loaded and executed at this point. They are then send out using a Receive Pipeline through a "Send Port" to the destination.

    Receive Ports

    The Receive Ports are how messages come into BizTalk. Messages can come into BizTalk by any means of transport like HTTP, SOAP, SQL, file, EDI; just like the way packages arrive via planes, ships, buses, or trucks. How they are transported does not change how they are processed later. This is a very powerful feature because it gives you the ability to change the transport type and the source of the data even after your application is deployed, without changing your application implementation. For instance, let us say some sales related data is coming in from a shared "FILE" folder in Europe connected via WAN today, tomorrow you can configure it as an FTP pickup from a remote server from India, or probably accept it as an HTTP request over the web posted from a browser.

    Adaptors

    Adaptors are the BizTalk way of handling additional transport. Just like you can have a private plane fly your package in, you can write your own adaptor for a custom transport, like say POP3. So there is always scope for buying or writing your own custom adaptor to integrate with all the other available transports. For instance, you can have a DB2 adaptor or a SAP adaptor.

    Receive Pipeline

    The Receive Pipeline contains different mechanisms like "Decoding" (if encoded), "Disassembling" (if there are multiple parts), and "Party Resolution". This is similar to the unpacking and identifying the sender, in our example. Just like we have an express lane for certain packages, there is a "Pass Through" pipeline facility in BizTalk which is essential a smooth transfer to the Message Box. Just like you can have special handling instructions for certain packages, you can write custom pipeline components using the framework.

    Message Box and Subscriptions

    The BizTalk Message Box lies in the heart of the BizTalk messaging subsystem; this is like our central store. This message box is, in fact, realized as a SQL Store; so this way, BizTalk ensures reliability for your messages in terms of guaranteed delivery. Even if a node in BizTalk fails, the message will be picked up by another node in the farm. BizTalk also ensures that it does not delete the file from a pickup folder location while using file/any transport, unless it is persisted completely in SQL. Well, this also means you need to have a fault tolerant SQL Server architecture. Just like we will be noting down a few important details while we unpack the packages, in the pipeline, certain properties are promoted into the context, like transport information: the most important of these being the incoming XMLSchema#RootNode. The BizTalk Publish-Subscribe mechanism identifies which Orchestrations subscribe to that particular message, based on this promoted information, and routes it accordingly.

    Orchestrations

    Orchestrations are processes that are defined in the Business Process Execution Language (BPEL). This could be something like, say: if quantity is greater than threshold, apply discount, else standard discount. At this stage, you can also change the format of the message using Transformation Maps, or you can call some other web service to do an operation like credit card verification. This is like our example in which we have the customs inspection process and checking with the bank if the excise payment is cleared.

    Business Rules Engine

    Business Rules Engine is used by BizTalk to load the current policies which are a collection of Rules from the Orchestration. These rules are kept separately as these could change from time to time. In our example above, this would be something like, during Olympics there could be certain relaxations in guidelines or certain promotions in effect. These change from time to time, and they are kept separate. This is the idea behind the Rule Store in BizTalk.

    Send Pipeline

    The "Send Pipelines" are just the opposite of the "Receive Pipelines" and they do operations like "Encoding" the message, or "Assembling" or "Signing" the message. This is like packing and sealing a package before we send it. Just like we have different types of packaging like bubble wrapping and cushion mailers, there could be different pipeline components at this stage.

    Send Ports

    Send Ports also handle transport like receive ports, but their direction is the reverse. Here, the message direction is from the Message Box to the destination. Send Ports can subscribe to a message directly from the Message Box, without passing through the orchestration. This is like having a package coming in from a certain shipper which has a prior clearance attached with it. This is called Content Based Routing (CBR).

    'BIZTALK > DEFINITION' 카테고리의 다른 글

    SOA와 EAI  (0) 2009.12.22
    EAI 연동방안의 차이점  (0) 2009.12.22
    EAI와 ERP의 차이점  (0) 2009.12.22
    순수(Pure-Play) BPM[WorkFlow BPM]과 EAI 기반 BPM 의 차이  (0) 2009.12.22
    EAI(Enterprise Application Integration)란?  (0) 2009.12.22