将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 FML 编程文档 当然,英文的
用FML开发tuxedo atmi应用程序。
调用ocx,动态创建object,上传的代码有部分是不对的,有空需要修改。
这将运行使用的参考实现每个基准的10次迭代reference 。 要使用实现运行所有基准测试,请指定一个或多个FML可执行文件的路径作为参数,例如: ./run_benchmarks.sh ~ /Workspace/myFML/fml ~ /Workspace/...
bea 官网英文资料
使用此应用程序,内部用户将首先定义表单字段并将其分组到容器中。 每个表单字段都有一个可选的condition参数,这是一个字符串数组,用于根据条件用户设置将表单表单字段映射到客户用户。技术领域预计将使用以下...
车间绩效考核表模板.fml
一个Java网络OA办公系统,源代码完整,安装非常方便
可以计算三维的编织材料,也可以用于计算层合板并可以考虑层间破坏
1、与缓冲区使用有关的atmi 2、常用的fml(fml32)操作函数 3、连接的建立与断开有关的atmi 4、与请求tuxedo server 有关的atmi 5、与请求错误处理有关的atmi
ATR操盘绝技(东财).fml
外部应用访问Tuxedo服务是很经常的事,一般有两种方法WTC和Jolt,网上很多关于Jolt调用Tuxedo服务 文章,描述的太多笼统,其实通过Jolt并不是很复杂的事情,这里使用Eclipse3.1+Jolt+WebLogic8.1 +Tuxedo9.0环境描述...
User subroutine UMAT for modeling the damage initiation and evolution in the fiber-reinforced epoxy layers.
考虑复合材料损伤失效的子程序,包括纤维断裂跟基体开裂
abaqus umat 子程序下载,官网经典例子!
* FML/FML32 field table support This module includes the mkfldpm32.pl script that is the perl equivalent of the tuxedo mkfldhdr32 program. It accepts a field table file as input and produces a *.pm ...
fmltutor, Minecraft 1.8.9 FML开发教程 转载请附上本作品链接:https://fmltutor.ustc-zzzz.net/
交易中间件TUXEDO应用,值得学习的东西。
CoreModTutor:Minecraft 1.3.2-1.15.2 Vanilla和FML CoreMod开发教程