专家访谈: Dave Mulley 谈 WebSphere Partner Gateway

这篇一问一答的文章邀请 WebSphere® 顾问 Dave Mulley 来回答关于 WebSphere Partner Gateway 和 WebSphere Process Server 的问题。

Dave Mulley (dmulley@us.ibm.com), IT 专家, EMC

照片:Dave MulleyDave MulleyIBM Software Services for WebSphere Enablement 团队的一名软件工程师。他致力于研究如何使用 WebSphere Process Server、WebSphere Partner Gateway 和 WebSphere Message Broker 等产品进行流程和业务集成。Dave 为 developerWorks 撰写了许多关于 WebSphere Partner Gateway 的教程和文章。



2006 年 5 月 29 日

引言

WebSphere 顾问 Dave Mulley 回答了 WebSphere Partner Gateway 和 WebSphere Process Server 之间集成的问题,以及关于 WebSphere Partner Gateway 体系结构、安装、配置和故障诊断的任何问题。WebSphere Partner Gateway 是一个企业到企业 (business-to-business) 网关,它使得公司能够将大量贸易合作伙伴连接到其业务,从而将其内部集成扩展到企业外以进行实时业务集成。WebSphere Partner Gateway 支持使用各种协议和格式(包括 HTTP 和 EDI)进行文档交换。有关详细信息,请参阅 WebSphere Partner GatewaydeveloperWorks WebSphere Business Integration 专区

问:我不熟悉 WebSphere Partner Gateway(以下称为 Partner Gateway),想要知道如何入门。

答:developerWorks 中提供了大量的优秀资源。若想入门,您可以参考这些资源:

问:我想知道如何在 WebSphere Partner Gateway 上配置 Covast OFTP Adapter。

答:通常,集成 WebSphere Partner Gateway 与另一个产品所需要的配置可以通过 JMS 来完成,并且它们的集成是松耦合类型的。然而,用于 WebSphere Partner Gateway (OFTP Adapter) 的 Covast OFTP Adapter 却不同。在安装 OFTP Adapter 时,在 Partner Gateway 数据库中加载了两个新的 Transport Type 定义。您可以使用其中一个 Transport Type 定义来创建 OFTP Target,从而能够通过 X.25 或 ISDN 接收来自贸易合作伙伴的文档。您可以使用另一个 Transport Type 定义来创建 OFTP Gateway,从而能够通过 X.25 或 IDSN 向贸易合作伙伴发送文档。Covast Web 网站上的白皮书 OFTP Adaptor for IBM WebSphere Partner Gateway 详细描述了 OFTP Target 和 OFTP Gateway 必需的每个配置属性。

问:我通过 JMS 将一份文档从后端应用程序发送到 Partner Gateway,我想通过 FTP 将这份文档发送给贸易合作伙伴。我希望能够指定通过 FTP 发送的这个文件的名称。如何才能这样做呢?

答:您需要在后端应用程序和 Partner Gateway 之间使用 Backend Integration 打包,并且必须安装 WebSphere Partner Gateway Fix Pack 2(或者更新版本)。请将您想要使用的文件名作为输出文件名放在一个名为 x-aux-in-file-name 的 JMS 属性中。此属性是 Backend Integration 打包的一部分,但是它没有记录在信息中心中。如果您使用 WebSphere Process Server 作为后端应用程序,则需要在 BCG_PackagingHeaders Business Object 中手动添加一个新的属性,并将其命名为 x-aux-in-file-name。JMS Target会读取该 JMS 属性值并将其放在文档元数据中。FTP Gateway 应该配置为将 Unique File Name 设置关闭。然后,它将使用来自 x-aux-in-file-name 的文件名作为通过 FTP 发送给贸易合作伙伴的文件的文件名。

问:我试图使用 MQ Link 将 Backend Integration 打包的 JMS 消息从 WebSphere Process Server 传递到 Partner Gateway,但是 Partner Gateway 试图处理传入的消息,如同它有一个 NONE 打包一样。我已经将属性填充到 BCG_PackagingHeaders Business Object 中,但是它们在 JMS 消息传到 Partner Gateway 网关之前似乎已经丢失。这到底是怎么回事?

