Showing posts with label BizTalk 2006. Show all posts
Showing posts with label BizTalk 2006. Show all posts

Saturday, August 1, 2009

Call outs (Plug-in)/CRM Adapter Vs Ajax Calls for Microsoft CRM integration

Recently, I have been undergone with experimental investigation during my CRM exploration drive with CRM 4.0. To design event driven data receive from Microsoft CRM, we can use some of in-house functionalities like Workflow, Callouts (Plug-in for 4.0 Version) and BizTalk (CRM Adapter/SOAP Adapter - CRM Web Services) but with these all methodology we are creating extra overhead on CRM Server only. I trial with my laptop and VS 2008 to create such scenario and compare results between different implementation methodologies and I found very interesting results.

My System Configuration is Turion x2 64 1.9 GHz with 4 GB RAM, this system I have used for the excremental drive. I have dedicated virtual PC to CRM and bombard through VS 2008 test agents and generate real-time scenario of 10 active users which I can say equivalent to standard production servers configuration and 100 active users for any SMB organization.

Workflows / Plug-in(s) & Callout(s):

I found some interesting results, first let me go through workflow options, workflows are basically design over the land of Windows Workflow foundation and they follow the same process like custom plug-in(s). I tried to integrate different entities and their data using event driven BizTalk SOAP calls. Workflows have very high latency (more then 4 minutes approx) and also they are very resource consuming, I found my processor was used more then average 65% and some time it picked 100 % utilization. It's oblivious that workflow will be slower as CRM itself takes 30-60 sec to invoke workflow after an event as well as workflows have been called by in process .net assembly (similar like call out assembly) so it would be slower and resource consuming option.
Advantages:
- More control over the Integration.
- Stronger security.
- Collaboration integration.
- Custom composite messages and control over message build
- Synchronized and asynchronized approach, gives flexibility.
Disadvantages:
- Higher latency.
- Resource consuming.
- Slow

CRM Adapter:

CRM adapter is general practice for integrating Microsoft Dynamics CRM to external world. It is quite easy and quicker to building solutions. It allows you to fetch all entities in the standard schema format as they have in Microsoft CRM. Let's back to performance, as it relay on different mechanism then workflows and callouts, it talk with SOAP services (Web Services) in CRM so it's bit quicker the previous option but it also generate process overhead on CRM server/databases to fetch data. The same amount of resource utilization i observed for CRM adapter.
Advantages:
- Easy to design and develop schemas and messages.
- Quick development.
- Faster then workflow(s) and plug-in/(s)callout(s).
Disadvantages:
- No control over message structure.
- Only support asynchronize method.
- Resource consuming.

Ajax Calls (Java Script calls):

'AJAX' is very fancy term but believe me it has same qualities inside implementation. Asynchronized JavaScript and XML (AJAX) generally used into web development but it have very large scope of implementation across various scenarios like such client face integration to Servers. I would like to elaborate such functionalities I have implemented in past and the result with this excremental drive. Supremely, it works really well with such load and handling such great traffic of requests without any failures and heavy latency.


img. 1. AJAX WS* Call

In above code you can write the synchronize post method as well as asynchronize post method, as in my organization we are using only IE for CRM client such Microsoft active x object works well with it.
Advantages:
- Very quick as it been called by client side code.
- No overhead for integration on CRM server.
- No read call back to database and CRM Server (unless you require to fatch GUID PK, still they are manageable with advance coding in java script)
- Full control over the message and schema, you can build custom schemas and message as per organization need.
- Full control over process, it support synchronize and asynchronize methods.
- Easily we can develop such bespoke services to plug into existing infrastructure.
- BizTalk and other Integration tools can easily connect without any third party components or services as WS* are standards.
Disadvantages:
- Security, need to provide enhanced security features, if it's called and manage by internal domain then it would be not issue.

Personally, I believe all methods and technologies have advantages and disadvantages; it's up to us what we select as best for the scenario.

Hope you like this article, please give your feedback to nilayparikh@gmail.com

Wednesday, March 26, 2008

Consuming WCF Services in BizTalk Server 2006 R2 - Add generated items (WCF Services)


I was thinking a long back to come up with this article, and now just found time to write about WCF services and it's implementation with BizTalk Server 2006 R2. I have designed few small solutions in past few months to deal with scenarios like Information Integration and SOA with BizTalk Server R2, where I found the great chance to work upon the WCF adapter series as well as Web Service Factory : Modeling Edition. Both made me big fan of them, it's great to work on both, I am not focusing on WebService Factory modeling in this article but will discuss about WCF services consumption inside BizTalk and few videos might help people to work on them.

