2014-11-24 6 views
0

내 프로젝트에 비 트랜잭션 범위이 포함 된 오케스트레이션이 있습니다.Serializable 개체를 biztalk로 반환 할 때 데이터 손실이 발생했습니다.

값이있는 Hashtable을 얻으려면 해당 범위 안에 .NET 도우미가 필요합니다.

해당 범위에서 수행하는 것은 ONLY입니다. 이는 해당 범위에 .NET 함수를 호출하는 표현식 모양 만 포함됨을 의미합니다.

Hashtable을 반환하는 함수는 static으로 표시됩니다.

그것은 다음과 같다 : 메시지의 거대한 질량을 보내는 동시에에서 호스트 인스턴스를 다시 시작할 때 몇 가지 이유를 들어

public static Hashtable GetKeys(XmlDocument xmlDoc) 
     { 
      Hashtable servicesKey = new Hashtable(); 

      //Key1 
      int keysCounter = 1; 

      // Add key1 
      servicesKey.Add("Key" + keysCounter, Constants.Keys.First); 
      keysCounter++; 

      // Add key2 
      servicesKey.Add("Key" + keysCounter, Constants.Keys.Second); 
      keysCounter++; 

      // Add key3 
      servicesKey.Add("Key" + keysCounter, Constants.Keys.Third); 
      keysCounter++; 

      return servicesKey; 
     } 

, - 난 결과 일부의 빈 Hashtable 으려고 메시지의

메시지를 어떻게 변경할 수 있는지 누군가가 도움을받을 수 있도록 메시지가 그 상황에서 사라지지 않을 수 있습니까?

+0

나는 전문가는 아니지만 문제가 지속될 수 있다고 생각합니다. 인스턴스가 GetKeys 메서드에있는 동안 데이터 손실이 발생할 수 있다고 생각합니다. .Net 도우미 호출 이전에 빈 Orch를 호출하여 지속성 지점을 강제로 시도 할 수 있습니까? 지속성 포인트는 http://blogs.msdn.com/b/sanket/archive/2006/11/12/understanding-persistence-points-in-biztalk-orchestration.aspx를 참조하십시오. – Rodders

답변

0

데이터가 올바르게 유지되도록 클래스를 올바르게 serialize해야합니다.

먼저 당신은 당신의 클래스를 직렬화 태그를 제공해야합니다

[Serializable] 
public class MyClass 
{ 
    public Hashtable GetKeys(XmlDocument xmlDoc) 
    { 
     // etc... 
    } 
} 

그런 다음 당신은 당신의 오케스트레이션의 인스턴스를 인스턴스화해야합니다. 변수를 생성하고 클래스 유형을 할당하면 (오케스트레이션을 사용하여 biztalk 프로젝트의 클래스를 포함하는 어셈블리를 참조해야합니다.)

다음 표현식 모양으로 새 인스턴스를 선언 할 수 있습니다.

// In an expression shape: 
MyOrchestrationVariable = new MyExternalAssembly.MyClass(); 

그리고 안전하게 메서드를 호출 :이 도움이

// In an expression shape again: 
ServicesKey = MyOrchestrationVariable.GetKeys(XmlDoc); 

희망.

0

나는 이것이 의미하는 바가 무엇이며 호스트 인스턴스를 다시 시작하지 않습니다. 메시지를 제출 한 후 호스트 인스턴스를 다시 시작 하시겠습니까? 왜 그렇게?

빈 해시 태그를 반환하는 것과 관련하여 콘솔 앱에서 코드를 별도로 테스트하고 "거대한 메시지 덩어리"가 어떻게 작동하는지 확인하십시오. 또 다른 제안은 각 메시지 (대량)가 Orch의 새 인스턴스를 만들고 그에 따라 .NET 클래스도 별도로 인스턴스화한다는 점에서 프로세스를 설계하는 것입니다.

관련 문제