答:JMS 消息是由 JMS 头、JMS 属性和 JMS 主体组成的。JMS 属性用于保存不能放在 JMS 主体(消息有效负载)中的有用信息。当 JMS 消息放到 WebSphere MQ 队列中时,JMS 属性被保存到一个称为 RFH2 头的特殊 WebSphere MQ 头中,因为 WebSphere MQ 消息没有与 JMS 消息的 JMS 属性部分等效的部分。根据您所说的,我猜测您使用的是 com.ibm.bcg.dataBinding.BCGBackendIntegrationJMSDataBindingImpl。JMS Import 上的 Data Binding(作为 JMS Import 的 WebSphere Process Server 缺省数据绑定)不会在 JMS 消息上创建必需的 JMS 属性( Backend Integration 打包值是 JMS 消息上实际的 JMS 属性)。您所碰到的问题很可能是,当使用 MQ Link 将消息发送到 WebSphere MQ 队列时服务集成总线上所有外来队列定义的缺省值。此缺省值表明,在将 JMS 消息传递到 WebSphere MQ 之前应该从中剥离 RFH2 头,这会导致 Backend Integration 打包值丢失。要重写该缺省值,请在 WebSphere 管理控制台中选择外来队列目的地并创建一个新的上下文属性,如图 1 所示。

图 1. 上下文属性对话框
上下文属性对话框

问:我如何使用 File Directory Target 来将包含二进制数据的文本文件放到 Partner Gateway 中呢?

答:遗憾的是,File Directory Target 只能处理可解析文件,其中路由信息以已知的格式(例如 EDI 或 XML)包含到该文件中。它无法处理不包含必需信息的二进制类型文件。您有两种选择,一种选择是为 File Directory Receiver 编写一个预处理的 exit,它将设置 Partner Gateway 所需要的路由信息。然而,这种方法不够灵活,因为您唯一可以更改的变量是指示文档类型和合作伙伴标识符的 filename。另一种选择是使用 FTP Target,它设计成能同时处理可解析文件和二进制文件。FTP Target 有一个预设的目标结构,它允许 Partner Gateway 建立源合作伙伴标识符。filename 用于标识二进制文件的期望目标合作伙伴(例如,文件名 123456789.somefilename 告诉 FTP Target 目标合作伙伴标识符是 123456789)。因为 FTP Target 只是以与 File Directory Target 相同的方式轮询目录结构,所以您在实际使用 FTP Target 时不需要 FTP Server。

问:我想要在 WebSphere Process Server 和 Partner Gateway 之间发送 JMS 消息。我发现我可以使用 MQ Link 来将 Partner Gateway 使用的 WebSphere MQ Queue Manager 连接到 WebSphere Process Server 使用的 Service Integration Bus 上,也可以使用 WebSphere Proccess Server 和 Partner Gateway 这二者的 Service Integration Bus。您建议采用哪种方法?

答:Service Integration Bus 到 Service Integration Bus 的通信只有当 Partner Gateway 安装到现有的 WebSphere Application Server Network Deployment 配置中时才可用。这是因为 Service Integration Bus 不公开客户端 API,而如果使用嵌入式服务器选项来安装 Partner Gateway,则此 API 是必需的。如果在安装时选择了嵌入式服务器选项,则只有 MQ Link 这一选项可用。如果 Partner Gateway 已经安装到现有的 WebSphere Application Server ND 配置中,则您肯定应该使用 Service Integration Bus 与 Service Integration Bus 通信这一选项,而不是在配置中增加另一层通信开销。

问:为什么我在使用 AS2 接收一份文档之后创建 MDN 需要花一分钟的时间呢?

答:MDN 是由一个独立于 Document Manager 主引擎的引擎生成的。在缺省情况下,它的轮询间隔设置为 60000 毫秒。您可以通过更改 <WPGHOME>\bcghub\router\lib\config\router-was-jmx-container.xml 文件中的 ASStateEnginePollInterval 条目(如下面突出显示的)来修改此轮询间隔。不要将该值设置得太低,因为这样会导致 Partner Gateway 数据库的通信量增加并影响性能。10000 可能是不对性能造成负面影响的情况下可以设置的最小值了。要使任何更改生效,需要重新启动 Document Manager。

<mbean name="ASStateEngine" type="Production" 
    code="com.ibm.bcg.server.stateeng.StateEngine">
        <attribute name="WorkType">AS</attribute>
        <attribute name="NumThreads">2</attribute>
        <attribute name
         ="WorkClassName">com.ibm.bcg.server.asstate.ASWork</attribute>
        <attribute name="PollInterval">60000</attribute>
        <attribute name="BatchSize">1</attribute>
        <attribute name="StateInstanceName">bcg</attribute>
    </mbean>

