问题标签 [biztalk-2010]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - 什么可能导致 Oracle 数据库对 Biztalk 的(间歇性)不良响应?
我的编排有一个发送-接收端口,在找到发送形状之前,所有被操作的消息都是完全相同的。即,我最终通过发送-接收端口发送 Oracle 数据库的消息是相同的。
本质上,我正在向数据库发送一个请求,该请求说明我希望从哪个表中获得最新更改以及该表的所有者是谁。正如我所提到的,在比较一个有效的更新和一个无效的更新时:到目前为止,两个请求消息都是相同的。
问题:来自 db 的响应可能是空的,而且不应该是空的。我期待表中的完整行发生了变化,有时我什么也没有收到。
详细信息:我只更改最简单的字段来触发这些测试,并且总是相同的字段 - 我从 99 到 98 到 97 到 98 递减或递增的整数字段......等等。一个数字可能第一次工作但不是第二个,有时是相反的。
任何其他字段都可能产生此错误。
更多详细信息...:看来 Oracle 的功能可能有问题。即,它处理时间戳的方式可能会导致 Oracle 返回一个空记录,因为它假定 Biztalk 已经收到更改通知。在查看数据库的内部时,我们看到我的最后一次更改尝试都被标记为完全相同的秒(请注意,实际上是不可能的)。
看起来,当我向 Oracle 发送一条消息时,它会执行两次似乎导致错误的事情(顺便说一下,有问题的表上没有触发器)。在我的编排中,我在发送消息之前写入事件日志,并且该消息只写入一次......
似乎这可能是一个Oracle问题。现在,始终如一的工作领域不起作用,而其他领域有时也起作用-我想这是以前抽签的运气。
为什么我认为会发生这种情况:我要求它给我(数据库告诉我)已经改变的客户,并且它(不知何故 - 这是个谜)运行它的检索两次。它工作的时间是第一次检索将消息返回给 Biztalk,因此具有实际信息。如果不是,那是因为第二次检索要求最新的更改而没有,因为第一次检索已经得到它们,因此返回一个空记录。
wix - 无法在 Windows Server 2008 R2 上使用基于 Wix 的安装包注册 32 位自定义 BizTalk 适配器
我发现一个非常奇怪但 100% 可重现的问题,从 Windows Server 2008 R2(Service Pack 1)上使用 Wix v3.5 创作的相应 32 位 .MSI 包安装 32 位自定义 BizTalk 适配器。
基本上,安装程序运行良好并将适当的文件复制到 Program Files (x86) 文件夹,并在 HKCU\Wow6432Node\CLSID 下写入相应的注册表项以注册适配器。
在 BizTalk Server 管理控制台中,当尝试在Platform Settings\Adapters文件夹下添加适配器时,我调用了适配器属性对话框。在那里,我可以在适配器列表中成功找到自定义适配器并为其命名,但是当我尝试验证对话框时,我收到以下错误:
无法读取传输配置。验证适配器管理组件是否安装在本地机器上。从注册表读取传输配置时,无法读取“CLSID{7823EF8C-0D1E-4BC4-B110-2C16A0B8A63F}\BizTalk”键的值。该系统找不到指定的文件。
尽管如此,我可以确认相应的注册表项在那里。我可以使用 Windows 注册表编辑器 (regedit.exe)、reg.exe 命令行实用程序、从 x86 PowerShell 命令提示符和 C# 程序查看它......无论如何。
现在,这是奇怪的部分。
如果我将注册表项导出到临时 .reg 文件,然后删除该项并随后通过在 Windows 资源管理器中双击临时文件的内容来重新导入该临时文件的内容,现在可以将适配器成功添加到 BizTalk Server 管理控制台.
我使用 reg.exe 命令行实用程序(reg.exe /export;reg.exe /delete;reg.exe /import)执行了相同的步骤,效果相同。
我可能做错了什么?
我的 WiX 项目文件的编写是为了能够从同一个项目文件中同时针对 32 位和 64 位平台(尽管有两个连续的编译)。以下是脚本的适当部分,用于说明目的:
我对这个完全失去了理智!
biztalk - 在 Biztalk 中处理消息的整个过程中创建/使用 ID 的最佳方式是什么?
到目前为止,我们的程序:我们有一个涉及多个模式、编排和发送/接收的消息的过程。
我们的愿望:当我们将进度记录到 SQL 服务器表中时,拥有一个将整个过程链接在一起的 ID。
到目前为止,我们有一个记录我们进度的表格,但是当有多个消息时,很难阅读,因为 Biztalk 有时会无序地处理某些消息。
例如,我们可以:
如果一次只更新一个客户端,则易于遵循。另一方面,这更有可能:
最好在整个过程中都有一个 ID,以便最后一个列表可以通过这个 ID 字段排序。
最好和/或最快的方法是什么?我们曾考虑从第一个编排触发的初始时刻添加一个我们将创建的 ID,并继续将该值传递给所有架构和以后的编排。这似乎需要做很多工作,并且需要我们修改所有模式——这似乎是错误的。
我们甚至应该想要拥有这样的身份证吗?还有其他想到的解决方案吗?
biztalk - 哪些 functoid 允许在 BizTalk 映射中使用从外部程序集返回的 DataTable?
我想我可以使用 Index functoid,但它似乎不喜欢我的第一个参数(调用外部程序集的脚本 functoid)——用红色 X 代替通常的绿色复选标记。
让我认为这是可能的事情是 Index functoid 根本没有给我一个错误 - 它编译和部署没有任何抱怨。问题是映射永远不会发生,我遇到了灾难性故障(IMO),因为它甚至没有返回错误。
那么,有什么方法可以使用在 BizTalk 映射中返回 DataTabe/DataRow/DataSet 的外部程序集?
biztalk - BizTalk WCF LOB 接口配置
我正在尝试执行一个 oracle 函数并返回一个结果。我有一个关于配置发送端口的问题。
我在 SOAP 操作标头中只有一个操作:
我需要单独的操作来获得结果吗?
我应该将管道设置为 xml 还是通过?
如果我不需要单独的操作,操作的名称是否重要?它必须在发送端口和编排之间匹配。
有没有很好的参考说明这是如何工作的?
oracle - 为什么 WCF OracleDB 接收位置会由其 FK 触发,而不是对其表进行实际更新?
我们接收位置的奇怪行为:
RL_REPRESENTATIVE正在等待来自 REPRESENTATIVE 表的通知(字段:(PK)id、fname、lname 等)。
RL_CLIENT_REPRESENTATIVE正在等待来自 CLIENT_REPRESENTATIVE 表的通知(字段:(FK)id_rep、(FK)id_client)。
当两个位置都处于活动状态并且我在 CLIENT_REPRESENTATIVE.id_rep 表中提交更改时,我会收到一些警告(显然来自RL_REPRESENTATIVE)。
和
The adapter "WCF OracleDB" raised an error message. Details "The WCF service host at address oracledb://d01-isis:1521/D01ISIS/Dedicated?CallingTable=REPRESENTATIVE has faulted and as a result no more messages can be received on the corresponding receive location. To fix the issue, BizTalk Server will automatically attempt to restart the service host.".
否则,由 CLIENT_REPRESENTATIVE 中的修改激活的过程不会出现任何问题。
(如果我更新 CLIENT_REPRESENTATIVE 中的 id_client - 错误来自另一个订阅来自 CLIENT 表的通知的接收位置。)
还有两个线索:
如果我禁用RL_REPRESENTATIVE,则不会出现警告。
如果我同时更新 CLIENT_REPRESENTATIVE.id_rep 和 REPRESENTATIVE.fname 并在同一个事务中同时提交,则不会出现警告。
请注意,两个表中都没有触发器,我所有的超时都设置为近 24 小时。
我怀疑 FK 约束以最终向端口发送通知的方式完成其工作,但我从未收到我应该收到的实际消息。
问题:Oracle 中是否有控制此行为的参数?有没有任何 Biztalk 开发人员遇到过这个问题?
biztalk - BizTalk Server 2010 - 可以更改许可证密钥吗?
是否有直接的方法来更改 BizTalk 的许可证密钥?我说的是 2010 年,但如果适用,也欢迎提供其他版本的信息。
我唯一能想到的就是搜索注册表,这似乎与危险作斗争。
有人遇到过这个吗?
.net - BizTalk 编排节流
我正在尝试设置可以在 BizTalk 2010 中一次运行的最大编排数量。我发现我可以在主机级别为编排指定限制,并且可以选择指定暂停时间和恢复时间规范(在主机设置的“编排节流”选项卡上)。
根据阅读我可以在 MSDN 上找到的有限文档,我解释说,在为“暂停”设置指定的数字处,BizTalk“暂停”并且不再启动新的编排,直到活动编排的数量为 < = 设置时简历的规范。这是一个准确的解释吗?
biztalk - 映射以生成目标消息的多个实例
第一个问题:)
您将在下面看到我创建的地图图片。我将 TransHeader 记录(数据集的孙子,行的子)映射到将绑定到发送端口(WCF-SQL 调用存储过程)的目标架构。
当我使用该发送端口时,只有 TransHeader 记录的第一个实例被映射并发送到 SQL 服务器。显然,通过查看架构,您可以知道我的入站架构中可能存在多个 TransHeaders。我想插入每个实例。
有什么想法吗?
图片:
sql-server - BizTalk 2010 使用哪种 DAL
我正在考虑用作为 WCF 服务公开的 BizTalk 编排替换业务层,作为我们许多应用程序的标准架构。本质上,ASP.NET 和 WinForms 应用程序将调用这些服务来检索和更新我们许多 LOB 数据库中的数据等。一些服务也将向合作伙伴开放。
至于数据访问,我当然可以使用 SQL Adapter,但我认为这不是最干净的方式,而且它与 SQL Server 紧密耦合的事实也让我觉得它不是一个好主意。我想使用基于实体框架的自定义 DAL,或者可能从 SubSonic 等工具生成。
这是一个好主意吗?从我的谷歌搜索中,我找不到很多人在做这种事情,也找不到任何关于它可能对他们有用的评论。
你对此有何看法?关于在哪里缓存数据、并发问题等有什么想法吗?