Payload软件包
Payload软件包可用于客户端,也可用于服务器。它包含三个类:ClientReport、CurrentReport、和 Serializer。
ClientReport 表示一个客户端次数报告:
| package Payload; import java.io.*; import java.util.*; /** * * @author Brian Connolly Brian@ideajungle.com */ public class ClientReport implements Serializable { public Date clientStartDateTime; public Date serverStartDateTime; public long clientElapsedMS; public String type; public String status; public String transactionID; public String clientID; //Default public constructor for WSDL public ClientReport() { } /* . . . Get, set property methods are not shown */ |
在上述代码中,clientStartDateTime记录客户端初始化事务的时间。serverStartDateTime 当前没有使用;它的用途是保存事务的服务器开始时间以便事务次数可与服务器资源使用的随时间的变化关联起来。
ClientElapsedMS是我们记录的主要工具:从客户端开始记录新事务到它收到最后一个Web服务调用的结果为止这段时间的毫秒数。
Type允许客户端使用类型特征化事务。通常,事物系统提供许多种类型的事务。我们期望某些类型对于服务器来说相对容易一些,某些类型相对难一些,这样当我们分析响应次数和测量服务器资源时我们能够将他们辨别出来。
Status记录事务完成时的完成状态。
ClientID 是客户端标记符。当分析服务品质时我们可以使用它来区别同一个客户端完成的事务。
客户端使用第二个类CurrentReport来定界应用事务:
| package Payload; import java.util.*; import java.rmi.server.*; /** * * @author Brian Connolly Brian@ideajungle.com */ public class CurrentReport { public static UID ClientIdentifier = new UID(); /** Holds value of property currentReport */ public static ClientReport Report; public static ClientReport LastReport; /** Creates a new instance of CurrentReport */ public CurrentReport() { } public void BeginTransaction() { Report = new ClientReport(); Report.setClientID(ClientIdentifier.toString()); Report.setClientStartDateTime( new Date()); } public void CommitTransaction(String transactionID, String type, String status) { Report.setTransactionID(transactionID); Report.setStatus(status); Report.setType(type); long l1 = Report.getClientStartDateTime().getTime(); long l2 = new Date().getTime(); Report.setClientElapsedMS(l2-l1); LastReport = Report; Report = null; } /** Getter for property currentReport * @return Value of property currentReport */ public static ClientReport getReport() { ClientReport last = LastReport; LastReport = null; return last; } /** Setter for property currentReport * @param currentReport New value of property currentReport */ public void setReport(ClientReport Report) { this.LastReport = Report; } } |
CurrentReport保存进行中的事务的当前 ClientReport 。它也保存LastReport,也就是一个完成的事务。它还产生一个作为唯一设备标记符使用的客户端标记符——在实际的应用中,这个客户端标记符可被修改为全局的唯一标记符。CurrentReport是非线程安全的;我们假设在客户端应用中只有一个单线程执行服务器事务。图 文 结 合:http://www.qqread.com/j2ee/w584186012.html进入讨论组讨论。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 提高J2EE层与数据库层交互操作能力优势 (0次浏览)
- 怎样部署基于WebSphere的J2EE应用 (0次浏览)
- 微软冲击移动平台市场J2ME何去何从 (0次浏览)
- 开发工具王者比拼 .NET单挑J2EE (0次浏览)
- 教您怎样部署基于WebSphere的J2EE应用 (0次浏览)
- 华山论剑 J2EE单挑.NET之框架组件篇 (0次浏览)
- 对J2EE项目实际应用的一点体会 (0次浏览)
- J2EE综合:介绍编写XML文档的工作经验 (0次浏览)
- J2ME手机游戏:获取RecordStore相关信息 (0次浏览)
- J2EE综合——Struts常见错误的全面汇总 (0次浏览)



