Thursday, September 29

BizTalk Development Errors: simple jargon-free problem and solution approach

P: You are using xml.xmldocument for a soap message type (in order to access it's properties for use in the ESB portal)  whilst implementing exception-catching in BizTalk orchestration, after assigning your message type to your exception object name, you get the error: "cannot implicitly convert type 'mesage global_NS' to message system.xml.xmldocument":
S: You have probably overlooked your exception object type. Make sure that your exception object type is properly derived from an xml message type - if it is derived from a port fault message, make sure it has a message type assigned to it)

P: sqlservr.exe is using too much memory resources and affecting deployment of your biztalk applications due to out of memory errors
S: Fix SQL Server’s memory allocation. Go to SQL Server Management Studio, Right-Click on the Server, Properties à Memory. Set the maximum server memory (in MB) filed to a value your system can deal with, like 200MB for example

P: you get an ‘errors exist for one or more children’ error message when you’re trying to build a BizTalk orchestration project
S: this would usually be due to a problem in the scripts within an expression shape (the problematic one is usually identifiable by the red exclamation mark), or simply look through all your objects in the orchestration window to find any objects with the red exclamation mark. – This post http://stevestechnotes.blogspot.com/2010/07/biztalk-errors-exist-for-one-or-more.html also suggests some solutions

P: You get persistent ‘Schema referenced by Map "*****" has been deleted. The local, cached version of the BizTalk Server group configuration is out of date. You must refresh the BizTalk Server group configuration’ errors. Your list of BizTalk Applications isn’t showing in the Group. You try refreshing the BizTalk Group and it doesn’t solve the problem. You also try restarting host instance services and the [problem persists
S: See first part of the next solution below

P: When trying to use the baselangs.Any schema type for a map, you get 'Schema referenced by Map <mapname> has been deleted' error. Your BizTalk applications stop loading up in the Administration console.
S: If you’re only interested in getting your applications back in Administration console, open SQLserver, open the BizTalkMgmtDb, and open the dbo.bt_MapSepc table. Find the entry whose input (indoc_docspec_name) and output (outdoc_docspec_name)  schemas match your problem map and delete if from the table. This will remove the problematic map and allow the applications to load in BizTalk Administration Console.

However, if you’re hell bent on using your map and you wish to fix the problem, follow these steps. Delete your problematic application. Refresh the BizTalk Group. Add the Microsoft.XLANGS.BaseTypes dll to your BizTalk Group by adding it as an assembly to BizTalk Application 1. (Richt-click on BizTalk Application 1 à Add à BizTalk Assemblies à Browse to your BTS installation folder and pick the dll. Click on OK. Re-deploy your application

P: When trying to deploy you BizTalk solution, you get error: Parameter name: StrDBName:
S: The problem would usually have to do with the deployment properties in the btproj file (Properties -> Deployment -> Server) trying to deploy to a server to which you do not have access. It is probably set to another server other than your local sql server instance. Either change the server name to your local sql server instance, or if you are trying to deploy to a remote server, make sure the domain name is added to the server name (e.g. Sql server Devbbl02 on Domain btsdev.dev would be entered as Devbbl02.btsdev.dev)

P: when an xml message passes through a port, you get error: "An error occurred when parsing the incoming document: "Invalid Character in the given encoding"
S: The problem would usually have to do with improper or absent declaration in the xml file. BizTalk uses UTF-8 encoding by default in the disassemble and assemble stages of the receive and send pipelines. If as an example, a file in ANSI format containing foreign charcters (basically non-English characters - excuse my partialism) is passed through the receive port using the XMLReceive pipeline without the declaration (i.e. for the default U.S ANSI charset it would be "<?xml version="1.0" encoding="windows-1252"?> the pipeline simply would not be sure how to convert the byte representation of the foreign charcters (since different encodings use different byte representations for foreign characters). the pipeline would therefore not allow the xml file through and the error above would be thrown.

The easiest solution (which of course would almost never happen in the integration world) would be to have the declaration added to the xml file form source

Another solution is to use a custom pipeline component such as the one on this link. You would add it to the decode stage of the receive pipeline to let bizTalk know what encoding it will be dealing with. You then use that custom pipeline in the receive location

Finally, you could write a custom pipeline component to convert from ANSI to UTF-8 and use it in a similar way to the custom pipeline described above

No comments:

Post a Comment