:我在导入来自 WebSphere Integration Developer DIS Client 的 Business Object 时遇到了麻烦。我从 WebSphere Integration Developer 不加修改地导入 xsd 文件,虽然导入完全成功,但是 Overview 选项卡只显示出错。下面是这个简单的 xsd 文件:

<xsd:schema xmlns:xsd
  ="http://www.w3.org/2001/XMLSchema" xmlns:boxs="http://JMSLibrary">
	<xsd:complexType name="studentType">
		<xsd:sequence>
			<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
			<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
			<xsd:element name="address1" type="xsd:string" minOccurs="0quot;/>
			<xsd:element name="address2" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>

下面是 Overview 选项卡显示的 XML 结构:

图 2. DIS Client Overview 选项卡
DIS Client Overview 选项卡

答:DIS Client 需要在 xsd 文件中有一个顶级元素定义。我已经对该 xsd 文件做了更改(如下所示)。它正确地导入且 Overview 选项卡正确地显示 XML 结构。

<xsd:schema xmlns:xsd
 ="http://www.w3.org/2001/XMLSchema"xmlns:boxs="http://JMSLibrary">
	<xsd:element name="Student" type="boxs:studentType" />
		<xsd:complexType name="studentType">
			<xsd:sequence>
				<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
				<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
				<xsd:element name="address1" type="xsd:string" minOccurs="0"/>
				<xsd:element name="address2" type="xsd:string" minOccurs="0"/>
			</xsd:sequence>
		</xsd:complexType>
</xsd:schema>
图 3. DIS Client Overview 选项卡
DIS Client Overview 选项卡

问:我如何通过 Backend Integration 打包将 EDI-X12/ISA 文档发送到 Partner Gateway 以外呢?我看到 EDI-X12 在 AS、None 和 N/A 包中是可用的,但是在 Backend Integration 包中不可用。

答:在安装 Partner Gateway 时,Backend Integration Package 中不包含 EDI-X12 Protocol。您需要更改 EDI-X12 Protocol 以将它包含到 Backend Integration Package 中。要修改 EDI-X12 Protocol,请执行以下操作:

  1. 单击 Hub Admin -> Document Flow Definitions,打开 Package:None,然后单击 Protocol:EDI-X12 旁边的向下展开的图标,如图 4 所示。
    图 4. 在 Manage Document Flow Definitions 页面中定位 EDI-X12 Protocol
    在 Manage Document Flow Definitions 页面中定位 EDI-X12 Protocol
  2. 然后单击 Add New Context,如图 5 所示:
    图 5. Document Flow Definition 上下文
    Document Flow Definition 上下文
  3. 选择 Package:Backend Integration(如图 6 所示),然后单击 Save 来保存此新定义。
    图 6. 添加 Backend Integration Package
    添加 Backend Integration Package
  4. 您还需要使用上面的方法来更新 ISA Document Flow。定位 Package:None, Protocol:EDI-X12, Document Flow:ISA 并逐层展开,如图 7 所示:
    图 7. 在 Manage Document Flow Definitions 页面中定位 ISA Document Flow
    在 Manage Document Flow Definitions 页面中定位 ISA Document Flow
  5. 单击 Add New Context,如图 8 所示:
    图 8. Document Flow Definition 上下文
    Document Flow Definition 上下文
  6. 选择 Package:Backend Integration, Protocol:EDI-X12(如图 9 所示),然后单击 Save 来保存此新定义。
    图 9. 添加 Backend Integration/EDI-X12 Protocol
    添加 Backend Integration/EDI-X12 Protocol

问:如何启动 DIS 映射跟踪呢?

答:

  1. 打开 <WPGHOME>\bcghub\router\lib\config\ediparms.properties 文件。
  2. 取消注释您希望跟踪的组件所需的行。我建立您取消注释以下行:traceLevel.All=2,因为这样将跟踪转换引擎的所有组件。
  3. 您还需要打开 Document Manager 跟踪,其方法是打开 <WPGHOME>\bcghub\router\lib\config\router-was.logging.properties 文件,并将 log4j.rootCategory=error, RollingFile 行更改为 log4j.rootCategory=debug, RollingFile,然后重新启动 Document Manager。

现在该跟踪消息将被写入到作为 Document Manager 进程文档的 <WPGHOME>\bcghub\was\profiles\bcgdocmgr\logs\bcgdocmgr\bcg_router.log 文件中。

参考资料

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=125231
ArticleTitle=专家访谈: Dave Mulley 谈 WebSphere Partner Gateway
publish-date=05292006