内容


在 WebSphere Application Server for z/OS 上使用优化的本地适配器重构应用程序

Comments
免费下载:IBM® WebSphere® Application Server 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

由传统 z/OS 环境中的应用程序重用 IBM WebSphere Application Server 运行时下 Enterprise JavaBeans™ (EJBs) 中可用的业务逻辑,一直以来极具挑战且代价昂贵。虽然使用了基于 XML 文档的技术在应用程序之间进行通信已经在过去几年获得了迅猛的发展,但是其仍然不适于在共同位于相同 z/OS 系统上的小应用程序单元之间的同步调用。对于 z/OS 上典型应用程序环境与那些基于 Java™ 和运行在 WebSphere Application Server for z/OS 上的环境之间的程序到程序通信来说,Java 序列化和反序列化的开销,再加上与 XML 之间的转换(例如,对于 SOAP 来说)以及与 TCP/IP 堆栈之间的后续消息复制,很明显增加了延时,会导致延迟和消耗大量 CPU,在许多情况下这是被禁止的。

优化的本地适配器支持被引入到 WebSphere Application Server V7 中,作为 WebSphere Application Server for z/OS 的内置功能,为 z/OS 应用程序开发人员和架构师提供了一个优化的替代方案,以便同步运行于旧的应用程序环境(如 z/OS 批处理、CICS 和 IMS)中的本地语言成语以及运行在 WebSphere Application Server for z/OS 上的那些程序之间的调用。优化的本地适配器旨在为您提供一种简单的方式,以便快速开始将旧的的业务逻辑与运行在 WebSphere Application Server 上的基于 Java 的程序中的可用功能进行集成。

  • 对于 COBOL、C/C++、PL/I 或汇编语言开发人员来说,编程模型是一个 API 调用以便启动与应用程序服务器的通信,且另一个 API 调用用于启动调用 WebSphere Application Server 中基于 Java EE 的资产。
  • 对于支持基于 WebSphere Application Server 的应用程序(EJB 或 servlet)和从 WebSphere Application Server 调出到旧应用程序的 Java 开发人员来说,编程模型是我们熟悉的 JCA 1.5。

与非常低延时的双向调用一起,优化的本地适配器还为基本服务质量提供了其他优化,从而可以在 WebSphere Application Server 中的应用程序和运行在相同 z/OS 映像上的外部地址空间中的应用程序之间惟一地提供较高的性能交互。其中还包括在地址空间之间传输和断言当前任务的用户安全上下文。

在事务领域,对于 CICS 和 WebSphere Application Server 之间的调用来说,优化的本地适配器提供了本地和全局事务支持,其中 CICS 或 WebSphere Application Server 可能是初始的请求方或协调方。对于从 CICS 应用程序到 WebSphere Application Server 中应用程序的调用来说,优化的本地适配器为映射工作负荷上下文提供了一种方式,该方式可确保一旦调用转移到 WebSphere Application Server 时,高优先级 CICS 事务会保留该状态。这将在本文随后作进一步的解释。

图 1. 什么是优化的本地适配器?
图 1.  什么是优化的本地适配器?
图 1. 什么是优化的本地适配器?

优化的本地适配器如何工作

从最开始时,WebSphere Application Server for z/OS 就已经使用了一系列称为本地通信的高性能通信服务,其提供了一系列跨内存的服务,这种服务能够使一台 WebSphere Application Server for z/OS 服务器快速将工作传递给另一台服务器并接收结果。

优化的本地适配器扩展了此项技术并引入了新的支持,能够使标准、问题状态应用程序切换为所需状态,同时驱动所需的相关本地通信服务以便将请求排列到特定的 WebSphere Application Server 服务器队列。将地址空间引入特定服务器的过程称为注册。在优化的本地适配器 REGISTER API 调用期间,应用程序表明要与哪个单元、节点和服务器进行通信。它还提供注册名和有关其希望建立的连接数量的信息并设置为最大。一旦事务过程完成,应用程序就可以开始与安装在目标应用程序服务器中的任何应用程序进行通信。

