Etiket: Biztalk Error

Biztalk Error : “use of unconstructed message”

Ocak 20th, 2011

Bir Message Assigment Shape’inde bir mesaj hem source hem de destination olamaz şeklinde birşey keşfettim bugun.

Nasıl Keşfettim?

Bir mesajın içinde ufak bir değişiklik yapılması gerekiyordu. Bunun için bir metod yazdım ve helper classıma koydum.

msg = Helper.metod(msg);

diyerekten atamayı yapabileceğimi düşündüm birden. Denedim “use of unconstructed message” diye hata aldım. Construct Shape’ine baktım, mesajı vermişim buraya :) Tabii kafa karıştı benim. Belki aynı satırda kullandırmaz dedim. Mesajı XmlDocumenta atayıp metoda bunu gönderdim. Yine aynı hatayı aldım.

Sonra tabii bu olay beni aşar deyip google amcaya sordum.
http://www.mombu.com/microsoft/biztalk-server-new-user/t-use-of-unconstructed-message-error-1049792.html adresinde randal van splunteren abimiz aşağıdaki gibi bir yorum yapmış.

Hello golddog,

Make sure that the transform has a different source and destination message.
I your case the source message is the message that comes in through the receive
shape. However you need to create a new message instance of the same message
type as the destination for the transform/map. You can than also use this
message to send out by using the send shape.

In general in a transform shape you can’t use the same message for both source
and destination. This is because messages are immutable in BizTalk.

Buradaki “In general in a transform share you can’t use the same message for both source and destination. This is because messages are immutable in BizTalk.” cümlesi olayı aydınlattı. Daha sonra yeni bir mesaj yapıp atamayı buna yapınca problem kalmadı.

Tags: , , , , ,
Posted in BizTalk | No Comments »

Kendime Not : 64 Bitlik BizTalk Server Administration Console’da, Oracle Adapter Port Konfigürasyon Hatası

Ağustos 18th, 2010

Semptomlar şu şekilde görünmekte:

Oracle Adapter Portuyla ilgili yaptığınız herhangi bir işlemde (receive locationın polling intervalını değiştirmek gibi basit işlemler dahil) Invalid bindig error hatası alırsınız.

Muhtemel Kurulumunuz :

64-Bit Biztalk Server 2009 kurulumu

32-Bit ve/veya 64-Bit Biztalk Adapter Pack 2.0

32 -Bit ve/veya 64-Bit WCF LOB Adapter SDK

64-Bit Oracle 11g Client

Eğer kurulumunuz yukarıdakine benziyorsa siz de hata alacaksınız demektir. 64-Bit için olması gereken kurulum aşağıdaki gibidir.

Olması Gereken Kurulum :

64-Bit Biztalk Server 2009 kurulumu

32-Bit ve 64-Bit Biztalk Adapter Pack 2.0

64-Bit WCF LOB Adapter SDK (evet sadece 64, yanında 32 istenmiyor :) )

32-Bit ve 64-Bit Oracle 11g Client

yukarıdaki liste harfi harfine kurulmalıdır. Bitlerdeki eksiklikler affedilmemektedir efenim :)

Microsoftun ilgili sayfası : http://msdn.microsoft.com/en-us/library/dd787836(BTS.10).aspx#BKMK_InvalidBinding

Tags: , , , , , , ,
Posted in BizTalk | 2 Comments »

Biztalk Error : “Cannot locate document specification because multiple schemas matched the message type” ve Çözümü

Haziran 2nd, 2010

Biztalk Server schemaları root node name + namespace mantığıyla ayırt eder. Eğer İlk node un ismi ve namespace in birleşimi aynı olan birden fazla şemanız mevcutsa bu hatayı alırsınız. Yani Biztalk bu yapıya sahip bir mesaj aldığında hangi şemayı kullanacağını bilemez/karar veremez.

üç tane çözümü mevcuttur (benim bildiğim :) )

  1. Aynı yapıya sahip iki şema zaten olmamalıysa, yani yanlışlıkla olmuşsa, gereksiz şemayı silip yeniden deploy edersiniz.
  2. Yanlışlık yoksa ve şemanın ikisini de kullanmanız gerekli ise;
    1. Source mesajın şemasını değiştirebiliyorsanız, yani xml dosyasını üreten programda değişiklik yapabilirseniz, programdan xmlns yi veya root node un ismini değiştirmeniz yeterli olacaktır.c# ile XMLDocument içindeki namespace i (xmlns) aşağıdaki gibi değiştirebilirsiniz;

      XmlDocument xmlDocument = new XmlDocument();
      xmlDocument.Load(“dosyaadi veya var olan XmlDocument kullanılabilir”);
      XmlAttribute attributeNode = xmlDocument.CreateAttribute(“xmlns”, ”", “http://blablabla”);
      xmlDocument.DocumentElement.SetAttributeNode(attri buteNode);

    2. Yukarıdaki çözüm işinize yaramazsa ki kaynak üreten program elinizde değil ise yaramaz. O zaman Biztalk tarafında aşağıdaki özelliklere sahip bir Pipeline üretiyoruz. Daha sonra Receive Location’ınımız pipelinını, yeni yaptığımız pipeline ile değiştiriyoruz. Böylece Biztalk Server, yaratılan pipeline sayesinde hangi schemanın kullanılacağına karar verebilir.Yeni yaptığımız pipeline a bir adet XML Disassembler eklenir.XML Disassembler ın Allow unrecognized messages özelliği true yapılır. Document schemas dan kullanılmak istenilen schema seçilir.

    3. Daha sonra proje deploy edilir ve kullanılacak olan receive locationdan Receive Pipeline olarak yeni yarattığımız pipeline seçilir.

      Test ettiğinizde problemin çözülmüş olduğunu görürsünüz.

Tags: , , , , , , , , , , , , , , , , , ,
Posted in BizTalk | No Comments »