Edmund Zhao's BizTalk abc

BizTalk Messaging Integration & Business Process Integration

  Home  |   Contact  |   Syndication    |   Login
  16 Posts | 1 Stories | 11 Comments | 8 Trackbacks

News



Article Categories

Archives

Monday, April 02, 2007 #

You might receive the "pipeline component load() method failed on IPersisPropertyBag implementation" error message when you try to drag and drop a custom pipeline component into a pipeline stage. The root cause of this issue can be various, but the most common reason for this kind of failure is because ArgumentException is not caught when you develop the Load method of IPersistPropertyBag interface in your custom pipeline component class. A common way to catch exceptions in Load method is similar to the following:

            catch(ArgumentException)
            {
                return val;
            }
            catch(Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

If the first catch is missed, you will receive error when Load method runs for first time.

...Edmund Zhao  


Friday, March 09, 2007 #

In multiple BizTalk server environment, it is pretty common to re-register another BizTalk server on BAS site, and the process could be tricky sometime if you don't want to undeploy anything from BizTalk solution. The following are the steps need to be performed,

1. Open BizTalk Explorer -> Role -> Sender - Delete all
2. Go to TPM Management Tools -> http://localhost/BASSite/Lists/Agreements/AllItems.aspx and inactivate all agreements.
3. Go to TPM Management Tools -> Partner Profiles -> Undeploy all partners
4. Go to TPM Management Tools -> Unregister BizTalk Server (sts.outbox may be bind to orchestration already. In case of that, use BizTalk explorer to unbind it from corresponding orchestrations first. Check if sts.outbox has been deleted, if not, manually delete it)
5. Register BizTalk server
6. Bind sts.outbox to orchestrations
7. Deploy all partners
8. Activate all agreements
9. Check Role -> Sender to see if the party has been enlisted or not

...Edmund Zhao

 


Tuesday, February 13, 2007 #

I received a very unusual error message few days ago when I configured a secondary BizTalk Server to join an existing server group (BizTalk 2004). The error message said "The BAM Primary Import Database registered in the BizTalk Management database is not compatible with the currently installed version of BizTalk Server." It happened only when I added the server to this particular server group, there was no error when I chose to join other server groups. Apparently something was wrong in the configuration of this group.

Before taking action to re-configure the master BizTalk server in that group (of course, all BizTalk applications also need to be redeployed), I checked the database carefully. I found the table "BizTalkDBVersion" in BAM Primary Import Database was empty. So I decided to give a try by manually insert a record into this table. I grabbed the version parameter from corresponding tables on other servers, and inserted a record. After all, the BizTalk configuration allowed me to use this Management batabase!

This helped me to understand the role "BizTalkDBVersion" table plays in each BizTalk databases.

...Edmund Zhao  

 


Tuesday, October 31, 2006 #

Does master secret server always have to be clustered? My answer is practically it is not. The environment I'm working on has 8 BizTalk servers in each server group. Master secret server is on one of these BizTalk servers, not being clustered. The following is how to have the Biztalk server groups to be recovered in case any failure of the master secret server.

1. Make a backup of the secret on master secret server, before it crashes! And store a copy of the secret on each BizTalk server.

2. When the master secret server fails, follow the steps below.

(a) Update "GlobalInfo.xml" under "C:\Program Files\Microsoft BizTalk Server 2004\SDK\Samples\SSO\Manage" and save to "C:\Program Files\Common Files\Enterprise Single Sign-On". And make sure you have the new master secret server name in <secretServer>New Master Secret Server</secretServer> tag

(b) Go to "C:\Program Files\Common Files\Enterprise Single Sign-On". Run "SSOmanage -updatedb GlobalInfo.xml". You might have to go to different directory if you didn't use default directory for BizTalk installation

(c) Run "SSOmanage -serverall <new master secret server>"

(d) In BizTalk admin console change the Enterprise Single Sign-on Server name to <new master secret server>. It is under server group properties -> General tab

(e) Run "SSOmanage -displaydb" to verify the information in the SSO db

(f) Restart ENTSSO service on the new master secret server

(g) Run "SSOconfig -restoresecret <master secret key backup>"

(h) Verify the change by doing health check in BizTalk admin console.

...Edmund Zhao 

 

   


Monday, September 11, 2006 #

It is usually a very important task to clean up a BizTalk mseeage box during stress testing with large amount of messages. Below are the steps to clean up the message box in order to prepare for the new test.

1. Stop all BizTalk services

2. Type “iisreset” at command line to recycle IIS service

3. Execute the stored procedure “bts_CleanupMsgbox” on your message box database

4. Execute the stroed procedure “bts_PurgeSubscriptions” on your message box database

(if the above stored procedures can't be found, go to your BizTalk installation directory, under “Schema” folder, you can find all original scripts of these stored procedures)

5. Clean up the message box log by running the backup statement similar to below

backup log msgBoxDb to disk = “yourbackupdirectory\yourbackupfile.bak' with init, stats = 5

6. Restart BizTalk services

...Edmund Zhao


Monday, March 06, 2006 #

There are two types of dynamic ports in BizTalk 2004. They are Dynamic One-Way Port and Dynamic Solicit-Response Port. The following sample is based on Dynamic One-Way Port, using the other one will be very similar.

1. Create a new BizTalk project.
2. Create a schema to the new project.
   
3. Promote “Destination” to be a distinguished field.
4. Create an orchestration to the project. “DynamicSendPort” is a configure port with “Dynamic” port binding.
   
5. Add the following statement into expression shape. “MsgSample” is the message created in orchestration view
          DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address) = MsgSample.Destination;
6. Associate the strong name key to the project and deploy it.
7. Create receive port in BizTalk Explorer pointing to a local file directory.
8. Bind the receive port to orchestration and start the orchestration.
9. Drop the XML instance file to the receive location and you will see the message sent to the location defined in the instance file. The XML instance file should look like the following.

 
Destinations could be on different protocols as long as the URI is correct. BizTalk will generate “The outbound transport could not be resolved” error if URI couldn't be found. The following are some valid formats.
    file://c:\file\Dynamic\Output\%MessageID%.xml
    msmq://.\private$\TestQueue
    http://orders.mycompany

…Edmund Zhao


Wednesday, February 08, 2006 #

I passed the exam 74-135 yesterday. It was really tough, might be one of the most difficult exams provided by Microsoft. The reason I took this exam was because my company wanted to join BizTalk 2006 Jump Start program, and one of the requirements to participate the program was at least having a consultant passed 74-135. I spent almost a month to prepare for the exam, and finally passed it with all sectional results marked as “Strong”.

If you are also going to take the exam, here are some background information and tips for your preparation.

Exam: 74-135
Name: Developing E-Business Solutions Using Microsoft BizTalk Server 2004 
Questions: 40
Time: 130 minutes
Passing score: 700 out of 1000

1. If you are very family with BizTalk 2004 and have few year experiences, you don't have to worry too much, I'm sure you will pass it. However, I would still suggest you spend few weeks to prepare for it, mainly to fill some gaps between your hands-on experiences and the exam required knowledge, because they will ask you all kinds of questions, even the almost retired HWS!
2. If you are new to BizTalk 2004 or only did some MOC or few simple BizTalk projects so far, I would suggest you to fully prepare for it before you go take the exam. Please refer to my blog on Nov 29, 2005 to see all the resources you could use for preparation. There is no way to pass this exam without a very good understanding of BizTalk 2004!
3. Practice, practice and practice. Like others mentioned in their blogs after they took the exam, lots of practicing always help.

...Edmund Zhao


Wednesday, February 01, 2006 #

BizTalk Server 2004 is not cluster aware, therefore it is not recommended to install BizTalk 2004 on a MSCS based server cluster. However, to achieve high availability of you BizTalk solution, you can still take the following actions. (I assume you are installing BizTalk 2004, SQL Server 2000 on Windows Server 2003)

1. Setup an Active\Passive server cluster based on Microsoft Cluster Services
Install SQL Server 2000 with service pack 3a on the cluster. This step is very easy because SQL Server 2000 fully support MSCS. The following is a great article from Brad M. McGehee telling you all the details. The article was talking about intalling SQL server 2000 on Windows Server 2000, not Windows Server 2003, but it makes no big difference.

2. Install SQL Server 2000 Analysis Services with service pack 3a on the cluster. This step is a little bit complicated because Analysis Services is not cluster-awared. Lots of manual processes will be involved during installation. The following is the detail instruction of installation. The instruction doesn’t mention when and how to install service pack 3a. You need to be ware of that and try to apply the service pack before manually modify things like registry.

3. Install Microsoft Single Sign-On Master Secret Server. This step won’t be too complicated if you have already experienced the installation of Analysis Service cluster. You can follow the instruction below in a great article provided by Mike H.

4. Test them by moving groups in Cluster Administrator

...Edmund Zhao


Friday, January 06, 2006 #

So far, the most complete document about BizTalk 2004 naming conventions is still in the MSDN article “Developing Integration Solutions with BizTalk Server 2004”. However, if you want to adopt these naming conventions, you need to be aware of the following issues in the document,

 

  1. Naming conventions for some BizTalk artifacts are not defined. For example Port Operations, Send/Receive Ports…
  2. Some naming conventions are unpractical. For example, the naming convention for Map file is “_To_.btm”. But in a real world, if you have multiple source schemas or destination schemas, the name will be too long.
  3. Some naming conventions will cause duplication. For example, the naming convention for Send Shape is “Snd_”, how if you send same message a couple of times?

 

Having a strict artifact naming convention on all stage of a BizTalk project could be a disaster sometime. It could significantly slow down the development especially when you need to redo something like an orchestration. So my suggestion is to do minimum custom naming during development phase, and rename them later when your solution becomes mature enough. By saying minimum custom naming I mean you still need to give a proper name to an artifact at the very beginning if renaming later could cause lots of corresponding changes in your solution.

 

...Edmund Zhao    


One important pattern in BizTalk is to partitioning the solution especially when it is big. But some time it’s really difficult to move a file to another project or even just a different folder in same project. This happens most likely when there is an automatically generated file involved.

 

In this example, an orchestration needs to consume a web service. So we added a web reference in the project contained the orchestration. Then we built a map file which maps a schema to the request schema in Reference.xsd which was automatically generated when you added the web reference. In the orchestration, we used the map to build a request message and called the web service.

 

Now we need to move the map file from the orchestration project to a separated map project. But here is the problem. Map project needs to refer to orchestration project because Reference.xsd is still in orchestration project, but orchestration project also needs to refer to the map project because orchestration uses a map in map project. How do we solve this cross reference issue?

 

Here is a solution to this issue.

  1. Still add web reference in your orchestration project.
  2. Copy the automatically generated schema Reference.xsd to another schema project. (This break the referral of your orchestration project, notice every time you change the web service signature, you will need to make a new copy)
  3. Build the map in your map project referring to the schema copied in schema project.
  4. Modify the orchestration. Add one more message based on the Reference.xsd in schema project. After mapping, do a “Message Assignment” to convert your message from external schema to internal schema.

 

This approach has a limitation that is you will have to use “Microsoft.BizTalk.DefaultPipelines.PassThruTransmit” to skip namespace check in your send port. If you use “Microsoft.BizTalk.DefaultPipelines.XMLTransmit” pipeline, an error “There was a failure executing the send pipeline…” will occur.

 

...Edmund Zhao


Wednesday, December 21, 2005 #

A follow developer got “Out of memory” error on BizTalk server and he forwarded me the solution he build and the data he used to test.

 

The solution is pretty straightforward. He needs process about 50 flat files at same time. In average, the file size is about 2MB. Each file contains 8 sections and each section has multiple items with same format. The purpose of this solution is to selectively insert those data into a SQL database.

 

The solution has 2 steps. First step, get the file through a pipeline and convert it to an XML file, then get the XML file into an orchestration and use 8 maps in parallel action to map them to 8 XMLs representing 8 sections, the schema of those XMLs match the SQL request schema which will be used in step2, and then those XMLs will be dumped to local directories. Step 2 will go pickup the messages from local directories and send them directly to SQL adapter to update the SQL database.

 

I found there were lots of problems in this solution. But here I will only cite some major ones.

 

  1. The solution is applying several mappings directly on large messages (average size of 2MB). The way BizTalk 2004 handle mapping logic in large messages is either to split them into small pieces or put the mapping logic to somewhere other than the mapping tool. It is painful BizTalk 2004 mapping tool lack the ability to process large message. When you map large messages, the memory consumption will easily be 10 times or even more of the sizes of themselves. During my testing of this solution, a 2MB file consumed about 50MB memories in step 1 of the solution. This is the main reason of the “Out of memory” failure.
  2. Current design creates couple of XMLs in step1 and uses them as SQL requests to insert or update database through SQL adapter in step 2.  This design has following down sides, when you use SQL adapter, you will have to generate schema for all input parameters even you only use a small percentage of them. This will force you to create large request XML messages which contain the mapping results of original data. Normally it could be fine, but if your have large messages to process, these request messages will also become bigger.
  3. The parameters in stored procedures are too long. The consequent is when you get a large XML to process you will find most of them are not the data you actually need. I checked few XML files after I finished step 1, and found the real data in most of them are only 20% of the file sizes.

 

To fix the issue above, I gave the following suggestion to my fellow developer.

 

  1. The scenario in this solution is almost pure message routing. There are no many data flow logic involved, so we can get rid of mapping and even the SQL adapter. We can write our own .NET assembly including a mapping helper and a db helper to handle them programmatically, and then call the assembly in orchestrations. By doing that, for sure we will get much better performance.
  2. Write a custom pipeline component to cut the original flat file into 8 pieces, each one contains a section. Then split those flat file sections into single unit XML messages through a flat file disassembler in pipeline. Then load the XML into orchestration and do the mapping, finally call the SQL adapter to update database. Correlation may need to be required in this solution.
  3. Last suggestion is simple. Just rename the parameters in stored procedures. Give short name, this could cut XML message size at least 50% off.   

 P.S.

 BizTalk 2006 is supposed to solve the large message mapping issue. The following statement is from Microsoft web site.

 

Large message transformation. In previous versions of BizTalk Server, mapping of documents always occurred in-memory. While in-memory mapping provides the best performance, it can quickly consume resources when large documents are mapped. In BizTalk Server 2006, large messages will be mapped by the new large message transformation engine, which buffers message data to the file system, keeping the memory consumption flat.

 

...Edmund Zhao


Wednesday, December 14, 2005 #

Lots of BizTalk developers were facing similar problems when they built their own .NET test applications to test the web services generated by BizTalk Web Services Publishing Wizard. The debugging process stopped at “this.Invoke()”, and usually there will be an error message of “Internal SOAP Processing Failure”. If you check the event log, you will also see an error similar to “The Messaging Engine failed to register the adapter for SOAP for the receive location ...asmx. Please verify that the receive location is valid, and that the isolated adapter runs under an account that has access to the BizTalk databases.”

 

The first thing you can do is to check the status of your orchestration in BizTalk Explorer. Make sure the orchestration is properly bound to its corresponding web ports, and it is enlisted and started. If the status of your orchestration is ok, most likely it’s a security issue on the machine you are running the web services and BizTalk orchestration.

 

Here are some tips to help you solve the issues.

 

Q: Should I turn off anonymous access to the web service project?

A: No, otherwise you will receive “The request failed with HTTP status 401: Access Denied.” error.

 

Q: Should I change the default namespace “http://tempurl.org/” of my web service to match the real URL of the web service?

A: No, it’s not necessary. But it will be a good practice to rename it to be something meaningful.

 

Q: I’m running my test on Windows 2003 and I received “Internal SOAP Processing Failure” error. What should I do?

A: Find out the identity under which the application pool is running. Add this user to both “IIS_WPG” and “BizTalk Isolated Host Users” groups. Check the permission of %temp% folder. Make sure either the user running the application pool or the groups this user belongs to has read/write permission on %temp% folder.

 

Q: I’m running my test on Windows XP and I received “Internal SOAP Processing Failure” error. What should I do?

A: Add user “ASPNET” into “BizTalk Isolated Host Users” group. Check the permission of %temp% folder. Make sure either ASPNET or “BizTalk Isolated Host Users” group has read/write permission on %temp% folder. If your %temp% folder is on FAT32, don’t worry about the permission.

 

A good reference for you to understand more details is an MSDN article BizTalk Server 2004 and Web Services.

 

...Edmund Zhao


Tuesday, November 29, 2005 #

I have been working on BizTalk for few years since the 2000 version was released. Although Microsoft did some great job to improve their online technical information about BizTalk during the past years, I believe lots of BizTalk developers are still using groups and blogs as a preferred resource of information. BizTalk is such a detailed technology that it will be very hard sometime for a developer to find a proper pattern to solve a particular problem. That's why I'm going to build this blog and start to do something for our community. I'd like to thank every fellow BizTalk blogger, your wonderful contribution made my job much easier.

 

...Edmund Zhao


I got this from a partner working for Microsoft, found it quite useful, especially for new comers to the BizTalk world. I'm going to save it in article section as well, and keep the list updated to including more resources for not only BizTalk 2004, but also BizTalk 2006 and any later version...Edmund

 

White Papers

 ·         Enterprise Integration Vision for BizTalk Server 2004

Discover how XML and Web services are implemented within BizTalk Server 2004, Microsoft Visual Studio .NET, and Microsoft Office 2003 and how they interact with each other to create a process-centric computing infrastructure.

·         Choose a Business Process Automation Solution

Read this in-depth analysis of how BizTalk Server 2004 delivers a more integrated business process automation (BPA) solution than the WebSphere Business Integration system from IBM.

·         Developing a BizTalk Server Solution for BizTalk Server 2004

See how BizTalk Server 2004 enables developers and system architects to use the same development methodology and components to create workflow processes, application integration interfaces, and trading partner interactions.

·         Architecture for BizTalk Server 2004

Learn fundamental concepts and development methodologies of the Service-Oriented Architecture (SOA) paradigm and its implementation in BizTalk Server 2004, including the Microsoft .NET framework architecture.

·         Business Rules Framework in BizTalk Server 2004

Examine the creation and deployment of business rule "policies" in BizTalk Server 2004, and see how a development environment that enables business rules to function as transparent services can effectively drive business agility.

·         A Technical Guide For Certificate Management

This paper provides detailed information about how to configure your BizTalk Server environment to use certificates for encryption, signing, and party resolution.

·         Security for BizTalk Server 2004

Examine security mechanisms and deployment methodologies that BizTalk Server 2004 uses to authenticate data, authorize access, and maintain data privacy and integrity.

·         Service-Oriented Architecture Paradigm Takes Center Stage in the Enterprise

Use Microsoft InfoPath with BizTalk Server 2004 to address complex workflow issues, demanding documentation requirements, and application integration issues, with a view towards building an agile enterprise.

·         Single Sign-on Services for Microsoft Enterprise Application Integration Solutions

Microsoft Host Integration Server and BizTalk Server both support an extension of Microsoft Windows Enterprise Security integration called Enterprise Single Sign-On (SSO). Learn how SSO can help solve a key problem that many enterprise organizations experience. Download this paper from the Microsoft Download Center for the details.

·         Understanding BPM Servers and BizTalk Server 2004

Learn more about this conceptual framework for BPM Server and how the major technologies of BizTalk Server 2004 correspond to these services.

·         Understanding the Hub and Spoke Deployment Model for BizTalk Server 2006

Read this article to understand how the BizTalk Server 2006 hub and spoke model supports administrators who want to install and deploy the associated bits of a BizTalk Server solution from one central server and multiple remote servers.

·         Using Microsoft Tools for Business Process Management in BizTalk Server 2004

See how Microsoft tools for business process management (BPM) and supporting technologies help you create and execute highly transparent and modular process-oriented workflows and gain development and operational productivity.

·         Check for Updated and New white papers: http://www.microsoft.com/biztalk/techinfo/whitepapers/2004/default.mspx

·         Check for Updated MSDN Technical Articles: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/90a5261b-a220-41bf-bf7f-fd759239242c.asp

  

Webcasts

 ·         MSDN Architecture Webcast: Design Human Workflow Solutions with BizTalk Server 2004 (Level 200) Thu, 03 Nov 2005

·         MSDN Webcast: Extending BizTalk Solutions to IBM Systems Using Host Integration Server 2004 (Level 200) Thu, 20 Oct 2005

·         MSDN Webcast: What's New in BizTalk Server 2006 (Level 200) Thu, 06 Oct 2005

·         MSDN Architecture Webcast: BizTalk Server Security Revealed (Level 300) Thu, 22 Sep 2005

·         MSDN Architecture Webcast: Microsoft Integration Technologies: When to Use What (Level 200) Thu, 08 Sep 2005

·         MSDN Webcast: BizTalk Server 2004 Business Rules Engine (Level 200) Wed, 31 Aug 2005

·         MSDN Webcast: Business Activity Monitoring with BizTalk (Level 200) Tue, 30 Aug 2005

·         MSDN Webcast: BizTalk Orchestration (Level 200) Mon, 29 Aug 2005

·         MSDN Webcast: BizTalk Web Services and WSE (Level 200) Fri, 26 Aug 2005

·         MSDN Webcast: Introduction to BizTalk Server 2004 (Level 200) Thu, 25 Aug 2005

·         MSDN Webcast: An XML Guru's Guide to BizTalk Server 2004 (Level 200) Wed, 01 Jun 2005

·         TechNet Webcast: BizTalk Server 2004 Technical Overview (Level 200)  Fri, 20 May 2005

·         MSDN Webcast: Implementing a Business Rules Engine Solution Using BizTalk Server 2004 (Level 200) Fri, 20 May 2005

·         MSDN Webcast: Using the BizTalk Business Rules Engine: Tips, Tricks and Best Practices (Level 200) Fri, 13 May 2005

·         MSDN Webcast: A Practical Approach to BizTalk Server 2004 and Web Services (Level 200) Wed, 11 May 2005

·         MSDN Webcast: Everything You Wanted to Know About Integration But Were Afraid to Ask! (Level 200) Thu, 05 May 2005

·         MSDN Webcast: Test-Driven Development with BizTalk Server 2004 (Level 200) Wed, 04 May 2005

·         Microsoft Executive Circle Webcast: BizTalk Accelerator for SWIFT Tue, 05 Apr 2005

·         Microsoft Executive Circle Webcast: A4SWIFT and Implementing SWIFT Standards Using BizTalk 2004 Thu, 31 Mar 2005

·         Microsoft Executive Circle Webcast: Data Management in STP  Thu, 17 Mar 2005

·         Microsoft Executive Circle Webcast: Creating Operational Efficiencies in Today's Financial Services Firms  Tue, 08 Mar 2005

·         Microsoft Executive Circle Webcast: Interoperability Challenge of Maritime Security Wed, 02 Feb 2005

·         Microsoft Executive Circle Webcast: Using BizTalk 2004 To Implement An SOA For Service Provisioning  Mon, 31 Jan 2005

·         MSDN Webcast: Integrating BizTalk Server 2004 with SharePoint Sat, 16 Oct 2004

·         Microsoft Executive Circle Webcast: Cutting Medical Red Tape to Save Dollars and Lives: An Integrated Approach to Workflow and Data Exchange Tue, 25 May 2004

·         MSDN webcast: Extending Mainframe Applications using BizTalk Server 2004 and Host Integration 2004 - Level 200 Mon, 24 May 2004

·         MSDN Webcast: BizTalk Server 2004 Adapters for the Visual Studio .NET Developer - Level 200 Fri, 07 May 2004

·         MSDN Webcast: Migrating from BizTalk Server 2002 to 2004 - Level 200 Mon, 03 May 2004

·         Microsoft Executive Circle Webcast: Increased Agility with Web Services Wed, 28 Apr 2004

·         MSDN Webcast: InfoPath SP1 and BizTalk Server - Level 200 Mon, 19 Apr 2004

·         MSDN Webcast: BizTalk Server 2004 EDI with and without the Covast Accelerator - Level 200 Wed, 14 Apr 2004

·         Microsoft Executive Circle Webcast: Enterprise Application Integration (EAI) Governance Tue, 13 Apr 2004

·         MSDN Webcast: Real-World BizTalk Server 2004 Editing and Mapping Techniques - Level 200 Thu, 08 Apr 2004

·         MSDN Webcast: Adding Business Activity Monitoring your BizTalk Server 2004 Projects Thu, 08 Apr 2004

·         MSDN Webcast: Integrating BizTalk Server 2004 with SharePoint Fri, 05 Mar 2004

·         MSDN Webcast: BizTalk Server 2004 Business Rules for the Visual Studio .NET Developer Thu, 04 Mar 2004

·         MSDN Webcast: Using Web Services with BizTalk Server 2004 Thu, 04 Mar 2004

·         MSDN Webcast: BizTalk Server 2004 Performance and Early Adopter Experiences - Level 200 Wed, 03 Mar 2004

·         MSDN Webcast: Biztalk Server 2004 Architecture - Level 300 Wed, 03 Mar 2004

·         MSDN Webcast: Biztalk Server 2004 Orchestration for the Visual Studio .NET Developer Wed, 03 Mar 2004

·         MSDN Webcast: Getting up to speed with BizTalk Server 2004 for the Visual Studio .NET Developer - Level 200 Tue, 02 Mar 2004

·         Microsoft Executive Circle Webcast: Microsoft and Metastorm: Implementing the Business Process Management Solution Thu, 26 Feb 2004

·         Microsoft Executive Circle Webcast: Leveraging Business Solutions with BizTalk Server 2004 Tue, 10 Feb 2004

·         Microsoft Executive Circle Webcast: Real-Time Pre-Trade Compliance Monitoring of Investment Policy Wed, 28 Jan 2004

·         Microsoft Executive Circle Webcast: Manage Trading Partner Integration with BizTalk 2004 Wed, 17 Dec 2003

·         Microsoft Executive Circle Webcast: Check Capture and Clearing – How to Manage Declining Fri, 12 Dec 2003

·         MSDN Webcast: Biztalk Server 2004 Tue, 09 Dec 2003

·         MSDN Webcast: Biztalk Server Then and Now Mon, 03 Nov 2003

 ·         Advanced Orchestration Concepts in BizTalk Server 2004 - Convoy Processing

·         MSDN Webcast: Getting up to speed with BizTalk Server 2004 for the Visual Studio .NET Developer

·         MSDN Webcast: Biztalk Server 2004 Orchestration for the Visual Studio .NET Developer

·         MSDN Webcast: Biztalk Server 2004 Architecture

·         MSDN Webcast: BizTalk Server 2004 Performance and Early Adopter Experiences  

·         MSDN Webcast: Using Web Services with BizTalk Server 2004  

·         MSDN Webcast: BizTalk Server 2004 Business Rules for the Visual Studio .NET Developer

·         MSDN Webcast: Integrating BizTalk Server 2004 with SharePoint  

·         MSDN Webcast: Extending Mainframe Applications using BizTalk Server 2004 and Host Integration 2004

·         MSDN Webcast: Adding Business Activity Monitoring your BizTalk Server 2004 Projects - Level 200

·         MSDN Webcast: Real-World BizTalk Server 2004 Editing and Mapping Techniques - Level 200

·         MSDN Webcast: Building on BizTalk Server 2004 Human Workflow Services for the Visual Studio .NET developer - Level 200  

·         MSDN Webcast: BizTalk Server 2004 EDI with and without the Covast Accelerator - Level 200  

·         MSDN Webcast: InfoPath SP1 and BizTalk Server - Level 200 MSDN Webcast: Migrating from BizTalk Server 2002 to 2004  

·         MSDN Webcast: BizTalk Server 2004 Adapters for the Visual Studio .NET Developer

·         MSDN Webcast: Advanced Orchestration Concepts in BizTalk Server 2004

·         MSDN Webcast: Extending Mainframe Applications using BizTalk Server 2004 and Host Integration 2004

·         MSDN Webcast: Advanced Orchestration Concepts in BizTalk Server 2004 - Level 300

·         TechNet Webcast: Monitoring your E-Business Solutions with Microsoft Operations Manager 2005 - Using Built-In Knowledge in MOM 2005 to Reduce Downtime (Level 300)

·         MSDN Webcast: Host Integration Server 2004 Extends BizTalk Solutions – Level 200

 ·         Check for Updated and New web casts: http://www.microsoft.com/events/AdvSearch.mspx?EventsAndWebcastsControlName=As1%3AAdvSrc&As1%3AAdvSrc%3AAudienceID=0&As1%3AAdvSrc%3AProductID=a913e33b-e7d2-4eea-8556-c18f5b3670f8&As1%3AAdvSrc%3AEventType=OnDemandWebcast&As1%3AAdvSrc%3ACountryRegionID=en%7CUS%7CUnited+States&StateProvinceID=0&As1%3AAdvSrc%3ATimeframeID=-1&As1%3AAdvSrc%3ASearchFilter=%C2%A0+Go+%C2%A0

  

Community and Bloggers

 ·         Community: BizTalk Server Community on Microsoft.com

·         News Group: BizTalk Server News Group on TechNet

·         Consolidated Blog Entries: The Blogger's Guide to BizTalk  

·         Product Group Blog: BPID Customer Response Team's Blog

·         Scott Woodgate’s Blog: http://blogs.msdn.com/scottwoo/

·         Product Group Blog: http://blogs.msdn.com/Biztalk_Core_Engine

·         BizTalk on Channel 9: http://channel9.msdn.com/tags/Biztalk

  

Self-Guided Training

 ·         On-line Technical Training through MSDN

Step into the BizTalk Virtual Lab for Free and learn BizTalk Server hands-on
It's simple - no complex setup or installation is required to try out BizTalk running in the full-featured MSDN Virtual Lab. As part of the MSDN Virtual Lab, you will have full access to BizTalk through 14 different, 90 minute modules including topics such as Creating a Schema Map, Integrating Business Rules, and Enabling Business Activity Monitoring.

·         Connected Systems Business Kit

Now available to order at no charge, the Connected Systems Business Kit shows you how connected systems deliver value to your business. The resources in this kit can help you better align your IT with your business. http://www.microsoft.com/windowsserversystem/overview/benefits/cstrial.mspx

  

Classroom Training

 ·         Deploying and Managing E-Business Solutions Using Microsoft BizTalk Server 2004

Learn how BizTalk Server 2004 can help you deploy and manage your E-Business solutions in this two-day course offered by Microsoft Learning. 

·         Developing E-Business Solutions Using Microsoft BizTalk Server 2004

Discover how BizTalk Server 2004 can help you develop your E-Business Solutions in this five-day course offered by Microsoft Learning.

·         Find BizTalk Server Training and Resources

Increase your market value with these educational resources. Choose from online and instructor-led courses as well as books.

·         Become a Technical Leader—Get Certified Now

Prove your advanced skills and experience with Microsoft technologies by becoming certified. Microsoft certification helps organizations identify the best in the industry. Visit the Training & Certification site to learn more.

 

Related Sites

 ·         BizTalk Server on MSDN

·         BizTalk Server on TechNet   

·         BizTalk Server on Microsoft.com   

·         BizTalk server on GotDotNet    

  

Books

          BizTalk Server 2004 Unleashed

ISBN: 0672325985; Published: Nov 4, 2004; Copyright 2005;

Dimensions 7-3/8" x 9-1/8" ; Pages: 768; Edition: 1st.  

·         Designing Healthcare Solutions with Microsoft Biztalk Server 2004 (VertiGuide)

ISBN: 1932577181

Format: Paperback, 255pp

Pub. Date: December 2004

Publisher: Mann Publishing Group  

...Edmund Zhao


Wednesday, November 30, 2005 #

I got a problem yesterday when I added a web reference to my BizTalk project. The error didn’t come right away after I added the web reference. Instead, when I tried to open the Reference.xsd or rebuild the project, I got the error “The ‘http://www.w3.org/2001/XMLSchema:schema’ element is not declared…”. I found the reason was because the web service returned a complex type object which contained a DataSet. According to Considerations When Consuming Web Services  DataSet should be supported. If I have a web service return a DataSet as result, there should be no problem because Reference.xsd won’t be created anyway. But this time the returned result was a serializable class, but this class contained a DataSet as a property. Therefore, BizTalk would still try to generate a Reference.xsd file, but inside of the XSD file, the DataSet portion was not handled.

 

Now I have few options to work around this problem. But first of all I will have to accept this returning class which contains the DataSet and a long list of other simple types propertities, because the class will be automatically generated by a screen scraping software called “FARABI”, and every time I modify the screen scraping navigation, the class will be regenerated again. Since apparently manually change the XSD is not a preferred way to handle this kind of issue, I modified my project following the steps,

 

  1. Create a wrapper class for the automatically generated the class by FARABI. The new class will have same amount of properties as the FARABI class, they are all simple types, and each one maps to a property in the FARABI class.
  2. Put the following method into Web Service project

            private string ConvertDataSetToString(DataSet ds)

            {

                  byte[] arr;

                  MemoryStream stream = new MemoryStream();

                  XmlSerializer serializer = new XmlSerializer(typeof DataSet));               

                  StreamWriter writer = new StreamWriter(stream, Encoding.Unicode);

                  serializer.Serialize(writer, ds);

                  StreamReader reader = new StreamReader(stream);

                  arr = stream.ToArray();

                  UnicodeEncoding utf = new UnicodeEncoding();

 

                  return utf.GetString(arr);

         }

  1. Modify the web method. Create an instance of the wrapper class and assign all values of FARABI class properties to their corresponding properties in the new wrapper class instance, use the ConvertDataSetToString method to convert the DataSet in FARABI class to a string in wrapper class, and return the new wrapper class instance.
  2. Add a web reference to BizTalk project using the new web service, and Reference.xsd is created without error. Now I can apply any mapping to the new schema! When I get the string of the original DataSet, I can still write some code to convert it back to a DataSet.   