I would like to share few images below, by reading this images you can understand the service I have coded for sample, if you are interested in sample code please mail me, and I promise you will find that sample someday in you mail box... when that I don't know. :-) But will try send you soon as possible for me.

The best way I feel to consume WCF services inside BizTalk solution is by using WCF Services Consume Wizard which you can find in Visual Studio Template, this wizard will power you by generating schema and port binding configuration files for your solution based on service descriptions. Not going into deep how this work internally here but focusing on the practice I gone through.

Below image shows Generated Items and Visual Studio Template.

Please have a look to the below Video Presentation where you can find what steps I followed to generate my sample project. Hope it will surely help you in any manner while working with WCF and BizTalk together.




As result of Wizard you will get schema and binding files inside your solution, that schema will be generated on basis of the metadata of the consumed services and it could be used as multipart messages in case of request-response services. Below snaps will show you the BizTalk schema presentation against the .net message contracts and data contracts.

DataContract Source Code:


MessageContract Source Code:


Service Implementation Code:


BizTalk Schema:



BizTalk Test Message I used for my sample:


You can analyze your self the presentation of Inbound message and the Contract representation inside WCF Implementation upon the above snaps. You can consume the generated schema in routine BizTalk solutions and patterns, while deploying such solution you can use generated binding information for such implementation with Endpoint transportation and Behavior information regarding WCF hosting and services. It is very good feature provided by wizard which make our life very easy :-). Let's have a view to below video presentation on the WCF Http and Custom Adapter configuration inside through BizTalk administrator console.



Hope you liked this article and it will give you fair idea about the BizTalk Server 2006 R2 and WCF coupling in Solution, as a system/solution designer point of view I really enjoyed to work with this two made for each other technologies and it provide such ease to workout most complex scenarios regarding service orientation and integration. As well as I realize the solution's capability to work over Internet Integration where security is the major concern and we generally prefers to go with ws-HTTP or HTTP channels for integration, on such scale it can help us to give such secured integration system.

Please provide your feedback about the article at nilayparikh@gmail.com.


Wednesday, January 16, 2008

BizTalk 2006 / R2 Publishing Throttling State #2 (imbalanced message publishing rate, input rate exceeds output rate)

Our next destination in BizTalk Throttling exploration drive is inbound Throttling states, publishing throttling state #2 Throttling due to imbalanced message publishing rate (input rate exceeds output rate).

Throttling state # 2, due to imbalanced message publishing rate, input rate exceeds output rate:

This is the most simple scenario to understand, here imbalanced message publishing rate means the ratio of the incoming messages by outgoing messages or vice versa.

The following is the condition of the Throttling state:
- (Message publishing incoming rate / Message publishing outgoing rate) * Rate overdrive factor in %

This condition belong to rate base throttling, For inbound (published) messages, BizTalk Server throttles publishing of messages if The Message publishing incoming rate for the host instance exceeds the Message publishing outgoing rate * the specified Rate overdrive factor (percent) value. The Rate overdrive factor (percent) parameter is configurable on the Message Publishing Throttling Settings dialog box. Rate based throttling for inbound messages is accomplished primarily by inducing a delay before publishing the batch of messages into the MessageBox database. No other action is taken to accomplish rate based throttling for inbound messages.

In following general scenario, I found the the throttling state can be possible in environment.

- very high demand to process messages and less available resources to process those messages.
- high use of co-related messages and self-correlated ports, and multiple subscribers for single received message.
- Slow outbound adapters.
- imbalance between host configured for inbound adapter and host configuration for XLANG / host configuration for outbound adapter.
- high processing complexity.



Understanding about Publishing throttling threshold parameter,

Minimum number of samples: Minimum number of messages BizTalk Server will sample for the Sampling window duration before considering rate-based throttling. If the actual number of samples in a sampling window fall below this value then the samples are discarded and throttling is not applied. This value should be consistent with a rate at which messages can be published under a medium load. For example, if your system is expected to handle 1,000 documents per second under a medium load, then this parameter should be set to 1,000 * Sample window duration in seconds (or more precisely, 1 * Sample window duration (milliseconds)). If the value is set too low, then the system may experience a throttling condition under low load. If the value is set too high, then there may not be enough samples for this technique to be effective.
Enter a value of zero to disable rate based inbound throttling.
The default value is 100.