接口

针对优化的本地适配器调用或发送请求 API 的调用不会导致入站 JCA 请求以便进入目标 EJB。相反,为这些请求进行了针对 WebSphere Application Server 控制区域的上下文切换,且在 WebSphere Application Server servant 区域中,请求流通过流线化的调度路径到达目标 EJB 方法。对于 WebSphere Application Server EJB 的入站调用来说,目标 EJB 必须实现优化的本地适配器 com.ibm.websphere.ola.Execute 和 com.ibm.websphere.ola.ExecuteHome 接口,其包括名为 execute() 的目标方法,该方法接受一个字节阵列并返回一个字节阵列。将提供一个称为 ola_apis.jar 的 JAR 文件,其包含这些接口。此 JAR 文件位于 WebSphere Application Server for z/OS 文件系统中且必须包括在应用程序的构建路径上。

名为 ola.rar 的 WebSphere Application Server 提供的新资源适配器支持来自 WebSphere Application Server 应用程序(EJB 或 servlet)的调用。外部地址空间应用程序需要首先使用一个优化的本地适配器服务器 API(主机服务或接收请求)并标识它们自身作为目标服务。然后,在调用目标服务以前,WebSphere Application Server 应用程序需要设置其希望的注册名以便联系连接规范和交互规范上的服务名。

调用未更改的 CICS 和 IMS 应用程序

优化的本地适配器提供了使 WebSphere Application Server 应用程序能够调用现有的、未更改的 CICS 和 IMS 事务的能力。

对于 CICS 来说,可以使用新的、WebSphere Application Server 提供的 CICS 控制事务 (BBOC) 在 CICS 区域中启动优化的本地适配器 CICS 链接服务器。链接服务器通过优化的本地适配器接受来自 WebSphere Application Server 的程序 LINK 请求,并使用 EXEC CICS LINK API 调用目标 CICS 程序。它可以在 COMMAREA 或 CHANNEL/CONTAINER 中将一系列参数传递到程序。它接收返回的响应并将其返回到 WebSphere Application Server 中的调用方。

对于调用现有的、未更改的 IMS 事务来说,优化的本地适配器提供一个工具,可以通过 IMS Open Transaction Manager Access (OTMA) 进行调用。可在 IMS 消息处理区域或快速路径依赖区域中驱动这些事务。

图 2. 优化的本地适配器接口
Figure 2.  优化的本地适配器接口
Figure 2. 优化的本地适配器接口

与 Java 对象之间相互映射参数数据

在调用具有优化的本地适配器功能的 EJB 时,可以使用本地语言应用程序使用的相同数据结果来生成 Java 类,对于每种属性都有 getter 和 setter 方法。在使用 IBM Rational® Application Developer 或 IBM Rational Developer for System z® 时,J2C 类别中的 CICS/IMS Java 数据绑定向导是创建这些 Java 类的向导。该向导采用任一 COBOL、PL/I 或 C 数据结构作为输入并生成具有相关 getter 和 setter 方法的 Java 类。

除了映射数字和字节字段,在为您的本地语言应用程序选择了正确的代码页时,它还将字符串数据转换成适当的代码页。在从本地语言应用程序接收数据时,字节流被送入类的新实例,且 getter 方法用于读取属性。在发送数据到本地语言应用程序时,将创建类的新实例且 setter 方法用于填充属性。然后,将类序列化为发送到本地语言应用程序的字节流。在大多数情况下,通过使用 CICS Transaction Gateway 或 IMS Connect,使用优化的本地适配器生成来映射调用数据的 Java 类也可以与应用程序一起使用。

安全传播

优化的本地适配器为在外部地址空间中的应用程序和 WebSphere Application Server 应用程序之间共享安全凭证提供了支持,这依赖于工作是传入 WebSphere Application Server 还是从 WebSphere Application Server 传出。让我们分别在每一个方向上检查安全传播。

入站到 WebSphere Application Server

