Search code examples
jpos

JPOS purchase request gets duplicated


I am sending only one purchase request using JPOS, however I am getting duplicate requests in the logs.

<log realm="simulator_10000.server.session/127.0.0.1:50948" at="2023-05-01T09:09:25.736368">
   <session-start/>
 </log>
 <log realm="simulator_10000.server.session/127.0.0.1:50960" at="2023-05-01T09:09:25.743136">
   <session-start/>
 </log>
 <log realm="org.jpos.transaction.TransactionManager" at="2023-05-01T09:09:26.002006" lifespan="431ms">
   <abort>
     txnmgr-2:idle:12
     <context>
       CC_TR_REQUEST(P): 
        <isomsg direction="outgoing">
          <!-- net.shamirix.utils.CustomPacker1993 -->
          <field id="0" value="1200"/>
          <field id="2" value="2223600089700011"/>
          <field id="3" value="000000"/>
          <field id="4" value="000000000014"/>
          <field id="7" value="0501090925"/>
         …
          <field id="64" value="10011001"/>
          <field id="128" value="A8CDDA88FFFFFFFF" type="binary"/>
        </isomsg>
       
       CC_ISO_SOURCE: org.jpos.iso.channel.XMLChannel@1089f917
       RESPONSE: 
        <isomsg direction="incoming">
          <!-- net.shamirix.utils.CustomPacker1993 -->
          <field id="0" value="1210"/>
          <field id="2" value="2223600089700011"/>
          <field id="3" value="000000"/>
          <field id="4" value="000000000014"/>
          <field id="7" value="0501090925"/>
          …
          <field id="64" value="3130303131303031" type="binary"/>
          <field id="128" value="A8CDDA88FFFFFFFF" type="binary"/>
[![jpos logs][1]][1]
        </isomsg>

       

       DESTINATION: jPOS-AUTORESPONDER
       REQUEST(P): 
        <isomsg direction="outgoing">
          <!-- net.shamirix.utils.CustomPacker1993 -->
          <field id="0" value="1200"/>
          <field id="2" value="2223600089700011"/>
          <field id="3" value="000000"/>
          <field id="4" value="000000000014"/>
          <field id="7" value="0501090925"/>
          …
          <field id="64" value="10011001"/>
          <field id="128" value="A8CDDA88FFFFFFFF" type="binary"/>
        </isomsg>
       
       PAYMENT_PROCESSOR_RESPONSE: 
        <isomsg direction="incoming">
          <!-- net.shamirix.utils.CustomPacker1993 -->
          <field id="0" value="1210"/>
          <field id="2" value="2223600089700011"/>
          <field id="3" value="000000"/>
          <field id="4" value="000000000014"/>
          <field id="7" value="0501090925"/>
          …
          <field id="64" value="3130303131303031" type="binary"/>
          <field id="128" value="A8CDDA88FFFFFFFF" type="binary"/>
        </isomsg>
       
       Error: unconnected ISOChannel
     </context>
                 in-transit=3/4, head=14, tail=10, paused=0, outstanding=0, active-sessions=4/250, tps=0, peak=2, avg=0.01, elapsed=431ms
     
   </abort>
 </log>

Solution

  • Those are two different entries, REQUEST and CC_TR_REQUEST placed there probably by two different participants. I noticed you are setting the persist flag to true (that's the (P) indicator you see in the logs) by setting the boolean third parameter in ctx.put and while that can be totally OK, I wonder if that's what you really want. You need to take into account that this could persist sensitive data.