将FML(FML32)应用于WTC即指以FML(FML32)格式作为WEBLOGIC与TUXEDO相互通信的数据载体!
请您首先保证WTC的联通性,关于如何配置使得WTC工作,可参考博文WEBLOGIC通过WTC调TUXEDO服务!
关于FML(FML32)的信息,可参考将 FML 用于 WebLogic Tuxedo Connector中的以下信息:
FML 概述
WebLogic Tuxedo Connector FML API
FML 字段表管理
其内容为:
写道
FML 概述
注意: 有关使用 FML 的详细信息,请参阅 Programming a BEA Tuxedo Application Using FML。
FML 是一组 Java 语言函数,用来定义和操作称为字段缓冲区的存储结构。每个字段缓冲区都在字段中包含特性-值对。对于每个字段:
特性是字段的标识符。
关联的值表示字段的数据内容。
出现次数。
有两种类型的 FML:
基于字段长度和标识符为 16 位值的 FML16。它所受的限制为:8191 个唯一字段、单个字段长度 64K 字节、总字段缓冲区大小 64K 字节。
基于字段长度和标识符为 32 位值的 FML32。它允许大约 3 千万个字段,大约 20 亿字节的字段和缓冲区长度。
--------------------------------------------------------------------------------
WebLogic Tuxedo Connector FML API
注意: WebLogic Tuxedo Connector 实现部分 FML 功能。有关 FML32 的详细信息,请参阅 FML32 注意事项。
FML 应用程序编程接口(Application Program Interface,简称 API)记录在 Javadocs for WebLogic Server Classes 中的 weblogic.wtc.jatmi 包中。
--------------------------------------------------------------------------------
FML 字段表管理
字段表的生成方式类似于 Tuxedo 字段表。字段表是提供字段名定义、字段类型以及共用于两个系统中的标识号的文本文件。要使用 FML 与 Tuxedo 系统进行互操作,需要执行下列步骤:
1、将字段表从 Tuxedo 系统复制到 WebLogic Tuxedo Connector 环境。
例如:您的 Tuxedo 分发包含一个名为 bankapp 的银行应用程序示例。它包含一个名为 bankflds 的文件,该文件具有以下结构:
#Copyright (c) 1990 Unix System Laboratories, Inc.#All rights reserved#ident "@(#) apps/bankapp/bankflds $Revision: 1.3 $"# Fields for database bankdb# name number type flags commentsACCOUNT_ID 110 long - - ACCT_TYPE 112 char - - ADDRESS 109 string - - ...将字段表定义转换为 Java 源文件。使用 weblogic.wtc.jatmi包中提供的 mkfldclass 实用工具。此类是读取 FML32 字段表的实用工具函数,可以生成实现 FldTbl 接口的 Java 文件。此实用工具有两个实例:
mkfldclass
mkfldclass32
2、使用正确的命令实例将 bankflds 字段表转换为 FML32 Java 源代码。以下示例使用 mkfldclass。
java weblogic.wtc.jatmi.mkfldclass bankflds生成的文件的名称为 bankflds.java,该文件具有以下结构:
import java.io.*;import java.lang.*;import java.util.*;import weblogic.wtc.jatmi.*;public final class bankflds implements weblogic.wtc.jatmi.FldTbl{ /** number: 110 type: long */ public final static int ACCOUNT_ID = 33554542; /** number: 112 type: char */ public final static int ACCT_TYPE = 67108976; /** number: 109 type: string */ public final static int ADDRESS = 167772269; /** number: 117 type: float */...使用以下命令编译生成的 bankflds.java 文件:
javac bankflds.java结果将生成 bankflds.class 文件。进行加载后,WebLogic Tuxedo Connector 便可以使用该类文件在 FML32 字段中添加、检索和删除字段条目。
3、将字段表类文件添加到应用程序 CLASSPATH。
4、更新 WTCServer MBean。
5、更新 WTCResources MBean 以反映字段表类文件的完全限定位置。
6、使用所需的关键字描述 FML 缓冲区类型:fml16 或 fml32。
可以在以逗号分隔的列表中输入多个字段表类。
例如:
<wtc-resources> <name>BankappResources</name> <fld-tbl16-class>my.bankflds</fld-tbl16-class> <fld-tbl16-class>your.bankflds</fld-tbl16-class> <fld-tbl16-class>more.bankflds</fld-tbl16-class></wtc-resources>重新启动 WebLogic Server 以加载字段表类定义。
以上的核心点在于配置WEBLOGIC WTC的Resource,需要注意的两点是:①由公家生成的bankflds.java类的码值一定要修改保证与TUXEDO端的一致;②将①产生的class文件放在WEBLOGIC可识别的CLASSPATH下,重启WEBLOGIC,配置WTC Server的Resource!
以下是我使用的简单的测试代码:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="weblogic.wtc.jatmi.*,weblogic.wtc.gwt.*, javax.naming.*,java.io.*,org.twolf.wt.wtc.entity.BaseFld32" %>
<%
try
{
//调用接口服务
Context ctx = new InitialContext();
TuxedoConnectionFactory tuxedoFactory = (TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");
TuxedoConnection tuxedo = tuxedoFactory.getTuxedoConnection();
TypedFML32 buffer = new TypedFML32();
buffer.Fchg(BaseFld32.COL1,0,"servicename");
Reply rtn = tuxedo.tpcall("QRYBALANCE", buffer, 0);
TypedFML32 buffer2 = (TypedFML32)rtn.getReplyBuffer();
out.println("Result:"+buffer2.Fget(BaseFld32.MESSAGE,0));
}
catch(Exception e)
{
outStr = e.getMessage();
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
out.print(sw);
sw.close();
pw.close();
}
%>
分享到:
相关推荐
说明:本实例适用于windows环境下演示如何使用tuxedo FML32 缓冲区 使用方法: 1、修改ubbsimple中环境变量 2、修改make.cmd文件中的环境变量 3、mkfldhdr(mkfldhdr32)将simpin.fml编译为simpin.h 4、运行cmd,运行...
Tuxedo是由BEA Systems公司开发的一款事务处理中间件,广泛应用于金融、电信等行业。FML是Tuxedo中用于编写业务逻辑的一种宏语言,具有简洁高效的特点。 #### 二、版权与使用权声明 根据手册中的版权与使用权声明...
本文将深入探讨使用Function Meta Language(FML)进行Tuxedo ATMI应用程序编程的技术细节,以及其在现代分布式计算环境中的应用价值。 ### Tuxedo ATMI概述 Tuxedo(Transaction Processing System)是由BEA ...
本章节将详细介绍 FML 和 FML32 缓冲类型的特点、优势与劣势,以及如何在 Tuxedo 应用开发中有效地使用这些缓冲类型。 #### 二、FML(FML32)缓冲类型的定义 **Field Manipulation Language (FML)** 或者 **FML32**...
《深入解析BEA Tuxedo FML应用编程》 在IT领域,BEA Systems Inc.作为一家全球领先的企业软件供应商,其开发的BEA Tuxedo系统一直是事务处理平台的翘楚,尤其在金融、电信等行业有着广泛的应用。本文将重点探讨...
这种做法适用于那些在程序运行时可能需要根据用户需求或者外部条件加载的控件。 “上传的代码有部分是不对的,有空需要修改。”这句话表明,提供的代码可能包含错误或不完整的地方,需要开发者进行调试和修正。这...
FML.rar 是一个包含JAVA FML31相关资源的压缩包,主要针对的是Java网络OA(Office Automation)办公系统。FML31是这个系统的一个版本,它提供了完整的源代码,旨在简化安装过程,使得开发者或者系统管理员能够更加...
三维编织材料和层合板都是复合材料的一种形式,广泛应用于航空航天、汽车工业等领域。这些材料由不同方向的纤维或层片组合而成,因此具有各向异性特性,即在不同方向上的力学性能不同。层合板的层间破坏是指在板的...
为了更好地模拟复合材料在实际应用中的损伤与失效行为,工程师和科研人员开发了专门的用户自定义材料子程序(UMAT),并将其集成在像ABAQUS这样的通用有限元分析软件中。 本文将深入探讨ABAQUS软件中的一个UMAT子...
《Minecraft 1.8.9 FML开发教程》是一份专为 Minecraft 玩家和开发者准备的资源,旨在深入解析FML(Forge Mod Loader)在游戏版本1.8.9中的应用与开发技术。FML是Minecraft模组开发中不可或缺的部分,它允许玩家通过...
ABAQUS作为一款强大的非线性有限元分析软件,广泛应用于工程领域,其官方提供的示例通常具有很高的参考价值。 标签中的"umat composite umat_damage umat例子 umat程序"进一步明确了主题,涉及的是复合材料、UMAT...
3. `build.gradle`:这是Gradle的构建脚本,其中包含了项目的构建配置,如依赖管理、插件应用、源代码目录设置等。开发者会在这里指定Forge版本、MOD的元数据等信息。 4. `gradle.properties`:这个文件用于存储...
这将运行使用的参考实现每个基准的10次迭代reference 。 要使用实现运行所有基准测试,请指定一个或多个FML可执行文件的路径作为参数,例如: ./run_benchmarks.sh ~ /Workspace/myFML/fml ~ /Workspace/...
2. **常用的fml(fml32)操作函数** - `falloc`: 分配一个FML(Field Management Language)缓冲区,用于处理结构化数据。参数包括字段数量和缓冲区长度。成功返回指向FML缓冲区的指针,失败返回NULL,错误号存储在...
使用此应用程序,内部用户将首先定义表单字段并将其分组到容器中。 每个表单字段都有一个可选的condition参数,这是一个字符串数组,用于根据条件用户设置将表单表单字段映射到客户用户。技术领域预计将使用以下...
而FML32则适用于更大规模的应用,可容纳30百万个Fields,每个Field的最大长度为20亿字节。Field Buffer由Field ID、名称、数据类型和标志组成,其定义是通过特定的基数(如10050)来确定Field在Buffer中的相对地址。...
FML播放器是一款专注于播放MP3格式音频的应用工具,目前尚处于发展阶段,仅支持MP3文件的播放。开发者正致力于后续版本的改进与升级,旨在扩展其功能性和兼容性,为用户提供更加全面的多媒体体验。 在当前版本中,...
车间绩效考核表模板.fml
FML8244-VB 是一款采用 SOT23 封装的 N-Channel 场效应 MOS 管,主要应用于便携式设备的 DC/DC 转换器和负载开关等场景。该器件具备低导通电阻、高可靠性等特点,并符合无卤素环保标准以及欧盟 RoHS 指令要求。 ###...
在本文中,我们将深入探讨FML的源码,理解其工作原理,以及它如何与Forge集成,为“我的世界”带来系统开源的优势。 首先,我们关注的是“我的世界启动器源码”。启动器是游戏进入前的首要环节,它负责加载游戏资源...