FIX: 사용자가 MessageBox 데이터베이스나 추적 메시지 메시지에 대한 정보를 보관 파일을 BizTalk Server 2004에서 에 액세스할 수 없습니다.

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

838454
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
현상
추적된 메시지를 Microsoft BizTalk MessageBox 데이터베이스에 또는 사용자의 보관 파일을 액세스하려는 찾을 수 있습니다. 메시지 및 상황에 맞는 검색 및 개별 메시지에 대한 페이로드 데이터 목록을 통해 열거할 수 있는 Microsoft BizTalk Server 2004 제공되지 않았습니다.

이 핫픽스는 새 MessageArchive 개체를 추가합니다. MessageArchive 개체 추적된 메시지 본문을 MessageBox 데이터베이스에 또는 사용자 지정 보관 데이터베이스 위에 열거형을 검색하는 기능을 노출합니다.

참고 이 핫픽스는 Microsoft BizTalk Server 2004 서비스 팩 1에서 포함되어 있습니다.

해결 방법

서비스 팩 정보

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

핫픽스 정보

Microsoft에서 제공하는 핫픽스를 사용할 수 있습니다. 그러나 이 핫픽스는 이 문서에서 설명된 문제만 해결할 수 있습니다. 이 문서에 설명된 특정 문제가 발생한 시스템에만 이 핫픽스를 적용하십시오. 추후에 이 핫픽스를 테스트할 수 있습니다. 따라서 이 문제로 심각하게 영향을 받은 경우를 제외하곤 이 핫픽스가 포함된 다음 소프트웨어 업데이트까지 기다리는 것이 좋습니다.

다운로드할 핫픽스가 있는 경우, 이 기술 자료 문서의 맨 위에 "사용 가능한 핫픽스 다운로드" 링크가 있습니다. 이 링크가 표시되지 않는 경우, Microsoft 고객 지원 서비스에 문의하여 핫픽스를 구할 수 있습니다.

참고 추가적인 문제가 발생할 경우 또는 모든 문제 해결에 필요한 경우 별도의 서비스 요청을 만들어야 할 수도 있습니다. 핫픽스에 적용되지 않는 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다. Microsoft 고객 서비스 지원 전화 번호 전체 목록 또는 별도의 서비스 요청을 만들려면 다음 Microsoft 웹 사이트로 이동하십시오: 참고 "핫픽스 다운로드 가능" 형식에는 핫픽스를 사용할 수 있는 언어가 표시됩니다. 사용자 언어가 표시되지 않으면 해당 언어의 핫픽스를 사용할 수 없습니다 때문입니다.

전제 조건

전제 필요합니다.

재시작 요구 사항

이 핫픽스를 적용한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.

핫픽스 대체 정보

이 핫픽스는 다른 핫픽스를 대체하지 않습니다.

파일 정보

이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 항목에서 표준 시간대 탭을 사용하십시오.
   Date        Time    Version     Size       File name   --------------------------------------------------------------------------------------   08-Jul-2004  22:15  3.0.5320.0    144,896  Btshttpreceive.dll   08-Jul-2004  22:15  3.0.5320.0  1,026,048  Btsmsgcore.dll   08-Jul-2004  22:53  3.0.5320.0     32,768  Microsoft.biztalk.cachingservice.dll   08-Jul-2004  22:50  3.0.5320.0    221,184  Microsoft.biztalk.flatfileextension.dll   08-Jul-2004  22:48  3.0.5320.0    729,088  Microsoft.biztalk.globalpropertyschemas.dll   08-Jul-2004  22:48  3.0.5320.0     69,632  Microsoft.biztalk.httptransport.dll   08-Jul-2004  22:42  3.0.5320.0     77,824  Microsoft.biztalk.messageboxom.dll   08-Jul-2004  22:50  3.0.5320.0     49,152  Microsoft.biztalk.messaging.dll   08-Jul-2004  22:53  3.0.5320.0    217,088  Microsoft.biztalk.pipeline.dll   08-Jul-2004  21:46                145,598  Msgboxlogic.sql   08-Jul-2004  21:46                 12,158  Msgbox_tracking_schema.sql
참고 파일 종속 관계로 인해 이러한 파일이 들어 있는 최신 핫픽스 또한 추가 파일이 들어 있을 수 있습니다.
현재 상태
Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다.이 문제는 BizTalk Server 2004 서비스 팩 1에서 수정되었습니다.
추가 정보

메시지 본문 데이터가 보관 방법

