i keep getting an error "org.jpos.iso.ISOException: Key fields not found - not sending pd-channel-send.120". Kindly see my implementation.

this is my channel adaptor 10_pd_channel.xml

<?xml version="1.0" encoding="UTF-8"?>
<channel-adaptor name="pd-channel" logger="Q2">
   <channel class="org.jpos.iso.channel.ASCIIChannel" type="client" connect="yes" logger="Q2" realm="post-channel" packager="org.jpos.iso.packager.GenericPackager">
      <property name="packager-config" value="cfg/pd.xml" />
      <property name="host" value="127.0.0.1" />
      <property name="port" value="6276" />
      <property name="length-digits" value="6" />
      <property name="connection-timeout" value="30000" />
      <property name="timeout" value="300000" />
   </channel>
   <in>pd-channel-send</in>
   <out>pd-channel-receive</out>
   <reconnect-delay>10000</reconnect-delay>
   <keep-alive>yes</keep-alive>
</channel-adaptor>

20_pd_mux.xml
<mux class="org.jpos.q2.iso.QMUX" logger="Q2" name="pd-mux">
<in>pd-channel-receive</in>
<out>pd-channel-send</out>
<ready>pd-channel.ready</ready>
<unhandled>pd-unhandled</unhandled>
</mux>

21_pd_q_beans.xml

qmux = (QMUX) NameRegistrar.getIfExists("mux.pd-mux");
        log.info("qmux.getName ::: " + qmux.getName());
        
        ISOMsg m = new ISOMsg();
        try {
            m.setMTI("1200");
            m.set(2, transferRequest.getPrimaryAccountNo());
            m.set(3, transferRequest.getProcessingCode());
            m.set(4, transferRequest.getAmountTransaction());
            m.set(11, transferRequest.getStan());
            m.set(12, transferRequest.getDatetime());
            m.set(14, transferRequest.getDateExpire());
            m.set(22, transferRequest.getPosDataCode());
            m.set(24, transferRequest.getFunctionCode());
            m.set(25, transferRequest.getMsgReasonCode());
            m.set(26, transferRequest.getCardAcceptorBusinessCode());
            m.set(32, transferRequest.getAcqInstID());
            m.set(33, transferRequest.getFwdInstID());
            m.set(35, transferRequest.getTrack2Data());
            m.set(41, transferRequest.getCardAcceptTerminalId());
            m.set(42, transferRequest.getCardAcceptId());
            m.set(46, transferRequest.getAmountFees());
            m.set(49, transferRequest.getCcyCode());
            m.set(72, transferRequest.getDataRecord());
            m.set(93, transferRequest.getTrnxDestInstID());
            m.set(94, transferRequest.getTrnxOrigInstID());
            m.set(100, transferRequest.getRecvInstID());
            m.set(126, transferRequest.getAcqReqData());
           
            ISOMsg isoResponse = qmux.request(m, 30 * 1000);
            if (isoResponse != null) {
                val resp = new String(isoResponse.pack());
            } 

Any help will be really appreciated

0

There are 0 answers