I have the following server
<server class="org.jpos.q2.iso.QServer" logger="Q2" name="ZMNFSListener" realm="ZMNFSListener">
<attr name="port" type="java.lang.Integer">8000</attr>
<channel name="nfs.channel"
class="org.jpos.iso.channel.NACChannel"
packager="org.jpos.iso.packager.GenericPackager"
header="000000000000000000000000000000000000000000" type="server" logger="Q2" realm="ZMNFSListener">
<property name="packager-config" value="cfg/packager/iso93binary.xml" />
<property name="timeout" value="300000" />
<property name='override-header' value='true' />
</channel>
<request-listener class="
com.mypackage.MessageListener" logger="Q2" realm="incoming-request-listener">
<property name="space" value="tspace:default" />
<property name="queue" value="NFSTXNMGR" />
<property name="ctx.DESTINATION" value="nfs-mux" />
</request-listener>
</server>
with the following mux
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="nfs-mux">
<in>nfs-receive</in>
<out>nfs-send</out>
<ready>nfs-channel.ready</ready>
<request-listener class="com.mypackage.MessageListener" logger="Q2" realm="incoming-request-listener">
<property name="queue" value="NFSTXNMGR" />
<property name="ctx.DESTINATION" value="nfs-mux" />
</request-listener>
</mux>
I also have this QBean
<qbean name='sendtransfers' class='com.mypackage.TransactionSendingBean' logger='Q2'>
<property name="dburl" value="jdbc:sqlserver://
127.0.0.1;databasename=NFSHost;" />
<property name="dbuser" value="zamswitch" />
<property name="dbpassword" value="z4msw1tch" />
<property name="ouriin" value="000227" />
</qbean>
In the QBean Run method:
public void run () {
for (int tickCount=0; running (); tickCount++) {
QMUX qmux = (QMUX) NameRegistrar.getIfExists("mux.nfs-mux");
if (qmux != null) {
log.info("TransactionSendingBean: qmux is not null");
} else {
log.info("TransactionSendingBean: qmux is null, dangit!!");
}
if (qmux != null) {
try {
log.info("Transaction Sending Bean: qmux is not null");
if (qmux.isConnected()) {
ISOMsg transferMsg = new TransferMessage(destIIN, sourceAccount, destAccount, transferAmount);
log.info(common.messageDump(transferMsg));
ISOMsg trfResponse = qmux.request(transferMsg, 5000);
if (trfResponse!=null) {
if (trfResponse.hasField(39) && trfResponse.getValue("39").equals("000")) {
log.info("Transfer Transaction successful");
}
} else {
log.error("Response message is null");
}
}
}
catch (ISOException) {
logger.error("Exception Encountered: " + e.getMessage());
}
}
}
}
The weird behavior is that the response message does not return to the QBean from which i send it (I get "Response message is null") but the response is being received by the request listener class, as if it is a "new" message coming in over the channel and not a response to a message sent from the QBean. Any insights?