BizTalk related FAQs
- Updated on 22 Mar 2019
- 6 minutes to read
Can we Start and Update in same Atomic Scope pipeline component?
Atomic Scope provides an activity logger pipeline component which can be used to log activities from the BizTalk pipelines. Atomic Scope installation has built-in pipelines for XML, JSON, and Passthrough. You can use the pipeline component in your custom pipelines. This pipeline component has two properties “StartActivity” and “UpdateActivity”.
When Start Activity is True, a separate stage is started. Component logs the start time and stage name. At this point, none of the configured property values are fetched from the message body or the message context.
When UpdateActivity is True, the stage is updated for completion. All the configured global and stage property values are fetched from context and the message body and logged into the activity table.
Answer: Hence it is allowed to start and update the activity in a single pipeline component. This means you are beginning a stage and completing it in the same pipeline component.
Can we use JSON Path to extract property values in BizTalk?
Atomic Scope allows users to extract the values using XPath, JSON Path, Context and headers as shown in the picture below.
Answer: In BizTalk, all the messages will be in the XML format when they are processed from the message box. Hence at the moment, users can only use XPath and BizTalk context to track the properties. However, there is a backlog item to bring support to the JSON path, especially in the decode section of the pipeline components. It will be prioritized based on customer feedback.
Can we have the same business process for multiple BizTalk Applications?
Atomic Scope brings flexibility into how a business process is defined and allows users to organize the business transactions appropriately. There are many scenarios wherein a Business process spans across multiple BizTalk applications. Consider a scenario where the BizTalk applications are organized based on the trading partner name or an end client. Though the ports, processing orchestrations are different for different trading partners, the business process they serving may be the same.
Answer: Yes multiple BizTalk applications can be configured to use the same Business process and Business Transactions.
Can I create multiple reprocessing receive locations? What is the recommended approach?
The Atomic Scope reprocessing receive locations poll only those messages which are configured to be reprocessed to that receive location. Below is the polling statement in a reprocessing port.
When the reprocessing receive location, polls the message, it is the responsibility of the solution to have appropriate reprocessing and routing logic.
Depending upon the business process and transaction, this processing and routing logic can change. Hence it is necessary to have different reprocessing receive locations.
Answer: The users are allowed to create different receive locations for reprocessing different transactions. This can be configured in the reprocessing configuration of a transaction.
I have two orchestrations. First orchestration does some processing and submits it to the message box. The second orchestration picks up the message and sends it to a send port. How can we ensure that activity is tracked end to end?
Atomic Scope binds different stages of activity using two main context properties MainActivityId and CurrentStage. When you are submitting a message from orchestration to a message box, you need to ensure you have these properties in the context of the message. This ensures that the activity is tracked end to end.
msgOutboundOrder(AtomicScope.PropertySchema.CurrentStage) = "Orch_SingleOrchestration"; msgOutboundOrder (AtomicScope.PropertySchema.MainActivityId) = msgInbound(AtomicScope.PropertySchema.MainActivityId)
I have an envelope message coming into orchestration. It will be split into multiple transactions. How can I track individual transactions?
This is a typical de-batching scenario. In any de-batching scenario, there will be a batch transaction and individual transactions. Atomic Scope requires users to create two transactions in a business process — one for the Batch transaction and another one for individual transactions.
In the batch transaction, we have to add a Global property called BatchId which correlates all the de-batched messages. Below is the picture where
The individual transactions will be configured normally and there is no need to configure the BatchId.
#### Can I create two stages in an orchestration?
In long-running orchestrations, it is quite possible that the orchestration is doing multiple tasks and we may need to group them into different stages.
Answer: Yes you can create multiple stages in an orchestration. You will have to start and update the activity for both these stages.
Can I create two stages in a single pipeline?
Answer: Yes similar to creating multiple stages in a single orchestration, you can also create numerous Stages in a single pipeline.
I have a request response send port. Can I add request pipeline and response pipeline as different stages in a transaction?
In messaging only scenarios, when we have request response send ports, users would like to see the response tracked as another stage in the processing. End to end the correlation of the stages in a transaction depends on the MainActivity id and the Previous stage name.
Answer: Answer is yes and No. It is possible to make a response pipeline as another stage when the response message carries the properties such as MainActivityId and previous stage. If these property values are available, you can use a custom pipeline component and add them to message context and rest of the Atomic Scope component configuration is normal. Otherwise, it is not possible and it is recommended to use orchestration with request-response port and create multiple stages.
What should I do to capture all the exceptions from ports using Atomic Scope?
In many failed message routing scenarios, there will be a dedicated send port or an orchestration which subscribe to the failed messages.
If you are using a send port to handle failed message routing, you can use Atomic Scope log exception pipeline component . For more information on this pipeline component refer to the documentation https://docs.atomicscope.com/docs/log-exception-pipeline-component
#### Can I create a new transaction in orchestration?
In Atomic Scope, a message journey starting from a receive location to Orchestration to send port is considered as a transaction. However, in some scenarios, orchestration can create a completely new message and may expect it to be considered as a new transaction.
Answer: Yes It is possible to create a completely new transaction in an orchestration. You have to follow the steps below. * Ensure you do not have MainActivityId in newly created message * Ensure you do not have CurrentStage property in the newly created message * Use Orchestration activity logger to start a new stage in orchestration.
Currently, we handle failures through failed message routing an ESB Toolkit. With Atomic Scope, we also step away from ESB Toolkit and ESB Portal. What is your view on best practices for exception handling in combination with Atomic Scope
We recommend to use Atomic Scope instead of ESB portal for logging exceptions and reprocessing the messages. Atomic Scope helps in most of the scenarios.
However, at the moment, the context properties except Message type are not promoted in a reprocessed message which might become a bottleneck when you have reprocessing port relying upon the original context properties.
We have a backlog item to add this feature and we will be bringing it into the product as soon as possible.
#### What is the significance of the Additional Properties in Atomic Scope Pipeline component?
The AdditionalProperties field can contain comma-separated key value fields providing some additional processing commands to Atomic Scope pipeline component. Following are the properties which are supported as of now.
Dynamic Transaction Resolution: Please refer to the article https://docs.atomicscope.com/docs/biztalk#dynamic-resolution-of-transaction to know about the dynamic transaction reoslution.
Message Re-Processing : Please refer to the article https://docs.atomicscope.com/docs/reprocessing#reprocessing-using-wcf-sql-receive-location to know more about Message Re-Processing.
I have single receive location which receives messages of different types say Order, ASN etc. How can I configure seperate transactions in Atomic Scope?
Yes, you can achieve this using dynamic transaction resolution. Please refer to the article https://docs.atomicscope.com/docs/biztalk#dynamic-resolution-of-transaction .