对于调用 WebSphere Application Server EJB 的批处理 z/OS 应用程序来说,运行作业的线程或者 TCB 上的用户 ID,在 Register API 调用的时候是用于所有后续 WebSphere Application Server 应用程序调用的 ID。在 WebSphere Application Server EJB 容器中传播并断言此 ID。在 Register API 调用期间,存在系统访问工具(System Access Facility,SAF)检查,了解用户对目标服务器的 CBIND SAF 类的访问权限。如果进行 Register API 调用的 ID 没有最起码的针对此类的 READ 访问,那么注册调用将不被接受。

CICS 和 IMS 到 WebSphere Application Server

为了使从 CICS 发送到 WebSphere Application Server 的请求具有传播到 WebSphere Application Server 的当前 CICS 任务上的用户 ID,CICS 启动参数必须注明 SEC=Y。在没有启用 CICS 安全的情况下,优化的本地适配器将传播整个 CICS 区域的授权而不是单个任务用户。

要指导优化的本地适配器使用发起工作的特定 CICS 事务的凭证,在调用 Register API (BBOA1REG) 时设置 reg_flag_C2Wprop 标志。因为可能不容许 WebSphere Application Server 应用程序制定此种类型的基于安全的决策,所以 WebSphere Application Server 管理员可以选择配置服务器允许或禁止这种行为。要说明此项活动是被允许的,请在 WebSphere Application Server 管理控制台中定义并设置环境变量 ola_cicsuser_identity_propagate 为 1。(当然,如果没有设置变量且您必须创建或修改它时,您将需要在其范围内重新启动服务器以便将其激活。如果您试图使用 reg_flag_C2Wprop 字段设置为 1 的 Register API 时,您将知道未设置环境变量,调用将失败,并返回代码 8 和原因代码 21。)

对于从 IMS 批处理消息处理区域调用来说,对于 z/OS 批处理应用程序,在 WebSphere Application Server EJB 容器中传播并断言作业用户 ID。对于 IMS 消息处理程序(Message Processing Program,MPP)和快速路径程序(Fast Path Program,IFP)来说,会进行同样的流程:传播当前事务线程 (TCB) 上的身份。对于 MPP 和 IFP 来说,为了使用户 ID 反映真正 IMS 事务的用户 ID,您必须实现 IMS 构建安全环境 (DFSBSEX0) 退出,其告诉 IMS 将 TCB 用户 ID 上下文与当前 IMS 事务的身份保持同步。

从 WebSphere Application Server 出站

对于从 WebSphere Application Server 调用批处理服务器程序来说,批处理作业的用户 ID 适用于来自 WebSphere Application Server 的请求。在这种情况下不存在身份传播。

WebSphere Application Server 到 CICS 和 IMS

