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

기술 자료 번역 기술 자료 번역
기술 자료: 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 웹 사이트로 이동하십시오:
http://support.microsoft.com/contactus/?ws=support
참고 "핫픽스 다운로드 가능" 형식에는 핫픽스를 사용할 수 있는 언어가 표시됩니다. 사용자 언어가 표시되지 않으면 해당 언어의 핫픽스를 사용할 수 없습니다 때문입니다.

전제 조건

전제 필요합니다.

재시작 요구 사항

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

핫픽스 대체 정보

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

파일 정보

이 핫픽스의 영어 버전은 다음 표에 나열된 파일 특성(또는 그 이후의 파일 특성)이 있습니다. 이러한 파일의 시간과 날짜는 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 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

속성

기술 자료: 838454 - 마지막 검토: 2006년 12월 29일 금요일 - 수정: 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
키워드:?
kbmt kbautohotfix kbbiztalk2004-2006swept kbbiztalk2004sp1fix kbbiztalk2004presp1fix kbbug kbfix kbhotfixserver kbqfe KB838454 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com