Category Archives: BPI

Advanced correlation

0
Filed under BPI
Tagged as

For a client I described an architecture where a validation process should be used for several parties. I want to make a generic process, because all the processes look the same, with only some differences on transport, ack/nack after validation, schemas and mappings. The main processes would be: Validation and Processing, where Validation will do the validation on the message (against schema, party resolution, duplicate check) and Processing will do the mapping (and validation) and sending the message to the receiving system. This all will be configurable. Because I want to use a generic process and the client has to deal with One-Way and Two-Way receive ports, I had to figure something out for myself and the developers: how can the Validating and Processing process (orchestrations) stay generic, without copying it to a new Orchestration with the same functionality? The answer to this is: use a helper Orchestration for Request-Response support and correlation for routing messages to the Orchestrations and back to the MessageBox. The demo contains a basic helper Orchestration for the Request-Response mechanism and an Orchestration which does some validation. This Validation Orchestration is very basic and only for showing how to use Correlation and send back to the calling Orchestration.

Next steps take place:

  • Receive message from any transport and use a custom pipeline component for promoting some context properties for routing to the right process (adding a routing slip).
  • Depending on the promoted property the next Orchestration will be started:
    • ReqRespOrch – Helping Orchestration for Request-Response pattern
      • Promote context property with value of Validating Process
      • Send message back to the MessageBox with initializing a correlation set
      • Wait for a while for a response (listen) with the same correlation token (because I used XmlDocument in the whole process, I had to create a specific response else the Orchestration would trigger itself straight away. This response can hold for example another Xml. Not detailed here).
      • Send the response back
    • ValidateMessage – Orchestration for validating a message. Can be started by ResRespOrch (properties set over there) or by the OneWay port (properties set over there)
      • Use XmlValidator for validating a message. In this demo I hardcoded the schema to validate against.
      • Promote the right context properties. Depending on the kind of Receive Port (OneWay or TwoWay), the BTS.Operation is copied from the incoming message to the outgoing message (Ack in this demo). Also promote the correlation token from the incoming message and update the routing property.
      • Send Message back to MessageBox
  • Depending on the context properties (and with that: correlation) the message will be send back to ReqRespOrch or to a send port which has the right subscription on the context properties.

Techniques used in this Demo:

  • Promoting custom context properties in a custom pipeline component
  • Using correlation for returning the process back to the Orchestration
  • Promote context properties within an Orchestration (use initializing correlation set on send port, you don’t have to follow this correlation set)
  • Use generic documents (XmlDocument)
  • Use filtering for routing messages through your BizTalk environment
  • Use XmlValidator for validating messages in an Orchestration, so you have full control on the outcome of that
  • Use BizTalk Deployment Framework and BizTalk Software Factory (http://bsf.codeplex.com)

This demo is very basal, but has all ingredients for a generic solution. The only thing not used here is use of configuration in Single Sign-On. I also didn’t put effort in the WebService, so this receives an ‘any’ message. And of course because this is a demo I didn’t use standards and naming conventions.

Note: because the client is using BizTalk Server 2006 (not R2) I had some limitations for myself. This solution will also working in newer versions for BizTalk Server.

You can download the demo here. Feel free to use or copy what ever you need. If you have any questions or remarks then don’t hesitate to contact me. Also when you think the above solution could work in a different way. And yes: you don’t get any warranty ;-)

Cheers…

  • Share/Bookmark

Reference: Reasons for moving from BizTalk Server 2006 to BizTalk Server 2009 R2

0
Filed under BPI
Tagged as

At the moment I’m working with a customer who also is using BizTalk Server 2006. This post blogs about why moving to BizTalk Server 2009 R2. Not all the reasons apply to the customer I’m working with, but a lot does: like pricing, WCF, also ESB, easy usage of BAM (2009 will also suit), but most important: end-of-life mainstream support. Another reason not mentioned is implementing a new architecture. When your organization is at the start of implementing a new architecture, why not use the latest technology? (as an answer on my own question: pricing :-) / business case). What also a problem can be to migrate: all old interfaces must be migrated to a new environment, build, tested and deployed, without interfering the ongoing business. So all interfaces must work as they did before. Another good reason for developers is that they can work with the latest technology, so that they don’t stay in an old environment and are triggered to renew and keep in touch with new development.

  • Share/Bookmark

Reference ‘“Route Failed Messages” routes the wrong message – really?’

0
Filed under BPI
Tagged as

The BizTalk Team Blog blogged about routing wrong messages. A detailed description of the BizTalk process is described when a message can’t be processed (no subscriber). Techniques used: “Route Failed Messages”, “SuspendMessageOnRoutingFailure” and “Recoverable Interchange”. See the complete post here.

  • Share/Bookmark

Windows Server AppFabric Beta 2 is available

0
Filed under BPI
Tagged as

See: http://blogs.technet.com/appfabric/archive/2010/03/01/windows-server-appfabric-beta-2-is-available.aspx

  • Share/Bookmark

Reference “BizTalk: Compensation Model”

0
Filed under BPI
Tagged as

Respect for Leonid Ganeline for writing a great detailed article on the compensation model within BizTalk Server. You can read it here.

  • Share/Bookmark

BizTalk Server 2006 R2 SP1

0
Filed under BPI
Tagged as

Microsoft published SP1 for BizTalk Server 2006 R2. You can find it here.

From the Microsoft site:

