Forum Widgets
Latest Discussions
Use WCF-SQL XmlPolling to replace old native SQL adapter receive locations without schema change
The old SQL adapter has been thoroughly removed on BizTalk Server 2020. Fortunately it's possible for us to use WCF-SQL adapter's XmlPolling functionality to replace SQL adapter on receive locations without changing and deploying new schemas. Let's use the SQL receive location in RosettaNet DoubleAction as an example. Below is the old native SQL receive location: To make WCF-SQL adapter retrieve the same xml document for you, its binding needs to be configured as the following: A small issue here is that WCF-SQL XmlPolling may add an extra blank namespace to parent node(i.e: MessagesToLOB here) and results in schema validation error. In this case, a simple solution is to modify your SQL query or stored procedure(e.g: PipAutomationGetAction in this sample) and add a default namespace to the output Xml's parent node (i.e: MessagesToLOB here): ALTER PROCEDURE [dbo].[PipAutomationGetAction] AS BEGIN TRANSACTION DECLARE @tempGUID nvarchar(36) SELECT TOP 1 @tempGUID = MessageID FROM MessagesToLOB WHERE Delivered = 0 AND MessageCategory = 10 ORDER BY TimeCreated ; WITH XMLNAMESPACES (DEFAULT 'http://DoubleAction.CustomSchema') SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE MessageID = @tempGUID For xml auto UPDATE MessagesToLOB SET Delivered = 1 WHERE MessageID = @tempGUID COMMIT TRANSACTIONWenJun_ZhangApr 01, 2020Microsoft1.5KViews4likes0CommentsBizTalk Server 2020
Microsoft BizTalk Server 2020 builds on world's leading integration broker with full support of new features introduced in the BizTalk 2016 Feature Packs, updated platform support, and new features. Support for the latest Microsoft platform makes this the safest BizTalk Server release, and enables a seamless hybrid integration. Several features in this release are running successfully in production environments with enterprise customers. Microsoft BizTalk Server 2020 allows customers to integrate disparate applications and heterogeneous data to deliver a variety of solutions, including payment processing, supply chain management, business-to-business EDI, real-time decision making, and reporting. This release allows customers to achieve true hybrid connectivity. We have carefully analyzed several computing trends enabled by public cloud and have augmented BizTalk’s capabilities to connect and interface with SaaS applications through Azure connectivity. Starting with this release, BizTalk Server aims for a more open and collaborative story. Details about this release are available at https://docs.microsoft.com/en-us/biztalk/install-and-config-guides/biztalk-server-2020-whats-new-and-installation. There are several folks across the glob who have re-blogged most of the content available here, providing readers with choice of languages and region-specific articulation. Hopefully one of the options will match with your reading style. I want to leverage this platform to initiate more constructive discussion on this release of BizTalk as well as help community realize the potential that the product has to offer.SanjivGuptaFeb 25, 2020Microsoft982Views4likes0CommentsBizTalk TMS does not start after BizTalk Server 2020 configuration
The problem has two causes: The first start of BizTalk TMS requires higher permissions than specified in the documentation. According to the documentation, the account under which the service runs must be in the SSO Administrators group. However, the service creates an event source the first time it is started, and this operation requires computer administrator privileges. The workaround is to add the service account to the computer administrators group before the first startup and then remove it from this group. The permanent solution from Microsoft should be to create this event source during configuration by the BizTalk Server Configuration tool. BizTalk TMS starts before the Enterprise SSO service usually. According to the documentation, the service depends on the Enterprise SSO service, however the BizTalk Server Configuration tool this service dependency does not configure. The workaround is to create this dependency manually by running command: sc config BizTalkServerTMS depend=ENTSSO The permanent solution from Microsoft should be to create this service dependency during configuration by the BizTalk Server Configuration tool.VitaGazdaAug 07, 2020Copper Contributor3.9KViews3likes5CommentsKnown issues with BizTalk Server 2020 RosettaNet accelerator (Part 2)
This is the second part of the previous RosettaNet post: Known issues with BizTalk Server 2020 RosettaNet accelerator (Part 1) Below are some other issues we may meet while setting up BTARN Double Action scenario on BizTalk 2020. Steps: 1.Some similar WCF-SQL bindings need to be manually corrected for DoubleAction as the following. MessagesToLOB_Receive_Location: Microsoft.Solutions.BTARN.SDK.DoubleAction orchestration: 2.After that, if you submit some test 3A4 PO document, at the receiver side, you may find the DoubleAction orchestration failed at the following ActoinMessage expression shape. The detailed error is: xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'Microsoft.Solutions.BTARN.SDK.DoubleAction(3870c2de-1d7f-2477-b3b1-dd5740090e72)'. The service instance will remain suspended until administratively resumed or terminated. If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception. InstanceId: e8594d5f-391f-4aaa-b69a-eb014cf12d80 Shape name: ConstructServiceContent ShapeId: 74fe76a6-31d1-4e52-9973-60890674bb23 Exception thrown from: segment 1, progress 7 Inner exception: There is no value associated with the property 'Doubleaction.PropertySchema.PIPCode' in the message. Exception type: MissingPropertyException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: System.Object GetPropertyValueThrows(System.Type) The following is a stack trace that identifies the location where the exception occured at Microsoft.BizTalk.XLANGs.BTXEngine.BTXMessage.GetPropertyValueThrows(Type propType) at Microsoft.Solutions.BTARN.SDK.DoubleAction.segment1(StopConditions stopOn) at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp) I spent some time on diagnostic and found the problem is on Schema validation. Wcf-SQL XmlPolling will add an extra blank namespace to the parent node(i.e: MessagesToLOB). So if we manually validate the schema in VS, the following error will be returned: Invoking component... C:\Users\Administrator\Desktop\{8E72275D-C59C-4976-8066-91116FA1C8C7}_{4C659FCB-8DA4-4E58-9DEE-D88896B54D8D}_body.xml: error BEC2004: The element 'CustomSchema' in namespace 'http://DoubleAction.CustomSchema' has invalid child element 'MessagesToLOB'. List of possible elements expected: 'MessagesToLOB' in namespace 'http://DoubleAction.CustomSchema'. C:\Program Files (x86)\Microsoft BizTalk Accelerator for RosettaNet\SDK\PipAutomation\DoubleAction\MessageFromLOBSchema.xsd: error BEC2004: Validate Instance failed for schema MessageFromLOBSchema.xsd, file: <file:///C:\Users\Administrator\Desktop\{8E72275D-C59C-4976-8066-91116FA1C8C7}_{4C659FCB-8DA4-4E58-9DEE-D88896B54D8D}_body.xml>. Component invocation succeeded. The simplest solution is to modify PipAutomationGetAction stored procedure and add a default namespace to the output parent node MessagesToLOB. ALTER PROCEDURE [dbo].[PipAutomationGetAction] AS BEGIN TRANSACTION DECLARE @tempGUID nvarchar(36) SELECT TOP 1 @tempGUID = MessageID FROM MessagesToLOB WHERE Delivered = 0 AND MessageCategory = 10 ORDER BY TimeCreated ; WITH XMLNAMESPACES (DEFAULT 'http://DoubleAction.CustomSchema') SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE MessageID = @tempGUID For xml auto UPDATE MessagesToLOB SET Delivered = 1 WHERE MessageID = @tempGUID COMMIT TRANSACTION 3. You may also find some 413 and 403.7 errors in IIS log. #Software: Microsoft Internet Information Services 10.0 #Version: 1.0 #Date: 2020-03-30 19:44:27 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken 2020-03-30 19:44:27 10.157.18.54 POST /BTARNApp/RNIFReceive.aspx - 443 - 10.157.18.193 - - 413 0 0 82 #Software: Microsoft Internet Information Services 10.0 #Version: 1.0 #Date: 2020-03-30 19:49:36 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken 2020-03-30 19:49:36 10.157.18.54 POST /BTARNApp/RNIFReceive.aspx - 443 - 10.157.18.193 - - 403 7 5 102 2020-03-30 19:49:46 10.157.18.54 POST /BTARNApp/RNIFReceive.aspx - 443 - 10.157.18.193 - - 403 7 5 10 In this case, you will need to increase uploadReadAheadSize and maxRequestEntityAllowed as well as disable client certificate setting. If all the errors are fixed and bindings are corrected, we should be able to find the corresponding 3A4 PO and PO confirmation records in MessagesFromLOB and MessagesToLOB tables of receiver and sender’s BTARNDATA DB. Sender: Receiver:WenJun_ZhangApr 10, 2020Microsoft1.3KViews3likes0CommentsWhen is gpt-4-0125-preview coming?
OpenAI has new GPT-4 models available. Approximately how long will it take to come to azure?tobiqJan 26, 2024Copper Contributor1.5KViews2likes2CommentsHotfixes and CUs for BizTalk Server 2016 Feature Update
Feature Updates to BizTalk Server 2016 provided early production ready access to BizTalk Server 2020 features. All those features are rolled up and now available with BizTalk Server 2020 release. We believe that Feature Updates to 2016 have served its purpose by providing early access to capabilities under work for 2020. 2020 release has further enhanced those features due to the freedom to make larger code changes in new release. BizTalk Server 2020 release has been available since the beginning of year and we released CU1 recently. Feature Updates were available for select BizTalk Server customers strictly on an opt-in basis with an understanding that these customers will move to 2020 release soon after its availability. BizTalk Server Enterprise customers with Enterprise Agreement are eligible for free upgrade to BizTalk Server 2020. BizTalk Server 2020 supports in-place and seamless upgrade from BizTalk Server 2016. We are in the planning process for CU8 release of BizTalk Server 2016 and were hoping, keeping above in mind, to continue releasing the CUs for the base 2016 (aka RTM) versions that caters to all SKUs and customers uniformly. Those who were on accelerated cadence by opting into Feature Packs, will move to BizTalk Server 2020 for their support requirements. We want to gather community response before finalizing our decision. Let us please use the discussion space under this post with constructive comments to help us arrive at a decision that helps us optimize engineering resources without compromising the customer needs.2.7KViews2likes3CommentsBizTalk patterns
I used to work for Microsoft in the BizTalk Server Customer Advisory Team (BizTalk CAT). I had a few blog entries on BizTalk Server, specifically for BizTalk Server v2004 to v2009, but I believe these blogs might still be relevant today, for BizTalk Server 2020. Some of my blogs are archived at: https://docs.microsoft.com/en-us/archive/blogs/quocbui/ I'd like to highlight a couple of blogs that could be beneficial. The first one, is for those who seek to leverage the parallel processing capability of BizTalk Server, and yet want to retain ordered delivery for business requirements, such as HIPAA, a healthcare standard. The blog entry can be found here: https://docs.microsoft.com/en-us/archive/blogs/quocbui/biztalk-patterns-the-parallel-shape The second blog is for those who want to handle synchronous communication, asynchronously, leveraging a not-so-well documented feature of the BizTalk Server messaging engine. This blog entry can be found here: https://docs.microsoft.com/en-us/archive/blogs/appfabriccat/biztalk-patterns-part-2sync-async Please note that some the links contained in these blog articles might be outdated.Quoc_BuiMay 02, 2020Copper Contributor951Views2likes0CommentsHow to make RNIFSend of BizTalk RosettaNet Accelerator work with self-signed certificates
If self-signed certificates are used with RosettaNet web application (i.e: RNIFSend and RNIFReceive), then you may keep getting the following 400 bad requests due to SSL failure. Event Type: Error Event Source: BizTalk Server Event Category: (1) Event ID: 5754 Date: 3/31/2020 Time: 12:39:11 AM User: N/A Computer: wjzhan779VM Description: A message sent to adapter "HTTP" on send port "WENZHE2020.Async" with URI "http://localhost/BTARNApp/RNIFSend.aspx?TPUrl=https%%3a%%2f%%2fwenbim373vm%%2fBTARNApp%%2fRNIFReceive.aspx&xRNVersion=RosettaNet%%2fV02.00&xRNResponseType=async" is suspended. Error details: The remote server returned an error: (400) Bad Request. MessageId: {C5F206DB-1CFD-4152-9291-C95FAA364464} InstanceID: {DB2A8C6E-1154-4819-A117-A2FC92EFD30A} For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. However you verified all SSL related certs and config are correct: All Cert trust relationship looks good. Browser access to both SSL sites are fine. No certificate chain verification errors in CAPI2 log. The root cause is actually inside the logic of the following function of RNIFSend web page while handling self-signed certificates. It only adds parent CA certificates into chainThumbprints which leads to this list always be empty since we directly adds self-signed public cert into trust root store. private bool AcceptSSLCertificate(Object sender, X509Certificate certificate, X509Chain certificateChain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { Boolean isCertFound = false; List<string> chainThumbprints = new List<string>(); foreach (X509ChainElement element in certificateChain.ChainElements) { if (element.Certificate.Thumbprint != certificate.GetCertHashString()) { chainThumbprints.Add(element.Certificate.Thumbprint); } } X509Store trustedRootStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine); trustedRootStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly); X509Certificate2Collection storecollection = (X509Certificate2Collection)trustedRootStore.Certificates; foreach (X509Certificate2 x509 in storecollection) { if (chainThumbprints.Contains(x509.Thumbprint)) { isCertFound = true; break; } } return isCertFound; } So the solution is to build a custom Microsoft.Solutions.BTARN.RNIFSend.dll from SDK sample and comment that if statement. Then deployed this customized RNIFSend to IIS to perform data sending. private bool AcceptSSLCertificate(Object sender, X509Certificate certificate, X509Chain certificateChain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { Boolean isCertFound = false; List<string> chainThumbprints = new List<string>(); foreach (X509ChainElement element in certificateChain.ChainElements) { //if (element.Certificate.Thumbprint != certificate.GetCertHashString()) { chainThumbprints.Add(element.Certificate.Thumbprint); } } X509Store trustedRootStore = new X509Store(StoreName.Root, StoreLocation.LocalMachine); trustedRootStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly); X509Certificate2Collection storecollection = (X509Certificate2Collection)trustedRootStore.Certificates; foreach (X509Certificate2 x509 in storecollection) { if (chainThumbprints.Contains(x509.Thumbprint)) { isCertFound = true; break; } } return isCertFound; } This custom RNIFSend page will be able to work well with self-signed certificates.WenJun_ZhangApr 10, 2020Microsoft950Views2likes0CommentsKnown issues with BizTalk Server 2020 RosettaNet accelerator (Part 1)
As we all know, BizTalk Server 2020 thoroughly removed old native SQL adapter and replaced it with WCF-SQL adapter. This change has resulted in several known issues with some existing components like RosettaNet accelerator(BTARN) that used old SQL adapter previously. Before Microsoft releases official fix of the BTARN problems, you can also follow the steps below to work around them by yourself. Steps: First of all, you need to correct the binding of receive locations: LOB_To_PrivateInitiator and LOB_To_PrivateResponder. Use XmlPolling Set Xml SP Root Node Name to: LOBMessage Set Xml SP Namespace to: http://schemas.microsoft.com/biztalk/btarn/2004/LOBMessage PolledDataAvailableStatement to: Select 1 See the screenshots below: After that, you also need to correct binding of Send ports: PrivateInitiator_To_LOB and PrivateResponder_To_LOB. Especially pay attention to the SOAP Action header: A further problem was that PrivateInitiator_To_LOB port uses an outbound map to transform LOBMessage into the schema of native SQL adapter(SQLSCMessageOut) before being inserted into MessagesToLOB table. In this case, we also need to generate new Wcf-Sql based schema and create corresponding map to transform LOBMessage Into Wcf-Sql Insert message: The generated schema and map files I use are in attachment. The script functoid in the map is quite simple that converts string type Delivered value("0" or "1") to boolean. public bool getDelivered(string delivered) { if(delivered == "1") return true; return false; } The same changes need to be applied to PrivateResponder_To_LOB port as well. After all the above changes, the BTARN Loopback sample should be back to work fine. Next, let's move on and continue to resolve issues with DoubleAction scenario: Known issues with BizTalk Server 2020 RosettaNet accelerator (Part 2)WenJun_ZhangApr 10, 2020Microsoft3KViews2likes6Comments
Resources
Tags
- logic apps11 Topics
- azure api management4 Topics
- Event Grid3 Topics
- Biztalk 20202 Topics
- biztalk2 Topics
- azure2 Topics
- biztalk server1 Topic
- Visual Studio 20191 Topic
- azure devops1 Topic