public void ejecuta() {
    try {
      envia = new Socket390c(nombreClase, "LB54");

      if (!ObtenerDatos()) {
        this.exito = false;
        return;
      }
    } catch (Exception e) {
      this.codStatus = 99;
      this.msgStatus =
          "LB54"
              + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
              + " ERROR AL EJECUTAR SERVICIO: "
              + e.getMessage();
      SantanderConstantesService.escribeAlLog(
          SantanderConstantesService.NIVEL2,
          "390",
          "LB54",
          this.codStatus,
          this.nombreClase,
          "Instanciando Objeto Socket 390",
          this.msgStatus);
      return;
    } finally {
      try {
        String canalMQ = ConfiguracionMQ.getInstance().getCANAL();
        if (!canalMQ.equals("MQ")) {
          if (!envia.disconnect())
            org.apache.log4j.Logger.getLogger(this.getClass())
                .debug("No se pudo realizar la desconexion..Servicio LB54");
        } else {
          if (daomq != null && cerrarMQ) {
            daomq.cerrarConexion();
            daomq = null;
          }
        }

      } catch (Exception e) {
        org.apache.log4j.Logger.getLogger(this.getClass())
            .debug(
                "Ocurrio una excepcion al intentar cerrar la conexion Servicio LB54.."
                    + e.getMessage());
      }
    }
  }
  private boolean ObtenerDatos() {
    String commArea = null;
    String sResp = null;
    String tramaResp = null;
    boolean bandera = false;
    String canal = ""; // art52 24-01-2007
    try {

      canal = ConfiguracionMQ.getInstance().getCANAL();
      /* Revisamos si el canal por el cual se esta invocando la peticion */
      if (canal.equals("MQ")) {

        if (daomq == null) {

          daomq = new ServiciosDAOMQ();
          cerrarMQ = true;
        }

        /* Se arma trama de envio con los parametros de entrada, en la cabecesa se considera
         * 01 como tecla de funcion para Bloqueos */
        commArea =
            SantanderUtileriasService.armaCabeceraPS7(canal, "LB54", "NB54", 10, this.teclaFunc);
        commArea += SantanderUtileriasService.rellenar(this.cliente, 8, ' ', 'I');
        commArea += SantanderUtileriasService.rellenar(this.estatusToken, 2, '0', 'I');
        org.apache.log4j.Logger.getLogger(this.getClass()).debug("TRAMA ENVIA [" + commArea + "]");
        sResp = daomq.obtenerTrama(commArea);
        tramaResp = sResp;

      } else {
        if (!envia.connect()) {
          this.codStatus = envia.getCodigoEstatus();
          this.msgStatus =
              "LB54"
                  + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                  + " "
                  + envia.getMensajeEstatus();
          SantanderConstantesService.escribeAlLog(
              SantanderConstantesService.NIVEL2,
              "390",
              "LB54",
              this.codStatus,
              this.nombreClase,
              "Enviando la trama: " + commArea,
              this.msgStatus);
          return false;
        }
        commArea = SantanderUtileriasService.armaCabeceraPS7(canal, "LB54", "NB54", 10, "00");
        commArea += SantanderUtileriasService.rellenar(this.cliente, 8, ' ', 'I');
        commArea += SantanderUtileriasService.rellenar(this.estatusToken, 2, '0', 'I');
        org.apache.log4j.Logger.getLogger(this.getClass()).debug("TRAMA ENVIA [" + commArea + "]");
        envia.setStrIn(commArea);
        if (!envia.send()) {
          this.codStatus = envia.getCodigoEstatus();
          this.msgStatus =
              "LB54 "
                  + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                  + " "
                  + envia.getMensajeEstatus();
          SantanderConstantesService.escribeAlLog(
              SantanderConstantesService.NIVEL2,
              "390",
              "LB54",
              this.codStatus,
              this.nombreClase,
              "Enviando la trama: " + commArea,
              this.msgStatus);
          return false;
        }
        sResp = (envia.getStrOut() == null) ? "" : envia.getStrOut();
        tramaResp = sResp;
      }

      org.apache.log4j.Logger.getLogger(this.getClass()).debug("TRAMA RECIBE [" + sResp + "]");
      if (sResp.trim().equals("")) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " SIN RESPUESTA 390";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("NO EXISTE  TERMINAL ACTIVO") > -1) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " NO HAY TERMINALES 390 PARA ATENDER LA PETICION";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("ABEND CICS") > -1 || sResp.indexOf("failed with abend") > -1) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " TRANSACTION WITH ABEND";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("NO EXISTEN DATOS PARA LA CONSULTA SOLICITADA") > -1) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " NO EXISTEN DATOS PARA LA CONSULTA SOLICITADA";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("NO HAY MOVIMIENTOS") > -1) {
        this.codStatus = 97;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " NO HAY MOVIMIENTOS";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("Transaction '' is not recognized") > -1) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " NO HAY MOVIMIENTOS";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("MENSAJE RECIBIDO DEL PS7 ES ERRONEA") > -1) {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " FORMATO PS7 INCORRECTO PARA REALIZAR CONSULTA";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      } else if (sResp.indexOf("@AVLBA") > -1) {
        org.apache.log4j.Logger.getLogger(this.getClass())
            .debug(
                "---------------------------------------------------------------------------------");
        org.apache.log4j.Logger.getLogger(this.getClass())
            .debug("ESTA ES LA TRAMA DE RESPUESTA DESDE 390 <<<" + sResp + ">>>");
        try {
          sResp = sResp.substring(sResp.indexOf("P") + 1);
        } catch (Exception e) {
        }
        org.apache.log4j.Logger.getLogger(this.getClass())
            .debug("ESTA ES LA TRAMA DE RESPUESTA DESDE 390 DESPUES DEL SUBS <<<" + sResp + ">>>");
        org.apache.log4j.Logger.getLogger(this.getClass())
            .debug(
                "---------------------------------------------------------------------------------");

        this.codStatus = 0;
        bandera = true;
        this.msgStatus =
            "LB54"
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " "
                + SantanderConstantesService.RESPUESTA_SOCKET;
      } else {
        this.codStatus = 99;
        this.msgStatus =
            "LB54 "
                + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
                + " ERROR DESCONOCIDO";
        SantanderConstantesService.escribeAlLog(
            SantanderConstantesService.NIVEL2,
            "390",
            "LB54",
            this.codStatus,
            this.nombreClase,
            "Enviando la trama: " + commArea,
            this.msgStatus);
        return false;
      }
      SantanderConstantesService.escribeAlLog(
          SantanderConstantesService.NIVEL2,
          "390",
          "LB54",
          this.codStatus,
          this.nombreClase,
          "Enviando la trama: " + commArea,
          this.msgStatus);
    } catch (Exception e) {
      this.codStatus = 99;
      this.msgStatus =
          "LB54"
              + SantanderUtileriasService.rellenar("" + this.codStatus, 4, '0', 'I')
              + " ERROR AL EJECUTAR SERVICIO: "
              + e.getMessage();
      SantanderConstantesService.escribeAlLog(
          SantanderConstantesService.NIVEL2,
          "390",
          "LB54",
          this.codStatus,
          this.nombreClase,
          "Enviando la trama: " + commArea,
          "ERROR AL EJECUTAR SERVICIO: " + e.getMessage());
      return false;
    }
    if (this.codStatus == -1) {
      this.codStatus = 99;
      SantanderConstantesService.escribeAlLog(
          SantanderConstantesService.NIVEL2,
          "390",
          "LB54",
          this.codStatus,
          this.nombreClase,
          "Enviando la trama: " + commArea,
          this.msgStatus);
    }
    return bandera;
  }