Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Axis Web服务重载控制_Java_Controls_Overloading_Axis - Fatal编程技术网

Java Axis Web服务重载控制

Java Axis Web服务重载控制,java,controls,overloading,axis,Java,Controls,Overloading,Axis,我们希望在axis Web服务上实现过载机制。 基本上,我们希望在TPS(每秒事务数)值达到指定值(例如100或150)时拒绝传入的SOAP请求。 为了做到这一点,我们需要计算收到的请求数和发送的响应数 你能建议我从哪里开始实施吗?如何计算请求和响应 非常感谢,, Sekhar我认为应该在处理程序中实现消息计数和丢弃。以下是Axis文档中关于如何在web服务中编写和注册处理程序的详细说明: 基本上,代码方面的工作是:创建一个处理程序类,实现javax.xml.ws.handler.soap.SO

我们希望在axis Web服务上实现过载机制。 基本上,我们希望在TPS(每秒事务数)值达到指定值(例如100或150)时拒绝传入的SOAP请求。 为了做到这一点,我们需要计算收到的请求数和发送的响应数

你能建议我从哪里开始实施吗?如何计算请求和响应

非常感谢,,
Sekhar

我认为应该在处理程序中实现消息计数和丢弃。以下是Axis文档中关于如何在web服务中编写和注册处理程序的详细说明:

基本上,代码方面的工作是:创建一个处理程序类,实现
javax.xml.ws.handler.soap.SOAPHandler
。在
handleMessage(…)
方法中,对传入消息进行计数,如所示,如果达到过载限制,则返回
false


希望这能帮助你开始

我创建了一个处理程序,并将其与请求流和响应流相关联。我有一个查询,因为这个处理程序将被多个线程同时调用,我们需要在递增或递减计数器值的同时处理同步吗?还请告诉我Axis如何处理多个同时请求?这是一个很好的问题,我不知道确切的答案。但是,由于使用原子类(例如)非常容易,我建议您只使用其中一个。此外,与同步(使用
synchronized
关键字)相比,这些原子类在效率和易出错性方面是更好的选择。AtomicInteger是从java 1.5开始引入的,但是我们的应用程序是在Java 1.4上运行的,所以Java 1.4中有AtomicInteger的替代品吗?不幸的是,这些原子类依赖于硬件特性,这意味着你不能用一些库来代替它们。然而,在您的情况下,我认为一个简单的
volatile
变量也足够了。您将有一个竞争条件,但由于消息的到达无论如何都是不确定的,因此计数或丢失一条消息应该不是一个大问题。