<qserver name="m-jpos-server" logger="Q2">
<attr name="port" type="java.lang.Integer">19920</attr>
<channel name="channel.1" logger="Q2"
class="org.jpos.iso.channel.NACChannel"
packager="org.jpos.iso.packager.ISO93BPackager">
<property name="timeout" value="900000" /> <!-- 15 minutes -->
<property name="packager-logger" value="Q2" />
</channel>
<request-listener class="MListener" logger="Q2">
<property name="space" value="tspace:default" />
<property name="queue" value="MTxQueue" />
</request-listener>
<in>MQ</in>
<out>CQ</out>
</qserver>
if(isoServer.getConnections()>0 && qmux.isConnected()) {
ISOMsg response = qmux.request(msg, 5000);
log.info("Received RESPONSE: " + response);
}
public boolean process (ISOSource source, ISOMsg m) {
try {
if(m.isResponse()==true){
return false;
}else{
Context ctx = new Context ();
ctx.put(REQUEST, m);
ctx.put(ISOSOURCE, source);
ctx.put(TIMER_START, System.currentTimeMillis());
ctx.put(HANDLER_FOUND, false);
ctx.put(MESSAGE_ID, msgLogId);
sp.out (queueName, ctx);
log.info("Process ISOMsg " + m.toString());
return true;
}
} catch (ISOException e) {
log.error("Unable to check if ISOMsg " + m + " is a response. Reason: " + e.getMessage(), e);
return false;
}
}
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
Join us in IRC at http://webchat.freenode.net/?channels=jpos
You received this message because you are subscribed to the "jPOS Users" group.
Please see http://jpos.org/wiki/JPOS_Mailing_List_Readme_first
To post to this group, send email to jpos-...@googlegroups.com
To unsubscribe, send email to jpos-users+...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jpos-users
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/310bdedd-b41f-4464-918a-939b333b056d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I couldnt reproduce your problem with the following test code (mimics your setup).
Server Mux
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="m-jpos-mux">
<key>11</key>
<in>CQ</in>
<out>MQ</out>
<unhandled>UNHANDLED</unhandled>
</mux>
Server
<?xml version="1.0" ?>
<server name="test-network-server" class="org.jpos.q2.iso.QServer" logger="Q2">
<attr name="port" type="java.lang.Integer">19920</attr>
<channel name="test.channel"
class="org.jpos.iso.channel.NACChannel"
packager="org.jpos.iso.packager.ISO93BPackager" logger="Q2">
</channel>
<request-listener class="ServerListener" logger="Q2">
<property name="space" value="tspace:default" />
<property name="queue" value="MTxQueue" />
</request-listener>
<in>MQ</in>
<out>CQ</out>
</server>
A bean that gets the servers mux and sends the request
<one-shot class="Inject" logger="Q2">
</one-shot>
ServerListener based on your logic
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISORequestListener;
import org.jpos.iso.ISOSource;
public class ServerListener implements ISORequestListener {
@Override
public boolean process (ISOSource source, ISOMsg m) {
try {
if(m.isResponse()==true){
return false;
}else{
System.out.println(("Process ISOMsg " + m.toString()));
return true;
}
} catch (ISOException e) {
System.out.println(("Unable to check if ISOMsg " + m + " is a response. Reason: " + e.getMessage()));
return false;
}
}
}
Standalone client that just responds back/
import java.io.IOException;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOPackager;
import org.jpos.iso.channel.NACChannel;
import org.jpos.iso.packager.ISO93BPackager;
public class ClientChannel {
public static void main(String[] args) throws IOException, ISOException {
ISOPackager p = new ISO93BPackager();
NACChannel ch = new NACChannel("127.0.0.1", 19920, p, null);
ch.connect();
ISOMsg m =ch.receive();
m.setResponseMTI();
ch.send(m);
}
}
q2 log
<log realm="Q2.system" at="Thu Sep 10 23:42:46 IST 2015.370">
<info>
deploy:C:\Temp\jposlist\build\deploy\10_server_mux.xml
</info>
</log>
<log realm="Q2.system" at="Thu Sep 10 23:42:46 IST 2015.426">
<info>
deploy:C:\Temp\jposlist\build\deploy\20_server.xml
</info>
</log>
<log realm="Q2.system" at="Thu Sep 10 23:42:46 IST 2015.433">
<info>
deploy:C:\Temp\jposlist\build\deploy\30_Injector.xml
</info>
</log>
<log realm="test-network-server.server" at="Thu Sep 10 23:42:46 IST 2015.475">
<iso-server>
listening on port 19920
</iso-server>
</log>
<log realm="test-network-server.server.session/127.0.0.1:57358" at="Thu Sep 10 23:42:49 IST 2015.904">
<session-start/>
</log>
<log realm="channel/127.0.0.1:57358" at="Thu Sep 10 23:42:54 IST 2015.891" lifespan="4ms">
<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.ISO93BPackager -->
<field id="0" value="0800"/>
<field id="11" value="123456"/>
</isomsg>
</send>
</log>
<log realm="channel/127.0.0.1:57358" at="Thu Sep 10 23:42:54 IST 2015.898" lifespan="4993ms">
<receive>
<isomsg direction="incoming">
<!-- org.jpos.iso.packager.ISO93BPackager -->
<field id="0" value="0810"/>
<field id="11" value="123456"/>
</isomsg>
</receive>
</log>
<log realm="channel/127.0.0.1:57358" at="Thu Sep 10 23:42:55 IST 2015.895" lifespan="1ms">
<receive>
<peer-disconnect>Connection reset</peer-disconnect>
</receive>
</log>
<log realm="test-network-server.server.session/127.0.0.1:57358" at="Thu Sep 10 23:42:55 IST 2015.895">
<session-end/>
</log>