Sampling window duration (milliseconds): The time-window measured in milliseconds, which is used to calculate the publishing rate based on the samples collected. The duration should be increased if the latency required for publishing a single message is high.
Enter a value of zero to disable rate based inbound throttling.
The default value is 15,000.

Rate overdrive factor (percent): This controls how much higher you allow the request rate to be than the completion rate before a throttling condition occurs. For example, if messages are being published at a rate of 200 per second and this parameter is set to 125, then the system will allow the publication of up to 250 messages per second (125% * 200 = 250) before applying throttling. Specifying too small a value for this parameter will cause the system to throttle more aggressively and could lead to over-throttling. Specifying too large a value for this parameter will cause under throttling and prevent the throttling mechanism from recognizing a legitimate throttling condition.
The default value is 125.

Maximum throttling delay (milliseconds): This is the maximum delay BizTalk Server will impose on a message instance due to throttling. The actual delay depends on the severity of the throttling condition.
Enter a value of zero to disable inbound throttling.
The default value is 300,000.

Triggering Mechanism of State #2 publishing throttling: In the sampling window duration, if the incoming/outgoing ratio excceds the configured parameter "Rate overdrive factor" value then BizTalk will be in throttling state.

Throttling Action: Block the publishing thread for a dynamically computed time period until the Message Publishing Incoming Rate is at par with the Message Publishing Outgoing Rate * the specified Rate overdrive factor (percent) value. By blocking the publishing thread, BizTalk can reduce the queued up messages, I have noticed many time the queued up inbound messages has very bad impact on the memory as well as the processing on the BizTalk artifacts. And the impact of the queued up messages is showing exponential memory & utilization which can also impact indirectly overall to every processing in BizTalk. So by blocking publishing thread, BizTalk is reducing incoming message flow and keeping flow healthy.

Sample collection of BizTalk Perfmon data and Graph: You can view in below graph that when the publishing throttling rate condition is setisfying the system in throttling mode #2, also you can analyze as per the sample window state through it.



If you would like to have the perfmon logs data, biztalk throttling configuration snap and graph in compress file for studying or analyzing it further for study which I have simulate for study, please write me to nilayparikh@gmail.com

Hope this article helped you to understand state#2 of throttling for you.

Related articles posted by me on the same blog:
BizTalk 2006 R2 - Throttling - Perfmon Parameters - My Experience (Tuesday, January 15, 2008)
BizTalk Server 2006 / R2 Throttling Mechanisms (Friday, January 4, 2008)

MSDN Resource Link:
http://msdn2.microsoft.com/en-us/library/aa559591.aspx
http://msdn2.microsoft.com/en-us/library/aa559893.aspx

http://msdn2.microsoft.com/en-us/library/aa559628.aspx

http://msdn2.microsoft.com/en-us/library/aa578302.aspx

http://msdn2.microsoft.com/en-us/library/aa547859.aspx


Thanks for BEAR me during the article. Your valuable feedback and suggestion are welcome to nilayparikh@gmail.com

Tuesday, January 15, 2008

BizTalk 2006 R2 - Throttling - Perfmon Parameters - My Experience

BREAKING NEWS:These days.. Dr. Time Pass is spending most of time to understand and implement best throttling scenarios :-).

Let me come back to official language. Few day back, I saw lots of throttling in our BizTalk environment. My enthusiasm drag me to the further exploration in throttling mechanism. Let me grab opportunity to document some cooked things.

Since last weeks, I saw my BizTalk environment is facing suddenly unusual throttling behaviors so I tried to find the root cause behind the throttling state in my BizTalk environment.

The environment is facing lots of message delivery throttling during pick processing hours, and due to the delivery throttling state, and delays our whole environment get stunned. After this incidence, I start taking this functionality very seriously and now digging lots of stuff related to it, here in this article I am going to share my experience as well as the understanding I got after going through many books, articles and MS-KBs.

As we all BizTalk professional aware about the inbound message processing and the internal BizTalk instruments takes care about the inbound message management. In short if I like to explain the word "inbound message" then I can stat "messages towards messagebox" as inbound messages, in BizTalk messagebox is the heart of any environment or implementation. We were facing problem due to unsymmetrical messages' incoming publishing rate and messages' outgoing publishing rate, I noticed in our environment incoming message rate is very high in compare to outgoing message (here outgoing means subscription to messagebox, we are talking about deliveries), in resultant the number was increasing for the messages in memory. BizTalk recognized and our environment moves towards throttling state but still throttling was also not able to make the system stable and put it again towards stable node. Due to the very heavy message rush and less outgoing rate very high number of the messages were waiting in queue for processing. We saw almost 300-700 seconds as delay time during the processing. And finally the nightmare came to true :-0, and counter called "Days without Servility 1" need to reset. The thing I would like to convey is the requirement of the optimized configuration parameter for the throttling while setting up any host. I will stat 'must' recommend for setting-up a set of well configured and planned host for the pick time processing for the critical interfaces. I don't want to drive my article into implementation designing, but I would like to come back to the throttling scenarios.