...Edmund Zhao


Monday, December 05, 2005 #

My client decided to use MQSeries as their standard messaging tool to build their BizTalk 2004 solutions. Therefore I did some research and found the following facts.

1. There is a free MQ adapter for BTS 2004 could be downloaded from Microsoft web site. A great article from Mike Holdorf described how he enjoyed this free adapter. But appearantly this free adapter is not based on an elegant design. According to Microsoft BizTalk Adapter for MQSeries White Paper, user needs to setup a new windows server and install MQ server on it because "MQHelper" dll needs to be physically installed on that server in order for COM+ to work. Please note this white paper is based on BizTalk 2002, but even in BizTalk 2004, this architecture was not changed, just the "MQHelper" was renamed to "MQSAgent". Therefore, in order to use this free MQ adapter, user needs to buy addition window server and the license of MQ server.

2. I was told by Microsoft the MQ Adapter bundled in BizTalk 2006 would still keep the same architecture, they did have a plan to develop a new adapter to support MQ client which is free, not the licensed MQ server, but delivery date was still unclear.

3. Third party MQ adapters are available, and there is no requirement for MQ server on Windows. I will compare those products in my next post to give more details on functionality and performance.

4. XMS is the IBM message service API for .Net, but it's still on Beta version. Other than it, I couldn't find other APIs to facilitate development of custom MQ adapter for BizTalk.

…Edmund Zhao