code: @Override
      public void recover() {
  
          // not revoverable
          if (this.getCoreConnection() == null || !ImplementorUtils.isImplementationOf(getCoreConnection(), IXADataRecorderAware.class)) {
              return;
          }
  
          IXADataRecorderAware con = ImplementorUtils.cast(getCoreConnection(), IXADataRecorderAware.class);
  
          // the connection has to re establish the state of the message LOG
          IXADataRecorder msgLogger = this.getXADataRecorder();
          if (msgLogger.isEmpty()) {
              return;
          }
          this.fireConnectionRecovering();
          IDataRecordReplay dataRecordReplay = con.recoverReplayListener();
  
          if( dataRecordReplay==null) {
              throw new IllegalStateException("IPhynixxConnection.recoverReplayListener() has to provide a IDataRecordReplay to be recovered");
          }
  
          // msgLogger.recover();
          msgLogger.replayRecords(dataRecordReplay);
  
          this.fireConnectionRecovered();
  
      }
docs: recovers the data of the dataLogger and provides the recovered data to the connection via the replaylistener