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