In this article I would like to focus around perfmon counters, few important ratios, throttling states.

Let's dig first to some state counters, state counters shows the state of the current situation in your environment under monitor. BizTalk 2006/R2 comes with very useful perfmon state counters.

some high (*) counters like High database session, High database size, High in-process message count, High message delivery rate, High process memory, High system memory, High thread count, these all counters represents only a state by showing value like 0 or 1, where 1 the respective focused area cross the configured or warning level. These shows very useful information which should be monitor in your Biztalk environment.

In-process message count, Active instance count are two message queue counters which show the Number of in-memory messages delivered to the XLANG engine or the outbound messaging engine that are not yet processed and instances are in active state in memory referring to the EPM or XLANG engine, respectively.

Specialized message delivery counters like Message delivery delay (ms), Message delivery incoming rate, Message delivery outgoing rate, Message delivery throttling state, Message delivery throttling state duration, Message delivery throttling user override. These all perfmon counters should be monitored regularly during the pick processing to understand the behavior of your environment and the coming out patterns to understand and prevent the failures.

Message delivery delay (ms): The current delay in ms imposed on each message publishing batch (applicable if the message publishing is being throttled and if the batch is not exempted from throttling).

Message publishing incoming rate: Number of messages per second that are being sent to the database for publishing in the given sample interval.

Message publishing outgoing rate: Number of messages per second that are actually published in the database in the given sample interval.

Message publishing throttling state:
  • 0: Not throttling
  • 2: Throttling due to imbalanced message publishing rate (input rate exceeds output rate)
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 6: Throttling due to database growth
  • 8: Throttling due to high session count
  • 9: Throttling due to high thread count
  • 11: Throttling due to user override on publishing
Message publishing throttling state duration: Seconds since the system entered this state. If the host is throttling, how long it has been throttling; if it is not throttling, how long since throttling was applied.

I would like to place basic example of some perfmon data and counters in graph representation.



I will try to explore on Message publishing throttling states on my coming articles.

Thanks for BEAR me during the article. Your valuable feedback and suggestion are welcome to nilayparikh@gmail.com

Related articles posted by on the same blogs.
1. BizTalk Server 2006 / R2 Throttling Mechanisms

Friday, January 4, 2008

BizTalk Server 2006 / R2 Throttling Mechanisms

BizTalk 2006 / R2 comes with good relief in terms of performance and throttling mechanism, if you work close to administrating and performance tuning job for BizTalk environment or any messaging system then you can visualize the complexity of pick processing time scenarios in any messaging system. Here with the article I am focusing to the particular BizTalk throttling scenarios and their solution. I have derived below contact by referring few books as well as my personal experience while working on performance criteria for BizTalk environment.

The below cases might not cover all the possibilities throttling scenarios of live BizTalk environment, but I have tried to collect as much from my memory.


Case: High message ratio for delivery rate / completion rate

The higher side of the ratio value indicates the service is unable to handle the rate of inbound/incoming messages to the environment. As solution we can throttle message delivery and make available as much resource as possible to BizTalk Server artifacts like XLANG and outbound transports. As a result of improved message completion rate, message latency rate and IO operation rate for message box will be reduced exponentially, also we can get more benefit by cleaning up the queue at out-bound end point.

Ideally environment should maintain ratio value around 1.05 – 1.07.

We can get monitor message delivery rate and message completion rate through various instruments like WMI / OM object / Perfmon counters / etc.


Case: High publishing ratio for request rate / completion rate

High ratio is indicates of the message box being unable to cope up with the load. To improve such scenario in our environment probably we can block publishing threads to slow down the rate and also we can indicate the service class to slow down the message-publishing rate. In the case there is no such solution available apart of scaling out the SQL Server environment where message box has been deployed, if the environment is facing such problems concurrently then it will be appropriate decision to scale-out the SQL Server environment.

I don’t have accurate observation for the value of the ratio, but I am sure that every organization must need 1 to called reliable messaging services :-).

To get the ratio value, we need to monitor entry and exit of commit batch call.


Case: Process memory exceeds a threshold