Better reliability, performance, and scale for the following key features:

  • Throttling and dehydration of orchestrations.
  • Archiving and purging operations.
  • BAM alerts and archiving.
  • HIPAA.
  • Reduced memory consumption in scenarios using scripting functoids.
  • Improvement in the bts_FindSubscription stored proc, resulting in faster execution and lower CPU utilization.

Better management and deployment experiences:

  • Performance and user experience improvements of key scenarios.
  • WCF configuration management.
  • Significant improvement in deployment time for send ports using a map.

Improved support:

  • X12 and EDIFACT updates.
  • Increased footprint of supported FTP servers and locale.
  • XMLDocument message types in orchestrations.
  • Configurable timeout for Basic HTTP.
  • WCF adaptor now suspends messages instead of terminating when the host instance is stopped.
  • Configurable transaction timeout for WCF Adaptors.
  • Mapping of inline schema for SQL Adaptor now allows for using $ characters as part of the updategram.
  • The SQL Adaptor now supports calling from a BizTalk Server dynamic send port. The following properties can be set on the call to the dynamic port:
          Connection string (all the SQL connection properties)
          Document Target Namespace
          Response Document Root Element
  • Ability to disable generation of Routing Failure Report.
  • Fixes to some issues that used to cause high CPU usage by BizTalk Server hosts due to certain .NET updates.
  • Ability to use multiple certificates for signing outbound messages.
  • Message Pack 2009.
  • Message property tracking with BAM for all messages in the interchange, irrespective of the usage of pipeline or mapping.
  • Integrated tracing to help in debugging EDI specific issues. This improvement is aimed at reducing the time taken for diagnosing and isolating an EDI problem.

New Features:

  • For WCF-Custom and WCF-CustomIsolated Adapters, the ability to look up custom bindings from locations other than machine.config.
  • Support for using multiple certificates to sign outgoing AS2 messages.
  • Share/Bookmark

“The type System.Xml.XmlDocument may not be used in this context”

0
Filed under BPI
Tagged as , ,

We received this message. It was clear it had to do something with the SOAP call and the message type was not set. This can have several reasons: schemas not deployed correctly, target namespace wrong, root name wrong, etc. The SOAP adapter must be able to find the corresponding schema for serializing. In our case we forgot to enter the proxy assembly, type name and the method to use (created a new two-way send port instead of a one-way send port). This proxy assembly holds knowledge on the schema to use.

Error message:

General exception soap Microsoft.XLANGs.Core.XlangSoapException: An error occurred while processing the message, refer to the details section for more information
Message ID: {8E2E044D-EA52-4006-9F1C-32A25DC2A2AC}
Instance ID: {5FCED1F3-8D45-430C-B45F-A77E7D0E46CE}
Error Description: SoapException: Server was unable to process request. —> There was an error generating the XML document. —> The type System.Xml.XmlDocument may not be used in this context.
   at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env, Int32 operationId, Context ctx)
   at Microsoft.XLANGs.Core.Subscription.Receive(Segment s, Context ctx, Envelope& env, Boolean topOnly)
   at Microsoft.XLANGs.Core.PortBase.GetMessageId(Subscription subscription, Segment currentSegment, Context cxt, Envelope& env, CachedObject location)
   at DTAOrderMessaging.ProcessOrder.segment2(StopConditions stopOn)
   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

Proxy configuration:

clip_image002

 

Question raised on my site: does BizTalk hold history/information on changed configuration items with a timestamp and user?

Or must we dive in the SQL logs, or must we capture it our self? (didn’t do any investigation on this part)

  • Share/Bookmark

Extending a BizTalk ESB Toolkit On-Ramp into the Cloud: a demo by Brian Loesgen

0
Filed under BPI
Tagged as , , ,

Brian Loesgen created a great demo on the Azure platform AppFabric Service Bus. This demo showed also some features (combinations) of Business Rule Engine, ESB Toolkit, InfoPath and SharePoint.

You can find the video here.

  • Share/Bookmark

Installing BizTalk Server 2009 on Windows 7

0
Filed under BPI
Tagged as

Normally I’m developing on a Windows Server system. But within our company we are moving as developers to Windows 7, because we segregate our duties to some other disciplines (like testing and building packages). I still like working on a server machine, because I will run into problems which also can occur in a production environment. On a Windows 7 machine I have to trust my colleagues that they will test everything (sorry guys :D ). Note: I wouldn’t have a problem when our integration test server machine was part of the daily build (so automated integration tests). Nice discussion. Leave some comments on how you feel about this.

Back to installing BizTalk Server 2009 on Windows 7. The setup runs smoothly, BUT if you want to use the BAM portal then it is possible that you receive the next screen:

image

In my case it had to do with my 64-bit system. The BAM portal runs in 32 bit mode. To make this work do the following:

image

Enable IIS 6 compatibility mode via Windows features (Control Panel –> Programs and Features).

Start a command prompt as an Administrator:

image

Execute the next command: cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 1

Continue the BizTalk Server 2009 Configuration tool. Now you can select the BAM Portal Web Site (default or another one).

 

Best wishes for 2010 and happy BizTalk-ing!!!

  • Share/Bookmark

BTUG Netherlands: 19th of January

0
Filed under BPI

The next BTUG is on the 19th of January in Amstelveen. They have made an interesting agenda:

Wouter Krooy – BizTalk 2009 + ESBT 2.0 in an event driven architecture
Martin Rienstra – Making orchestrations robust
Dick Dijkstra – live SAP-demo
Patrick Wellink – Best practices in the BizTalk Software Factory from Logica

  • Share/Bookmark