у меня есть ситуация, когда я должен отправить запрос ISOMsg на два канала параллельно, получить результат от обоих каналов и сравнить некоторые поля из обоих результатов, прежде чем ответить клиенту, который отправил запрос, пожалуйста, как мне это сделать. ниже то, что я сделал
@Override
public boolean process ( ISOSource isoSrc, ISOMsg isoMsg ) {
try{
if(isoMsg.getMTI() .equals("0200")){
MUX mux = (MUX) NameRegistrar.getIfExists("mux.jpos-host1-mux");
ISOMsg reply = mux.request(isoMsg, 10 * 1000);
if(reply != null){
System.out.println(new String(reply.pack()));
if(reply.getValue(39).equals("00")){
MUX mux_bank = (MUX) NameRegistrar.getIfExists("mux.jpos-host2-mux");
ISOMsg reply_bank = mux_bank.request(isoMsg, 10 * 1000);
if (isoMsg.hasField(39)) {
if(reply_bank.getValue(39).equals("00")){
reply.set(39, "00");
isoSrc.send(reply_bank);
}
}else{
//send a reversal to host1
}
}else{
isoSrc.send(reply);
}
}
}
}catch(ISOException e){
} catch (IOException ex) {
Logger.getLogger(ISO_HAWK.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
это правильный способ сделать это (т.е. учитывая, что время ответа будет больше, потому что я должен получить ответ от хоста 1 перед отправкой запроса на хост 2 и т. д. или есть лучший способ добиться этого (параллельно) и как мне это сделать.