If process memory exceeds a threshold then probably your environment and batch process need steep memory, if you are getting such alerts or messages regularly then you should think about the steep memory for the environment. In this scenario, it has affect components like XLANG and all kind of transportation (adapters/pipelines). It also indicates services to dehydrate and shrink catch.

By monitoring private bytes of the process we can get clear idea about the memory threshold for the individual processes. In BizTalk hosts can be treat as processes.


Case: System memory exceeds a threshold

Same possibilities we can assume as we discussed for case “Process memory exceeds a threshold” above.

Here you can monitor the physical memory and trend through perfmon.


Case: Database session being used by the process exceed a threshold count

You can throttle publishing inside the BizTalk environment. To improve such condition, we need to tune the SQL Server Database properly and need to scale up/out as per our threshold requirement. In this scenario XLANG and all inbound transports will get affected. There is not such quick resolution available for the scenario but we can reduce/block the external/idle sessions available on SQL Server. If BAM Notification / BAS are configured to your environment and their database are also running on same server then you can disable / suspend those less priorities services to resume the message processing to normal.

Such scenario can affect XLANG objects as well as all type of inbound transports.

You can monitor session on message box by Perfmon counter / SQL Server Counters / Management Studio / etc. For cluster environment you can monitor session per message box.


Case: Process thread count exceeds a particular threshold

Throttle publishing, delivery and it indicates to reduce the thread pool size.

Such scenario affect XLANG objects as well as all kind of transports (adapters / pipeline). There is no direct solution for the scenario, long term solution could be scale-out the server box and suggestion will be to migrate 64x or itanium (or equivalent) processors server boxes. To handle some pick processing time during the day, we can provide more thread and priority to the host processes handling the threshold.

You can monitor count like threads per CPU to undertake such scenarios / cases.


BizTalk Server 2006 / R2 is handling such throttling automatically but we can get much improved performance by giving some favor to the mechanism. To perform auto throttling BizTalk Server uses the configuration parameters, I will try to come up with detail review of each parameter in next coming article.

Thanks for BEAR me during the article. Your valuable feedback and suggestion are welcome to nilayparikh@gmail.com.

Wednesday, December 26, 2007

BizTalk Custom Pipeline Components - Framework Overview Part-1

In this article I am trying to put consolidated information for developing custom pipeline components. Hope you like my efforts; frankly, there is nothing new in the article but it's all together.

Receive and Send pipeline performs below basic operations in BizTalk Solution,
- Encrypt outgoing and decrypt income message
- Handle digitally signed messages and verify them
- Validation
- Handling promotion
- Disassembling and assembling coming or processed messages.
- Wrapping header and footer into messages.

The below I have listed components and their jobs in BizTalk Solution.


Pipeline Components

Stages Employed

Tasks

General Component Decode, Encode, Pre-assemble, Resolve Party or Validate Take one message process message and produce zero or one message
Disassemble ComponentDisassemble Split message, promote custom properties
Assemble Component Assemble Used to wrap message with head or trailer or both
Probe Component This is not an independent component. Any pipeline component can implement the IProbeMessage interface if it must support message-probing functionality. Enables the component to check the beginning part of the message


To develop general pipeline component we can use following interfaces. These are coming as part of SDK and BizTalk Solution (BTS).

IBaseComponent Interface
IComponentUI Interface
IComponent Interface
IpersistPropertyBag

IBaseComponent Interface
Members Usage
Description Property. Used to specify small description about pipeline component. Description is visible on pipeline properties page at design time.
NameProperty used to specify name of pipeline component. Name is visible on pipeline properties page at design time.
VersionProperty used to specify version (example 1.0.0.0) of pipeline component. Visible on pipeline properties page at design time.

IComponentUI Interface
Members Usage
IconProperty used to provide icon associated with pipeline component.
ValidateMethod. Pipeline designer before pipeline compilation to verify that all configuration properties are correctly set calls this.

IComponent Interface
Members Usage
ExecuteMethod. Does specific processing/massaging in inbound message and produces output message to be forwarded to next stages of pipeline or message box.

IpersistPropertyBag
Members Usage
GetClassIDMethod. Retrieves the component's globally unique identifying value.
InitNewMethod. Initializes any objects needed by the component to use the persisted properties.
LoadMethod. Used to load property from property bag.
SaveMethod. Used to save property-to-property bag.

I will surly come back with more detail articles and implementation with sample code for the subject.

Thanks for visiting my blog and please send your feedback or queries to nilayparikh@gmail.com.

Cheers!
Have a nice day!

Recoverable Interchange Processing - BizTalk Server Video Tutorial

