Marko Apfel - Afghanistan/Belgium/Germany

Management, Architecture, Programming, QA, Coach, GIS, EAI

  Home  |   Contact  |   Syndication    |   Login
  187 Posts | 2 Stories | 201 Comments | 4 Trackbacks

News



Twitter | LinkedIn | Xing

Archives

Post Categories

BizTalk

C#

Enterprise Library

SAP

SQL Server

Technologie

Unterschiedliche Namespaces zwischen Schemas und Instanzen führen immer wieder zu kryptischen Fehlermeldungen.

Die Erfahrung zeigt, dass es einige besonders tückische Stellen gibt, die man sofort verifizieren sollte.

 

Typische Fehlermeldungen

Namespace-Referenzierung in der Instanz passt nicht zur deklarierten im Schema

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Source: "XML disassembler"
Receive Port: "RpIn"
URI: "C:File_InMiniTest*.xml"
Reason: Finding document specification by message type "de.MeineFirma.EAI.Schema.FalscherTyp#MyEntity" failed.
Verify that the schema is deployed properly.

Komplette Namespace-Referenzierung in der Instanz vergessen

There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Source: "XML disassembler"
Receive Port: "RpIn" URI: "C:File_InMiniTest*.xml"
Reason: Finding document specification by message type "MyEntity" failed. Verify that the schema is deployed properly.

Receive-Pipeline falsch konfiguriert, z.B. auf PassThruReceive anstatt auf XMLReceive

The Messaging engine failed to process a message submitted by adapter:FILE Source
URL:C:File_InMiniTest*.xml.
Details:The published message could not be routed because no subscribers were found.
This error occurs if the subscribed orchestration schedule or send port has not been started, 
or if some of the message properties necessary for subscription evaluation have not been promoted.

 

Folgende Einstellungen sollten immer passen

Schema an sich (Auswahl der XSD-Datei)

Namespace: de.MeineFirma.EAI.Schema
Type Name: MeinTyp

macht zusammen für den Full Qualified Name ein de.MeineFirma.EAI.Schema.MeinTyp

Schema-Node (Auswahl von )

Target Namespace: de.MeineFirma.EAI.Schema.MeinTyp

Namespace Referenzierung in der Instanz

...

Encoding der Instanz

ggf die Instanz mit einem Editor neu speichern mit explizitem Setzen eines Encodings

Einheitliche Namespaces

Wenn Schemas und Orchestrations im gleichen Assembly sind, führt das Ändern von Namespaces zu massiven und tückischen Problemen. Das hängt u.a. damit zusammen, dass z.B. die Port Type Definitionen zwar den Namespace des Schema übernehmen, aber nicht den Namespace des Assemblys. Infolgedesse wird im GAC das Schema nicht mehr übers Assembly gefunden.
siehe: http://www.traceofthought.net/PermaLink,guid,cfa8a62a-af33-44b8-a40e-ede8d1b2867c.aspx
Abhilfe: Schema und Orchestration in 2 verschiedene Assembly, dann werden die Assembly-Namespaces bei der Referenzierung mit übernommen

posted on Thursday, March 23, 2006 11:45 PM