来自Java webservice的Asynch组件调用

时间:2015-10-16 05:53:34

标签: java multithreading

我们有一个Java SOAP Web服务,它由客户端应用程序调用。该服务需要解析消息 - >验证它并将确认发送回客户端。 间歇性地,应该调用另一个将执行数据库事务的组件。 我想使用java.lang.Runnable接口作为处理组件的一部分,它将异步执行数据库事务。同时,确认将被发送回客户端。以下是我编写的测试代码。 如果从客户端调用多个请求,或者我应该将同步添加到数据库调用的代码块中,您能否判断是否存在任何问题。

public class MessageProcessing implements Runnable{

private String inputMsg;

public MessageProcessing(String sampleMessage) {
    this.inputMsg = sampleMessage;
}

public void sendToSocket() {

    performDBCall();
}
private void performDBCall() {
    //TODO Code for DB Call
}

@Override
public void run() {
    System.out.println("Inside Child Thread");
    sendToSocket();
}

1 个答案:

答案 0 :(得分:0)

根据您编写的测试代码,我认为您应该在没有同步的情况下正常运行,因为您将为每个收到db transaction的请求生成一个新线程。但是,如果您在performDBCall方法中使用任何单个实例对象引用,则需要重新考虑您的设计。同步始终是一个巨大的性能瓶颈,尤其是在客户端 - 服务器架构中。