Again I am coming with very good video demonstration by Stephen W. Thomas, the tutorial demonstrate Recoverable Interchange Processing in BizTalk Server 2004/2006/R2. Worth spending 9 minutes on the video.

To download the video please Click Here

Downloading the related sample files might also be helpful. They can be found here:
Click Here

Live Play (no need to download the file) of this video is available here:
Click Here

Sunday, December 23, 2007

BizTalk Server 2006 - Assert Functoid - Training Video

Another good video on YouTube, it demonstrates Assert Functoid.

http://www.youtube.com/watch?v=eypWfGlKSwM

BizTalk Server 2006 - Custom Mapping Functoid - Training Video

A good Video available on YouTube network, it's very good demonstration for Custom Mapping Funcatoid. Enjoy pie!

http://www.youtube.com/watch?v=Q-CqDfPM7MU

Thursday, December 20, 2007

Screencast: Microsoft BizTalk Server 2006 - A very good video

Screencast: Microsoft BizTalk Server 2006. Cool video to understand BizTalk and scope of implementation. The video content requirement scenarios, basic development tool introduction, various artifacts, etc...

Source: Youtube
From: InfoWorld

Enjoy!

Wednesday, December 19, 2007

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: Low % Disk Idle on SQL Server High Avg. Disk Queue Length on SQL Server)

Counters: Low % Disk Idle on SQL Server High Avg. Disk Queue Length on SQL Server

Area of Analysis:
- Check whether the tracking database and Message box are on the same disks.
- Check whether the data and log files are on the same disks.
- Check the log sizes.

Possible Solutions:
- Use a SAN.
- Ensure that the tracking and Message-box databases are on different servers.
- If they are on the same server, ensure that they are on different disks.
- Ensure that the data and log files are not sharing the same disks.
Make sure the BizTalk agents are enabled on the server. The agents copy tracking data from the Message box to the tracking database. They also back up the databases and clean up the logs.

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: Low % CPU Idle on SQL Server)

Counter: Low % CPU Idle on SQL Server

Area of Analysis:
- Check if DBA changed any of the default database settings set by the BizTalk installation.
- Max Degree of Parallelism are set to off Auto-Update Statistics and Max Degree of Parallelism are set to off and 1 respectively on purpose.

Possible Solutions:
- Minimize the number persistence points in your orchestrations.
- Use static methods instead of wrapping nonserializable components in atomic scopes.
- Avoid using Parallel shapes, except when needed.
- In a multi-Message box scenario, ensure that you have at least three Message boxes. The master Message box is doing all the routing to secondary Message boxes, which is CPU intensive. Whenever you are using multiple Message boxes, Microsoft’s distributed Transaction Coordinator (DTC) is involved; therefore you need to jump from one Message box to three instead of only two to offset that overhead.

Understand BizTalk – Performance Counters – Bottleneck Analysis (Counter: - Low % CPU Idle on BizTalk Server)

Counter: Low % CPU Idle (On BizTalk Server)

Area of Analysis:

- Too many hosts running on the server.
- Improper use of custom pipelines.
- Custom components requiring optimization.

Possible Solutions:
- Isolate receive, process, and send functionality into different hosts and run host instances on different servers within the BizTalk Server Group.
- Move message transformation out of orchestrations to your ports to avoid the creation of new copies.
- Move message filters to your ports and receive locations.
- Optimize your schema. Large schema reduce performance.
- Use distinguished fields in orchestrations rather than properties or XPath.
- Use pass-through pipelines whenever possible.

I will surely come back again on more performance & bottleneck analysis.

Exposing a simple BizTalk orchestration as WCF service

Very good article about the ESB solution approach. It explains how you can expose the BizTalk orchestration in WCF Services!


Please visit below link for full article.

http://blogs.msdn.com/rgarg/archive/2007/11/19/exposing-biztalk-orchestration-as-wcf-service.aspx

Tuesday, December 18, 2007

Microsoft BizTalk Adapter for SAP – Part 1 (Introduction)

The Microsoft BizTalk Adapter v2.0 for mySAP Business Suite i s a "no-code" connectivity solution that integrates SAP data seamlessly from SAP R/3 4.X and R/3 6.20 (Enterprise) systems with BizTalk Server. The adapter provides services to support the transport of IDocs, BAPIs, and RFCs (including customized IDocs) inbound and outbound between BizTalk Server and SAP.

The Adapter supports the following SAP schema types:

  • Business API (BAPI)
  • Intermediate Document (IDoc) versions 2.0 and 3.0
  • Remote Function Call (RFC)