通过使用优化的本地适配器 CICS 链接服务器,可以完成从 WebSphere Application Server 到 CICS 的线程级用户 ID 传播。要实现此操作,您必须通过 SEC=Y 启动链接服务器。在此模式下运行时,优化的本地适配器将当前线程上的用户身份传播给 CICS,链接服务器将使用 EXEC CICS START TRANSID(‘BBO#’) USER(<userid>) 启动链接任务。您需要确保 CICS SURROGAT SAF 类处于活动状态,且正在运行链接服务器的用户 ID 具有为已传播的用户 ID 发布 START TRANSID 的权利。

对于 WebSphere Application Server 到 IMS 的安全传播和断言来说,您需要通过 OTMA 支持使用优化的本地适配器。WebSphere Application Server for z/OS 服务器必须被配置在启用的 SyncToThread 选项下运行。此外,必须设置 IMS OTMA 参数 OTMASE=FULL。这样,正在运行 WebSphere Application Server 应用程序下的用户 ID 将在 IMS 消息处理或快速路径依赖区域中的调度事务的位置传播并断言。这不适用于 IMS 批处理消息处理区域。

全局事务支持

(仅适用于 WebSphere Application Server 和 CICS。)

优化的本地适配为 CICS 到 WebSphere Application Server 和 WebSphere Application Server 到 CICS 的程序调用提供两阶段提交全局事务支持。应用程序的本地语言部分在 CICS Transaction Server for z/OS 中运行时,应用程序的本地语言和 EJB 部分都可以使用两阶段提交参与相同的全局事务。

从 CICS 调用到优化的本地适配器 EJB 时,需要将恢复标记的 z/OS 资源恢复服务(Resource Recovery Services,RRS)单元从 CICS 传递到 WebSphere Application Server,其使用此标记创建自己的恢复单元,然后该恢复单元级联到从 CICS 接收到的恢复单元。在 CICS 事务到达同步点时,RRS 驱动完成恢复的 WebSphere Application Server 单元。

在使用优化的本地适配器从 WebSphere Application Server for z/OS 调用到 CICS 事务时,从 WebSphere Application Server 将具有 XA 功能的事务上下文传递到 CICS。在 CICS 中运行的优化的本地适配器 CICS 链接服务器读取 XA 事务上下文并创建新的工作单元以便运行指定的本地语言程序。在 WebSphere Application Server 到达同步点时,需要在 WebSphere Application Server 和链接服务器之间交换 XA 协议消息。链接服务器在 CICS OTS (OT) 域中驱动适当的函数以便完成工作单元。

为了在调用到优化的本地适配器 EJB 时使用全局事务支持,您必须使用 CICS Transaction Server for z/OS V3.1 或更高版本。要在从 WebSphere Application Server 调用到 CICS 事务时使用全局事务支持,您必须使用 CICS Transaction Server for z/OS V4.1 或更高版本。基于在 CICS 内运行的优化的本地适配器 CICS 链接服务器设置以及在 WebSphere Application Server 内运行的 Java 应用程序的事务属性,优化的本地适配器决定是否传播事务上下文。

例如,如果 EJB 组件使用优化的本地适配器链接服务器调用 CICS 程序,则仅当 EJB 现在正在参与全局事务并且链接服务器是在启用事务支持(具有 TX=Y 的 BBOC)的情况下启动的时,才传播和使用事务上下文。同样,如果 CICS 程序调用优化的本地适配器 EJB,则仅当 EJB 部署有支持全局事务的事务属性(如 tx_required)时,才传播事务上下文。

工作负荷传播

可以使用工作负荷管理事务类映射 XML 文件配置 z/OS 工作负荷管理服务类,在该类下调度优化的本地适配器 EJB 请求。在 WebSphere Application Server 中,这个相同文件用于为已调度的其他工作类型配置服务类,如 HTTP 和 MDB 请求。请求基于请求属性映射到 WLM 事务类,如 HTTP 请求的 URL。然后,工作负荷管理的管理员通过在工作负荷管理中创建定义来将事务类映射到服务类,其适用于分配请求的优先级。

已经将名为 hslc 的新请求类型添加到映射文件以便支持优化的本地适配器请求。请求的服务名用于将请求映射到事务类。服务名可以使用通配符,从而可以轻松地将类似服务的组分配到相同的事务类。

应用程序的本地语言部分在 CICS 事务 Server for z/OS 中运行时,在将服务类分配到优化的本地适配器 EJB 请求时还可以使用 CICS 事务的事务名。在 CICS 事务进行其优化的本地适配器 EJB 请求时,将 CICS 事务的 WLM 性能块发送到 WebSphere Application Server。将对该性能块进行检查以获取事务名,如果存在事务名,可将其用于为优化的本地适配器 EJB 请求分配服务类。可通过以下方法配置此行为:通过在工作负荷管理事务类映射文件中设置属性,以及通过在工作负荷管理中创建定义,其将事务名映射到服务类而不是将事务类映射到服务类。

对 CICS 事务使用此技术时,通过为 CICS 事务复制工作负荷管理定义并将副本分配到 "CB" 子系统,可以在相同服务类下运行请求的 CICS 和 WebSphere Application Server 部分。

适用性

WebSphere Application Server for z/OS 管理存放优化的本地适配器跟踪数据的内部缓冲区。这个 8MB 的缓冲区存放超过 40,000 条跟踪记录,可用于诊断系统和有关优化的本地适配器请求的事务工作。在缓冲区填满时,它进行包装,以使其在优化的本地适配器处理时提供有限的视图。时间窗口的大小取决于创建跟踪数据的快速程度。这受到优化的本地适配器处理的数量以及跟踪粒度的设置影响。在使用优化的本地适配器的工作量变化时,您可以控制跟踪量。

优化的本地适配器使您能够设置三个等级:0(无)、1(粗略跟踪)以及 2(详细跟踪)。您可能会本能地断定设置更详细的跟踪等级将生成更多的记录并导致缓冲区得到更快的包装。虽然这在一般情况下是对的,但是您也可以为不同优化的本地适配器注册定位不同跟踪等级,包括为整个程序组设置默认值。通过为各种不同注册设置不同跟踪等级,数据进入缓冲区还依赖于在每个被跟踪的连接中的活动数量。

建立、激活并输出跟踪数据

优化的本地适配器跟踪支持是动态的,在这个意义上其可以在无需(对于大多数部分来说)服务器重启的情况下快速修改。在您决定三个要实现可用跟踪等级中的哪一个等级以后,下一件要考虑的事情就是您需要跟踪在何时以及何地生效。此处有两个领域需要考虑。您可以:

  • 跟踪现有注册。
  • 预定义尚未创建的注册的跟踪参数。

通过 z/OS 运算符修改 SETOLATRACE 命令可设置现有注册的跟踪。可通过注册名或作业名启动跟踪。这两者可用于设置明确的注册,或者您可以在名称中使用星号作为通配符以便影响一个修改命令中的多个连接。让我们看看如何使用 SETOLATRACE 命令。

运算符修改命令具有 SETOLATRACE 关键词一个后面的必要参数。通常的形式是:

F servername,SETOLATRACE=tracelevel,[ REGNAME=namestring | JOBNAME=namestring ]

其中:

  • F 是 z/OS 修改控制台命令。
  • servername 是命令的目标 WebSphere Application Server。(不是程序名。)
  • SETOLATRACE 表示您要设置优化的本地适配器跟踪等级。所需的参数跟踪等级为 0、1 或 2。
  • REGNAME 表示您只想为匹配的注册设置跟踪。
  • JOBNAME 表示您同样想为在其下进行注册的特定作业名设置跟踪。
  • namestring 指定您要影响的注册名或作业名。记住名称字符串可以包含通配符会很方便(虽然星号是惟一支持的字符,但是可以在名称字符串中使用多个。单一星号匹配所有注册)。

更多的详细信息,请参考 WebSphere Application Server 信息中心,其中包括使用此命令的示例。

请注意通过使用下列命令之一,您可以关闭对当前注册的所有跟踪:

  • F servername,SETOLATRACE=0,JOBNAME=*
  • F servername,SETOLATRACE=0,JOBNAME=*

如果无法在注册的生命周期中以足够快的速度输入修改命令来获取某种数据,那么可以预定义跟踪参数,以便在建立连接时立即设置特定跟踪设置。您可以预定义名称的范围或设置程序组范围的默认值。

使用优化的本地适配器跟踪属性文件可预定义服务器范围的跟踪。您可以在此文件中输入跟踪规范,然后告诉程序激活设置。激活跟踪属性不会影响现有的跟踪;其会影响如何为未来的注册设置跟踪。

要预定义跟踪属性:

  1. 在 HFS 中创建文件。此文件应该在 EBCDIC 中并可通过程序访问。该文件是根据以下语法的跟踪属性规范的简单逐行规范:

    namestring=tracelevel

    其中,namestring 是可以包含星号通配符的字母数字字符串。它指定一个或多个注册名。为了清楚起见,您可以将名称字符串放在单引号或双引号中。跟踪等级为 0、1 或 2。任何其他值都被认为是 0。

    跟踪属性条目如下所示:

    清单 1
    MYREGNAME=1
    "CICSREG"=2
    'SHORTREG'=0
    REGNAME*=1
    *NAME=2
    "REG*NAME"=0
    *=2

    在最后一行中,*=2,设置默认跟踪等级为 2。如果没有其他规范匹配新的注册,那么在此示例中它获得的跟踪等级就是 2。

    请注意跟踪属性条目按它们出现在文件中的顺序保留在程序的内存中。因此,在创建注册时,其名称要从上到下的与跟踪属性条目进行比较。只要发现匹配,匹配过程就结束。在上面的示例中,如果 *=2 条目已经位于文件的第一行,那么它将匹配每一个新的注册且没有其他条目获得比较机会。

    (提示:除非是在引用的字符串以内,否则开头的 # 字符就表示注释开始。)

  2. 在管理控制台中创建具有此名称的环境变量:

    WAS_DAEMON_ONLY_ola_trace_settings_file

    此变量是一个字符串且它的值是您的跟踪属性文件的完全限定路径和文件名。

    (重要提示:确保重新启动 WebSphere Application Server 程序以便在所有相关节点和服务器上保持活动状态。)

    在程序重新启动以后,您需要做的就是激活跟踪属性。

  3. 通过发布修改 SETOLATRACEPROPS 命令激活跟踪属性且新的跟踪设置将开始影响未来的注册。语法为:

    F daemonname,SETOLATRACEPROPS

动态设置跟踪信息的另外一种方式是应用程序自身在针对 BBOA1REG Register API 的调用中指示所期望的跟踪等级。除非通过 SETOLATRACE 修改命令变更,否则此设置将在注册的有效期内处于活动状态。要获得有关通过使用 Register API 提供跟踪等级的更多信息,请参考信息中心。

要指示 WebSphere Application Server 将优化的本地适配器内部跟踪缓冲区的内容输出到 WebSphere Application Server SYSPRINT DD,您将需要发布以下命令:

F servername,DISPLAY,OLATRACE=jjjjj

其中,jjjjj = 内部地址空间的 z/OS 工作名,或者使用通配符 (*) 表示所有项。

在相关的 WebSphere Application Server 控制区域的 SYSPRINT DD 中,您应该看到如清单 2 中所示的数据:

清单 2
******** OLATRACE Modify command output start ****************************     
******** Trace records for Jobname: *                                          
Trace: 2010/11/04 19:16:41.197 02 t=6C2580 c=UNK key=S2 tag= (10017001)        
  Description: BBGADISP - OLA Trace record dump                                
  Eye Catcher:  data_address=000002200e817980, data_length=8                   
  +--------------------------------------------------------------------------+ 
  |OSet| A=000002200e817980  Length = 0008 |     EBCDIC     |     ASCII      | 
  +----+-----------------------------------+----------------+----------------+ 
  |0000|C2C2D6C1 E3D9C1C5                  |BBOATRAE        |........        | 
  +--------------------------------------------------------------------------+ 
  Version: 1                                                                   
  Size of entry: 192                                                           
  STCK time:  data_address=000002200e81798c, data_length=8                     
  +--------------------------------------------------------------------------+ 
  |OSet| A=000002200e81798c  Length = 0008 |     EBCDIC     |     ASCII      | 
  +----+-----------------------------------+----------------+----------------+ 
  |0000|C6CB10A9 43B3F513                  |F..z..5.        |....C...        | 
  +--------------------------------------------------------------------------+ 
  'BBOA'+ Register name:  data_address=000002200e817994, data_length=12        
  +--------------------------------------------------------------------------+ 
  |OSet| A=000002200e817994  Length = 000c |     EBCDIC     |     ASCII      | 
  +----+-----------------------------------+----------------+----------------+ 
  |0000|D6D3C1C2 C3F2F6F1 40404040         |OLABC261        |........@@@@    | 
  +--------------------------------------------------------------------------+ 
  WAS Server name:  data_address=000002200e8179a0, data_length=8               
  +--------------------------------------------------------------------------+ 
  |OSet| A=000002200e8179a0  Length = 0008 |     EBCDIC     |     ASCII      | 
  +----+-----------------------------------+----------------+----------------+ 
  |0000|C2C2D6E2 F0F0F140                  |BBOS001         |.......@        | 
  +--------------------------------------------------------------------------+ 
  Job name or server name :  data_address=000002200e8179a8, data_length=8      
  +--------------------------------------------------------------------------+ 
  |OSet| A=000002200e8179a8  Length = 0008 |     EBCDIC     |     ASCII      | 
  +----+-----------------------------------+----------------+----------------+ 
  |0000|D6D3C1C2 C3C1D3D3                  |OLABCALL        |........        | 
  +--------------------------------------------------------------------------+ 
  Job number: 0                                                                
  ASCB @: fc2580                                                               
  TCB @: 6c8250                                                                
  Message data:  data_address=000002200e8179c0, data_length=128                
  +--------------------------------------------------------------------------+
  |OSet| A=000002200e8179c0  Length = 0080 |     EBCDIC     |     ASCII      |  
  +----+-----------------------------------+----------------+----------------+  
  |0000|C2C2D6C1 F0F7F0F2 C940C2C2 C7C1E2D9|BBOA0702I BBGASR|.........@......|  
  |0010|E5D840E4 978481A3 85D381A3 83884040|VQ UpdateLatch  |..@...........@@|  
  |0020|40404040 40404040 40404040 40404040|                |@@@@@@@@@@@@@@@@|  
  |0030|40404040 40404040 40404040 40404040|                |@@@@@@@@@@@@@@@@|  
  |0040|40404040 40404040 40404040 40404040|                |@@@@@@@@@@@@@@@@|  
  |0050|40404040 40404040 40400000 00000000|          ......|@@@@@@@@@@......|  
  |0060|00000000 00000000 00000000 00000000|................|................|  
  |0070|00000000 00000000 00000000 00000000|................|................|  
  +--------------------------------------------------------------------------+  
******** End of OLATRACE Modify command output ***************************

有两种其他方式来为优化的本地适配器激活跟踪。支持问题确定的 IBM 服务团队有可能会请求这些方法。

  • 存在一个适用于优化的本地适配器的 WebSphere Application Server for z/OS 本地级跟踪组件,可以通过在 WebSphere Application Server 控制区域发布如下命令来激活它:

    F servername,TRACEDATA=G

    在发布此命令以后,请参考 WebSphere Application Server 控制和 servant 区域日志并查看 SYSPRINT DD。

  • 还存在 Java 包级跟踪,其可以通过使用以下运算符命令启用:

    F servername,TRACEJAVA=’OLA=all’

    在发布此命令以后,相关的跟踪数据也将出现在 WebSphere Application Server 控制和 servant 区域 SYSPRINT DD 中。

将 WebSphere Application Server 堆栈扩展到旧的 z/OS 应用程序

优化的本地适配器为 z/OS 应用程序提供一种方法以便利用 WebSphere Application Server for z/OS 堆栈功能。例如,COBOL 或汇编语言批处理程序可以调用 WebSphere Application Server 中的包装器 EJB,然后其用 SOAP 或 RESTful 类型调用驱动到 Web 服务。这样,批处理程序就不需要在其实现中包括 HTTP 或 Web 服务堆栈来实现此目标。同样,通过使用优化的本地适配器来调用后端服务器程序的小代理 servlet,可通过 Web 技术(如 Web 服务)从调用方到达批处理、CICS 或 IMS 中现有的应用程序。

结束语

优化的本地适配器可成为应用程序现代化和重构策略不可分割的一部分。通过引入在 WebSphere Application Server 应用程序和旧的 z/OS 环境之间执行细粒度同步调用的简单方法,优化的本地适配器支持向对 z/OS 应用程序架构师和开发人员视为可能的内容添加了新的维度。此功能引入了创建组合应用程序的能力,其由来自各种不同应用程序环境(如 CICS、IMS 和 WebSphere Application Server for z/OS)的更小的组件所组成。它还将来自这些环境的安全性、事务性以及工作负荷上下文的组件关联在一起。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=643334
ArticleTitle=在 WebSphere Application Server for z/OS 上使用优化的本地适配器重构应用程序
publish-date=03282011