Пример #1
0
 @Override
 public void destroy() {
   if (jmsMessageConsumer != null) {
     jmsMessageConsumer.close();
   }
   super.destroy();
 }
Пример #2
0
 @Override
 public String produce(String lastSourceOffset, int maxBatchSize, BatchMaker batchMaker)
     throws StageException {
   int batchSize = Math.max(basicConfig.maxBatchSize, maxBatchSize);
   messagesConsumed +=
       jmsMessageConsumer.take(batchMaker, getContext(), batchSize, messagesConsumed);
   return Utils.format("{}::{}", jmsConfig.destinationName, messagesConsumed);
 }
Пример #3
0
 public void rollback() {
   try {
     if (jmsMessageConsumer != null) {
       jmsMessageConsumer.rollback();
     }
   } catch (Exception ex) {
     LOG.warn("Rollback failed: {}", ex.toString(), ex);
   }
 }
Пример #4
0
  @Override
  protected List<ConfigIssue> init() {
    List<ConfigIssue> issues = new ArrayList<>();
    try {
      Properties contextProperties = new Properties();
      contextProperties.setProperty(
          javax.naming.Context.INITIAL_CONTEXT_FACTORY, jmsConfig.initialContextFactory);
      contextProperties.setProperty(javax.naming.Context.PROVIDER_URL, jmsConfig.providerURL);
      if (jmsConfig.initialContextFactory.toLowerCase(Locale.ENGLISH).contains("oracle")) {
        contextProperties.setProperty("db_url", jmsConfig.providerURL); // workaround for SDC-2068
      }
      contextProperties.putAll(jmsConfig.contextProperties);

      initialContext = initialContextFactory.create(contextProperties);
    } catch (NamingException ex) {
      LOG.info(
          Utils.format(
              JmsErrors.JMS_00.getMessage(),
              jmsConfig.initialContextFactory,
              jmsConfig.providerURL,
              ex.toString()),
          ex);
      issues.add(
          getContext()
              .createConfigIssue(
                  JmsGroups.JMS.name(),
                  "jmsConfig.initialContextFactory",
                  JmsErrors.JMS_00,
                  jmsConfig.initialContextFactory,
                  jmsConfig.providerURL,
                  ex.toString()));
    }
    if (issues.isEmpty()) {
      try {
        connectionFactory = (ConnectionFactory) initialContext.lookup(jmsConfig.connectionFactory);
      } catch (NamingException ex) {
        LOG.info(
            Utils.format(
                JmsErrors.JMS_01.getMessage(), jmsConfig.initialContextFactory, ex.toString()),
            ex);
        issues.add(
            getContext()
                .createConfigIssue(
                    JmsGroups.JMS.name(),
                    "jmsConfig.initialContextFactory",
                    JmsErrors.JMS_01,
                    jmsConfig.connectionFactory,
                    ex.toString()));
      }
    }
    if (issues.isEmpty()) {
      jmsMessageConsumer =
          jmsMessageConsumerFactory.create(
              initialContext,
              connectionFactory,
              basicConfig,
              credentialsConfig,
              jmsConfig,
              jmsMessageConverter);
      issues.addAll(jmsMessageConsumer.init(getContext()));
    }
    // no dependencies on the above for initialization
    issues.addAll(jmsMessageConverter.init(getContext()));
    return issues;
  }
Пример #5
0
 @Override
 public void commit(String offset) throws StageException {
   jmsMessageConsumer.commit();
 }