Multiple IDoc, BAPI, and RFC schemas can be selected for each adapter in stance. The Adapter provides the following functionality:

  • Supports synchronous and asynchronous transactions
  • Provides full transactional support for all IDoc, BAPI, and RFC schemas
  • Converts SAP structures to XML Schema Definition language (XSD) format

Microsoft BizTalk Adapter for mySAP Business Suite includes:

  • Design-time (using the standard functionality available in the BizTalk adapter framework)
  • Schema generation wizard
  • BizTalk Explorer configuration pages
  • BizTalk Administrator configuration pages
  • Run-time
  • Transmitter -The transmitter sends IDocs, BAPIs, and RFCs to the appropriate SAP system via the .NET
  • Connector. If the SAP system is not available, the transmission can be retried, or sent to a suspend queue,
  • Depending on user configuration.
  • Receiver -The receiver acts as a listener, waiting for IDocs, BABIs, and RFCs to be sent by SAP via the .NET
  • Connector.
  • More than one receiver can be configured, in order to receive data from multiple SAP systems, and to
  • Provide load balancing.
  • Exception handling -The adapter provides full transactional support between SAP and BizTalk Server. If
  • There is a failure in receiving or sending, the transaction is rolled back.







Microsoft BizTalk adepter comes with two components, first is runtime module called BizTalk/SAP adepter, which is communicating with SAP. Another is design time component that integrates Visual Studio design time functionality to adepter.

This Wizard is use to connect to SAP through a port defined on machine, search lists of SAP functions (BAPIs and IDOCS), and select the function to call. The wizard generates schema (xsd) for messages you need to receive/ send from SAP. If the selected port is two way (Request/Response) then it generates two root schemas for the request and the response types.

BAPI/RFC Interface

The RFC Library offers an interface to a SAP System. The RFC Library is the most commonly used and installed component of existing SAP Software. This interface provides the opportunity to call any RFC function in a SAP System from an external application. Moreover, the RFC Library offers the possibility to write a RFC Server Program, which is accessible from any SAP System or external application. Most SAP Connectors use the RFC Library as communication platform to SAP Systems. SAP provides the RFC API in the form of C -routines, incorporated in the RFC Library. The RFC Library is available on all SAP Supported Platforms. The RFC Library is forward and backward compatible, i.e. an older release of the RFC Library can communicate with a SAP System at a higher version and vice versa.

IDoc Interface

IDoc, or Intermediate Document, is a standard SAP document format that allows to link different application systems via a message-based interface. The three main goals of IDocs are:

  • Structuring the exchange of business documents so they are automatically processed.
  • Reducing the structural complexity of different application systems to as simple a structure as possible.
  • Extensive exception handling before posting data to the application.
  • IDocs are defined and considered on two levels, the technical and the business level. The former allows them to support application-independent functions, e. g. routing and handling technical exceptions.

Referances:

  • MSDN Library
  • MS SAP Adepter Documentation

Very soon I will present the next part of the SAP Adepter Series.

Tools for testing BizTalk Application and Landscape

Tools for testing BizTalk Application and Landscape

I have seen this links on the Darren Jefford's Blog. He is Principal Consultant at Microsoft UK. I am just putting consolidated list of resources across you. Enjoy the pie!

PerfMon Counter spreadsheet
http://media.wiley.com/product_ancillary/22/04700464/DOWNLOAD/Chapter9_Code.zipOrchestration
Profiler
http://www.codeplex.com/biztalkorcprofiler

BizTalk Documenter
http://www.codeplex.com/biztalkdocumenter

LoadGen 2007 (now includes WCF, Sharepoint 2007 support amongst others)http://www.microsoft.com/downloads/info.aspx?na=22&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fdetails.aspx%3fFamilyID%3dc8af583f-7044-48db-b7b9-969072df1689%26DisplayLang%3den

Old version of LoadGen 2004 (recommend you use the 2007 release moving forward)http://go.microsoft.com/fwlink/?LinkId=59841BizUnithttp://www.codeplex.com/bizunit

Sending Email using Biztalk orchestraion

Sending Email using Biztalk orchestration

Very good video tutorial available on YouTube. I will recommend you to watch the Video to understand the play with Email or SMTP adepter in BizTalk.

Very good informative work Nikhil!

Please copy paste below link to address bar it will direct navigate you to the video location.

http://www.youtube.com/watch?v=BWngoSM2aQ8

Hope it helps you!

RFID Anywhere Integration with BizTalk