메시지 본문 데이터가 Tracking_Spool1Tracking_Spool2 테이블에 MessageBox 데이터베이스에 있는 보관 Microsoft.BizTalk.MessageBoxOM.dll 파일을 참조할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.
  1. Microsoft.BizTalk.MessageBoxOM.dll 파일을 참조하십시오. Microsoft.BizTalk.MessageBoxOM.dll 파일은 GAC (전역 어셈블리 캐시 (위치합니다. Microsoft Visual Studio .NET 2003에서 프로젝트 GAC에 있는 구성 요소에 대한 참조를 추가할 수 없습니다. Visual Studio .NET 2003 프로젝트 Microsoft.BizTalk.MessageBoxOM.dll 파일에서 참조하려면 다음 방법 중 하나를 사용하십시오.
    • 방법 1: GAC에서 Microsoft.BizTalk.MessageBoxOM.dll 파일 추출

      GAC에서 Microsoft.BizTalk.MessageBoxOM.dll 파일을 추출하려면 명령 프롬프트에서 다음 명령을 실행하십시오. 이 명령은 DestinationPath 하드 디스크에 있는 파일 위치를 나타냅니다. 예를 들어, Visual Studio .NET 2003 프로젝트 파일이 포함된 폴더에 Microsoft.BizTalk.MessageBoxOM.dll 파일을 추출하려면 다음 명령을 사용할 수 있습니다.
      복사 %systemroot%\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll DestinationPath
    • 방법 2: Visual Studio .NET 2003 프로젝트 파일을 수동으로 편집하여

      GAC에 있는 구성 요소에 대한 참조를 추가하려면 텍스트 편집기에서 Visual Studio .NET 2003 프로젝트 파일을 수동으로 편집하십시오. 예를 들어, .csproj 및 .btproj 파일은 프로젝트 파일입니다. 프로젝트 파일에서 다음 코드 예제에서는 참조 요소를 추가합니다.
      Name = "Microsoft.BizTalk.MessageBoxOM"AssemblyName = "Microsoft.BizTalk.MessageBoxOM"HintPath = "<SystemRoot>\assembly\GAC\Microsoft.BizTalk.MessageBoxOM\3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.MessageBoxOM.dll"
  2. Visual Studio .NET 2003에서 콘솔 응용 프로그램을 만듭니다. 그런 다음 콘솔 응용 프로그램에서 다음 구성 요소에 대한 참조를 추가하십시오.
    • Microsoft.biztalk.messageboxom.dll

      참고 1 단계에서 하드 디스크에 있는 위치에 파일을 추출할 경우 경우에만 Microsoft.biztalk.messageboxom.dll 파일에 대한 참조를 추가하십시오.
    • BizTalk Server 2004\Microsoft.BizTalk.Messaging.dll \Microsoft
    • BizTalk Server 2004\Microsoft.BizTalk.Pipeline.dll \Microsoft
    • System.xml
  3. 메시지 본문 데이터를 보관할 수 있도록 콘솔 응용 프로그램 코드를 추가하십시오. 그런 다음 응용 프로그램을 컴파일하십시오. 예를 들어, 다음 Microsoft Visual C# 코드 예제와 유사한 코드를 사용합니다.
    using System;using System.IO;using Microsoft.BizTalk.Message.Interop;using Microsoft.BizTalk.MessageBoxOM;using System.Collections;using System.Diagnostics;namespace ConsoleApplication1{/// <summary>/// Summary description for Class1./// </summary>class Class1{/// <summary>/// The main entry point for the application./// </summary>[STAThread]static void Main(string[] args){MessageArchive archive = new MessageArchive();archive.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=BizTalkMsgboxDb;server=."foreach (IBaseMessage msg in archive.Messages){int cnt = msg.PartCount;UInt64 lSize;bool fImplemented;msg.GetSize(out lSize, out fImplemented);//Trace.WriteLine("Message ID: " + msg.MessageID.ToString());//Trace.WriteLine("Message Size: " + lSize.ToString());Console.WriteLine("Message ID: " + msg.MessageID.ToString());Console.WriteLine("Message Size: " + lSize.ToString());String partName;IBaseMessagePart part = msg.GetPartByIndex(0, out partName);Stream data = part.Data;string contentType = part.ContentType;string charset = part.Charset;//byte[] arr = new byte[data.Length];//data.Read(arr, 0, (int)data.Length);//file.Write(arr, 0, (int)data.Length);FileStream file = new FileStream(@"<full path of where you want to store the tracked messages>\" + msg.MessageID + ".xml", FileMode.Create);byte[] arr = new byte[1024];int bytesRead = 0;while ( (bytesRead = data.Read(arr, 0, 1024) ) > 0) {file.Write(arr, 0, bytesRead);if (bytesRead < 1024)break;}file.Close();}archive.Dispose(); }}}
  4. 콘솔 응용 프로그램을 실행하십시오. 콘솔 응용 프로그램을 실행할 때 콘솔 응용 프로그램을 MessageBox 데이터베이스에 비활성 테이블의 추적된 메시지 본문을 데이터를 검색합니다. 비활성 Tracking_Spool1 테이블 또는 Tracking_Spool2 테이블 테이블입니다. 현재 테이블 MessageArchive 개체에 액세스할 수 없습니다.

    기본적으로 현재 테이블 Tracking_Spool1 테이블입니다. 따라서 데이터가 콘솔 응용 프로그램을 실행할 처음이 반환됩니다. 현재 테이블의 테이블 Tracking_Spool2 만들려면 SQL Server에서 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행하십시오.

    참고 기본적으로 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 사용할 수 없습니다. TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업 메시지 본문 데이터가 삭제됩니다.

    TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행하면 Tracking_Spool1 테이블의 메시지 본문 데이터를 보관할 콘솔 응용 프로그램을 실행하십시오.

    참고 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업 메시지 본문 데이터가 있는 비활성 비웁니다 때문에 콘솔 응용 프로그램을 다시 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행하기 전에 실행해야 합니다.

    예를 들어, 메시지 본문 데이터가 MessageBox 데이터베이스에 보관하도록 하십시오.
    1. 메시지 본문 데이터 보관 일정을 설정하십시오. 예를 들어, 한 번 2주마다 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행할 경우 2주 데이터 추적 메시지 본문 데이터의 갖게 됩니다.
    2. TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행하십시오. 이 작업을 실행할 처음 Tracking_Spool2 테이블에 현재 테이블로 표시되어 있습니다. Tracking_Spool2 테이블의 비어 있습니다. 따라서 데이터가 손실됩니다.
    3. Tracking_Spool1 테이블에 저장된 메시지 본문 데이터를 보관할 콘솔 응용 프로그램을 실행하십시오.
    4. 메시지 본문 데이터가 다시 보관할 때 TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업을 실행하십시오. 이 작업을 Tracking_Spool1 테이블을 활성 상태로 표시합니다 Tracking_Spool1 테이블에 있는 데이터를 제거합니다.
    5. Tracking_Spool2 테이블에 저장된 메시지 본문 데이터를 보관할 콘솔 응용 프로그램을 실행하십시오.
    6. 단계 4a 설정한 일정에 따라 4a-4e 단계를 반복하십시오.
    TrackingSpool_Cleanup_BizTalkMsgBoxDb 작업에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    907661Tracking_Spool1 또는 Tracking_Spool2 BiztalkMsgBoxDb 데이터베이스의 테이블을 BizTalk Server 2004 매우 커질 수

MessageArchive 개체 인터페이스

MessageArchive 개체는 다음 인터페이스를 구현합니다.
  • public int CommandTimeout
    • 설명: 이 인터페이스는 사용자가 get 및 원본으로 사용하는 SQL 연결에 관련된 시간 제한을 설정할 수 있습니다.
    • 경계 조건을: 제한 시간 이상의 0 크거나 같아야 합니다. 최대 제한 시간을 한 시간 됩니다. 0은 무한 시간 제한을 나타냅니다.
    • 경우 오류: 잘못된 값을 ArgumentOutOfRangeException 예외가 발생합니다.
  • public string ConnectionString
    • 설명: 이 인터페이스는 사용자가 get 및 내부 보관 데이터베이스에 대한 연결 문자열을 설정할 수 있습니다.
    • 경계 조건을: 문자열에 null 있어야 하며 빈 문자열이 될 수 없습니다. 한 번 연결을 성공적으로 설정한 후에는 연결 속성을 다시 설정할 수 없습니다.
    • 경우 오류: null 문자열 또는 0 은 빈 문자열을 ArgumentException 예외가 발생합니다. 이미 설정한 후 이 속성을 설정하면 InvalidOperationException 예외가 발생합니다. SQL은 문자열을 유효한 연결인 경우 연결 예외가 생성됩니다.
  • public int BatchSize
    • 설명: 이 인터페이스는 사용자가 get 및 데이터베이스에서 검색할 데이터 일괄 처리 크기를 설정할 수 있습니다. 이 동작을 BizTalk Server에서 한 번에 너무 많은 메모리를 사용할 수 없습니다. 기본값은 50입니다.
    • 경계 조건을: 해당 BatchSize 이상의 0 크거나 같아야 합니다. BatchSize 0은 의미합니다 MessageArchive 개체의 최대 수만큼 일치하는 모든 데이터를 검색해야 합니다. 메모리에 있는 둘 이상의 로드하는 것이 하기 때문에 최대 BatchSize가 1000입니다.
    • 경우 오류: 허용되는 범위 밖에 있는 BatchSizes ArgumentOutOfRangeException 예외를 생성합니다.
  • public int MaxMatches
    • 설명: 이 인터페이스를 사용자 get 및 열거형에 대한 검색한 메시지의 최대 수를 설정할 수 있습니다. MaxMatches 열거형 MoveNext 메서드 전에 메시지의 총 수 있다는 점에서 인터페이스 false 를 반환합니다 BatchSize에서 이 인터페이스는 다릅니다.
    • 경계 조건을: MaxMatches 이상의 0 크거나 같아야 합니다. 0 값은 모든 메시지를 검색하는 것을 의미합니다.
    • 경우 오류: MaxMatches의 값은 0 보다 작은 경우 ArgumentOutOfRangeException 예외가 생성됩니다.
  • public DateTime From
    • 설명: 이 인터페이스는 사용자가 검색할 특정 날짜 및 시간 범위를 기준으로 원하는 때와 것을 메시지 집합을 필터링할 수 있습니다. 이 속성을 설정하면 나타내는 MessageArchive 개체 또는 지정된 날짜 및 시간 후에 게시된 메시지를 경우에만 검색해야 합니다.
    • 경계 조건을: Until 시간이 이미 지정된 경우, 시작 시간 또는 Until 시간 전에 같아야 합니다.
    • 경우 오류: 시작 시간 Until 시간보다 나중인 경우 ArgumentException 예외가 생성됩니다.
  • public DateTime Until
    • 설명: 이 인터페이스는 사용자가 검색할 특정 날짜 및 시간 범위를 기준으로 원하는 때와 것을 메시지 집합을 필터링할 수 있습니다. 이 속성을 설정하면 나타내는 경우에만 MessageArchive 개체 또는 지정한 시간 이전에 게시된 메시지를 검색해야 합니다.
    • 경계 조건을: 시작 시간이 이미 지정된 경우 Until 시간을 시작 시간 이후에 같아야 합니다.
    • 경우 오류: Until 시간이 시작 시간보다 경우 ArgumentException 예외가 생성됩니다.
  • public IEnumerable Messages
    • 설명: 이 인터페이스를 통해 모든 메시지를 열거할 수 있는 인터페이스를 사용자가 검색할 수 있습니다. Count 속성을 제공하므로 열거형이 사용됩니다.
    • 경계 조건을: 이 인터페이스 매개 변수를 사용합니다.
    • 경우 오류: 연결을 아직 설정하지 않으면 InvalidOperationException 예외가 생성됩니다. 다른 모든 오류는 SQL 연결 문제로 인해 발생할 수 있습니다.
    • 메시지 열거 ArchivedMessage 형식의 개체를 반환합니다. 이러한 개체는 IBaseMessage 인터페이스로 캐스팅할 수 있습니다. IBaseMessage에 대한 자세한 내용은 Microsoft BizTalk Server 2004 온라인 설명서를 참조하십시오.
모든 다음 함수 또는 메서드를 MessageArchive 개체에서 지원되지 않는 및 InvalidOperationException 예외를 생성합니다.
  • public void AddPart(string partName, IBaseMessagePart part, [MarshalAs(UnmanagedType.Bool)] bool bBody)
  • public IBaseMessagePart GetPart(string partName)
  • public void RemovePart(string partName)
  • public Exception GetErrorInfo()
  • public void SetErrorInfo(Exception errInfo)
또한 이 핫픽스에 포함된 BizTalk Server 솔루션에서 사용할 수 있는 몇 가지 새 속성은 다음과 같습니다.
  • 어댑터에서 받은 메시지에 전에 수신 파이프라인 메시지 처리를 시작할 때 AdapterReceiveCompleteTime 속성은 채워집니다.
  • 메시지 전송 어댑터가 시작되기 전에 AdapterTransmitBeginTime 속성이 채워집니다.
  • 어댑터를 성공적으로 메시지를 전송하는 후 AdapterTransmitCompleteTime 속성이 채워집니다. 이 속성은 사용하여 BizTalk 메시지 큐 어댑터 (MSMQT에 대한) 지원되지 않습니다.
이러한 속성은 다음 네임스페이스에 속한: VT_DATE 또는 DateTime 세 가지 속성을 모두 가지고
http://schemas.microsoft.com/BizTalk/2003/messagetracking-properties
입력합니다.

추가 정보는 다음 문서 번호를 클릭하여 Microsoft 기술 자료에서 확인하십시오:
824684Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명
BTS

경고: 이 문서는 자동 번역되었습니다

속성

문서 ID: 838454 - 마지막 검토: 01/17/2015 07:27:25 - 수정: 4.2

  • Microsoft BizTalk Server 2004 Standard Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • kbnosurvey kbarchive kbmt kbautohotfix kbbiztalk2004-2006swept kbbiztalk2004sp1fix kbbiztalk2004presp1fix kbbug kbfix kbhotfixserver kbqfe KB838454 KbMtko
피드백