RFID Anywhere Integration with BizTalk

A very good presentation on RFID implementation for BizTalk Server 2006.


BizTalk 2006 Pattern Wizard

BizTalk 2006 Pattern Wizard

This presentation is on BizTalk 2006 Patterns Wizard which is mostly very unexplored part for many BizTalk professional, I would really recommend you to see the video and know the superb rapid development facility available to implement very complex integration patterns.


Thursday, December 6, 2007

BizTalk 2006 TechNet Posters

Some really good posters for BizTalk 2006 / R2 and other Microsoft technology
It's really interesting...

BizTalk Server 2006 Capabilities

http://www.microsoft.com/downloads/details.aspx?FamilyID=00a6472c-14df-4da8-8d77-6aa2315b5862&displaylang=en



BizTalk Server 2006 R2 Capabilities

http://www.microsoft.com/downloads/details.aspx?familyid=34F41573-C552-466F-B531-32CB09A57CDD&displaylang=en



BizTalk Server 2006 R2 Runtime Architecture

http://www.microsoft.com/downloads/details.aspx?familyid=8790E652-1DA5-4E80-88FE-B87606233DB4&displaylang=en



BizTalk Server 2006 R2 Scale-Out Configurations

http://www.microsoft.com/downloads/details.aspx?FamilyID=ff468298-64be-4947-a086-f61584caf995&displaylang=en




Furthermore:

Exchange

http://www.microsoft.com/downloads/details.aspx?FamilyId=FDCDF6E5-DE47-4B58-8086-282101BCDDE9&displaylang=en



Active Directory

http://www.microsoft.com/downloads/details.aspx?familyid=c236336d-ab43-44b1-ad6f-a2f668fb8c02&displaylang=en



Windows Server 2008 (Active Directory & Feature Components)

http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b9e44e-0bbd-47cb-bc09-b3d48be7f867&DisplayLang=en\
http://download.microsoft.com/download/2/e/8/2e88c004-3b10-446f-9d5a-58af27deafc4/Windows%20Server%202008%20Active%20Directory%20Components.pdf
http://download.microsoft.com/download/2/e/8/2e88c004-3b10-446f-9d5a-58af27deafc4/Windows%20Server%202008%20Feature%20Components.pdf



.NET Framework 3.5 Common Namespaces and Types

http://www.microsoft.com/downloads/details.aspx?FamilyID=7B645F3A-6D22-4548-A0D8-C2A27E1917F8&displaylang=en
http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf



2007 Office System Document: Developer

http://download.microsoft.com/download/0/9/c/09cda3f2-6d3d-4082-aec5-9a62b7679ecf/2007OfficeDeveloperMap.pdf
http://download.microsoft.com/download/0/9/c/09cda3f2-6d3d-4082-aec5-9a62b7679ecf/InfoPathObjectModelMap.pdf



Visual C# 2008 Keybinding Reference

http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&displaylang=en



Visual Basic 2008 Keybinding Reference

http://www.microsoft.com/downloads/details.aspx?familyid=255b8cf1-f6bd-4b55-bb42-dd1a69315833&displaylang=en



Visual C++ 2008 Keybinding Reference

http://www.microsoft.com/downloads/details.aspx?FamilyID=4411BBFC-0E3C-42B3-BD05-AF1D292C986F&displaylang=en



Visual C++ 2005 Keyboard Shortcut Reference

http://www.microsoft.com/downloads/details.aspx?FamilyID=bccf84f4-4136-48b2-b4ec-83eaa484da20&DisplayLang=en



Visual Basic 2005 Keyboard Shortcut Reference

http://www.microsoft.com/downloads/details.aspx?familyid=6bb41456-9378-4746-b502-b4c5f7182203&displaylang=en&tm



Microsoft® Silverlight(tm) 1.1 Alpha Developer Reference

http://www.microsoft.com/downloads/details.aspx?FamilyID=811D8AD6-8D48-4684-B08C-686462D58A56&displaylang=en



PnP Overview

http://www.microsoft.com/downloads/details.aspx?FamilyID=d99fb3dd-e753-4500-bdad-e59ac0cea903&DisplayLang=en



Smart Client

http://www.microsoft.com/downloads/details.aspx?FamilyID=523bf8a4-2b48-459b-9a2a-19cfabad08dc&DisplayLang=en



Security Posters

http://www.microsoft.com/Education/SecurityPosters.mspx
http://download.microsoft.com/download/2/1/3/21343626-8172-4284-9d18-3a961bf71e00/SS_Blue_Posters.pdf