@Test
  public void testSLAJobSelectors() throws Exception {
    JMSSLAEventListener slaListener = new JMSSLAEventListener();
    slaListener.init(conf);
    SLACalcStatus startMiss = new SLACalcStatus(new SLARegistrationBean());
    SLARegistrationBean startMissBean = startMiss.getSLARegistrationBean();
    startMiss.setId("0000000-000000000000001-oozie-wrkf-C@1");
    startMissBean.setAppName("Test-SLA-Start-Miss");
    startMissBean.setAppType(AppType.COORDINATOR_ACTION);
    startMissBean.setUser("dummyuser");
    startMiss.setEventStatus(EventStatus.START_MISS);
    startMiss.setSLAStatus(SLAStatus.NOT_STARTED);
    startMiss.setMsgType(MessageType.SLA);

    ConnectionContext jmsContext = getConnectionContext();
    Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
    String selector = JMSHeaderConstants.EVENT_STATUS + "='START_MISS'";
    MessageConsumer consumer =
        jmsContext.createConsumer(session, slaListener.getTopic(startMiss), selector);
    slaListener.onStartMiss(startMiss);
    TextMessage message = (TextMessage) consumer.receive(5000);
    System.out.println("\n Text " + message.getText());
    SLAMessage startMissMsg = (SLAMessage) JMSMessagingUtils.getEventMessage(message);
    assertEquals("dummyuser", startMissMsg.getUser());
    assertEquals(EventStatus.START_MISS, startMissMsg.getEventStatus());
    assertEquals(MessageType.SLA, startMissMsg.getMessageType());
  }
  @Test
  public void testSLAJobSelectorsNegative() throws Exception {
    JMSSLAEventListener slaListener = new JMSSLAEventListener();
    slaListener.init(conf);
    SLACalcStatus startMiss = new SLACalcStatus(new SLARegistrationBean());
    SLARegistrationBean startMissBean = startMiss.getSLARegistrationBean();

    startMiss.setId("0000000-000000000000001-oozie-wrkf-C@1");
    startMissBean.setAppName("Test-SLA-Start-Miss");
    startMissBean.setAppType(AppType.COORDINATOR_ACTION);
    startMissBean.setUser("dummyuser");
    startMiss.setEventStatus(EventStatus.START_MISS);
    startMiss.setSLAStatus(SLAStatus.NOT_STARTED);
    startMiss.setMsgType(MessageType.SLA);

    ConnectionContext jmsContext = getConnectionContext();

    Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
    // Pass a selector which does not match and assert for null message
    String selector = JMSHeaderConstants.EVENT_STATUS + "='SLA_END_MISS'";
    MessageConsumer consumer =
        jmsContext.createConsumer(session, slaListener.getTopic(startMiss), selector);
    slaListener.onStartMiss(startMiss);
    TextMessage message = (TextMessage) consumer.receive(5000);
    assertNull(message);
  }
Example #3
0
 /**
  * Register for a JMX callback when the server transitions from started->...->active. We do this
  * when we notice that the server is started but not yet active.
  */
 void addActivationListener() {
   try {
     ObjectName infoMBean = m_serverHelper.getServerInfoMBean(m_connectCntx);
     m_connectCntx.addNotificationListener(infoMBean, this);
     if ((m_active = internalIsActive()) == true) {
       m_connectCntx.removeNotificationListener(infoMBean, this);
     }
   } catch (Exception e) {
     /**/
   }
 }
  public void testOnSLADurationMetEvent() throws Exception {
    JMSSLAEventListener slaListener = new JMSSLAEventListener();
    slaListener.init(conf);
    SLACalcStatus durationMet = new SLACalcStatus(new SLARegistrationBean());
    SLARegistrationBean durationMetBean = durationMet.getSLARegistrationBean();

    Date expectedStartDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
    Date actualStartDate = DateUtils.parseDateUTC("2013-01-01T01:00Z");
    Date expectedEndDate = DateUtils.parseDateUTC("2013-01-01T12:00Z");
    Date actualEndDate = DateUtils.parseDateUTC("2013-01-01T14:00Z");
    long expectedDuration = (expectedEndDate.getTime() - actualStartDate.getTime()) / (1000 * 60);
    durationMet.setId("0000000-000000000000001-oozie-wrkf-C@1");
    durationMetBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
    durationMetBean.setAppName("Test-SLA-Duration-Met");
    durationMet.setEventStatus(EventStatus.DURATION_MET);
    durationMet.setSLAStatus(SLAStatus.MET);
    durationMetBean.setAppType(AppType.COORDINATOR_ACTION);
    durationMetBean.setUser("dummyuser");
    durationMetBean.setNotificationMsg("notification of duration met");
    durationMetBean.setExpectedStart(expectedStartDate);
    durationMet.setActualStart(actualStartDate);
    durationMetBean.setExpectedEnd(expectedEndDate);
    durationMet.setActualEnd(actualEndDate);
    durationMetBean.setExpectedDuration(expectedDuration);
    long actualDuration = actualEndDate.getTime() - actualStartDate.getTime();
    durationMet.setActualDuration(actualDuration);

    ConnectionContext jmsContext = getConnectionContext();

    Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer =
        jmsContext.createConsumer(session, slaListener.getTopic(durationMet));
    slaListener.onDurationMet(durationMet);
    TextMessage message = (TextMessage) consumer.receive(5000);
    SLAMessage durationMissMsg = (SLAMessage) JMSMessagingUtils.getEventMessage(message);
    // check msg header
    assertEquals(EventStatus.DURATION_MET, durationMissMsg.getEventStatus());
    assertEquals(SLAStatus.MET, durationMissMsg.getSLAStatus());
    assertEquals(AppType.COORDINATOR_ACTION, durationMissMsg.getAppType());
    assertEquals(MessageType.SLA, durationMissMsg.getMessageType());
    assertEquals("Test-SLA-Duration-Met", durationMissMsg.getAppName());
    assertEquals("dummyuser", durationMissMsg.getUser());
    // check msg body
    assertEquals("0000000-000000000000001-oozie-wrkf-C@1", durationMissMsg.getId());
    assertEquals("0000000-000000000000001-oozie-wrkf-C", durationMissMsg.getParentId());
    assertEquals(expectedStartDate, durationMissMsg.getExpectedStartTime());
    assertEquals(actualStartDate, durationMissMsg.getActualStartTime());
    assertEquals(expectedEndDate, durationMissMsg.getExpectedEndTime());
    assertEquals(actualEndDate, durationMissMsg.getActualEndTime());
    assertEquals(expectedDuration, durationMissMsg.getExpectedDuration());
    assertEquals(actualDuration, durationMissMsg.getActualDuration());
    assertEquals("notification of duration met", durationMissMsg.getNotificationMessage());
  }
 /** {@inheritDoc} */
 @Override
 public void tearDownConnection() {
   Connection c = ConnectionContext.get();
   if (c != null) {
     ConnectionContext.remove();
     try {
       c.setAutoCommit(true);
       c.close();
     } catch (SQLException e) {
       throw new RuntimeException(e);
     }
   }
 }
  /**
   * Send a message.
   *
   * @param eventID the Event ID of the message
   * @param transID The Trans ID for the message instance.
   * @param dataPayload The data payload of the message
   * @param filePayload The file payload of the message.
   * @param sendChannel The channel to send via.
   */
  void send(
      String eventID,
      String transID,
      String[] dataPayload,
      File[] filePayload,
      ChannelInfo sendChannel)
      throws Throwable {
    if (getProperties().getIsTest()) {
      Logger.log("[DelegateHelper.send] Testing only. No real sending initiated");
    } else {
      String fileID = null;
      if (filePayload != null) fileID = "connection_E" + eventID + "_T" + transID;

      // 031001NSL
      ChannelSendHeader header = new ChannelSendHeader(eventID, transID, null, fileID);
      header.setGridnodeHeaderInfo(
          ConnectionContext.getInstance().getMyNodeID(), sendChannel.getReferenceId(), null);

      // send via sendChannel
      ServiceLookupHelper.getChannelManager()
          .send(sendChannel, dataPayload, filePayload, header.getHeaderArray());
      /*031001NSL
      new String[] {eventID, transID, null, fileID,
      ConnectionContext.getInstance().getMyNodeID(), //sender
      sendChannel.getReferenceId()});  //recipient
      */
    }
  }
 /**
  * Broadcast that the GridMaster is online.
  *
  * @param gmNodeID GridNode ID of the GridMaster.
  */
 static void broadcastGmOnline(String gmNodeID) {
   broadcastConnectionState(
       ConnectionNotification.STATE_ONLINE,
       ConnectionNotification.TYPE_GM,
       gmNodeID,
       ConnectionContext.getInstance().getMyCommInfoString());
 }
 /*
  * (non-Javadoc)
  *
  * @see com.echomine.net.SocketConnector#establishingConnection(com.echomine.net.SocketHandler,
  *      com.echomine.net.ConnectionContext)
  */
 protected Socket establishingConnection(
     SocketHandler socketHandler, ConnectionContext connectionCtx)
     throws IOException, ConnectionException {
   if (socketHandler instanceof HandshakeableSocketHandler) {
     Socket socket = null;
     if (connectionCtx.isSSL()) {
       socket = createSSLSocket(connectionCtx);
     } else {
       socket = createSocket(connectionCtx.getHost(), connectionCtx.getPort());
     }
     ConnectionEvent event = new ConnectionEvent(connectionCtx, ConnectionEvent.CONNECTION_OPENED);
     ((HandshakeableSocketHandler) socketHandler).handshake(socket, connectionCtx);
     fireConnectionEstablished(event);
     return socket;
   }
   return super.establishingConnection(socketHandler, connectionCtx);
 }
Example #9
0
 void removeActivationListener() {
   try {
     ObjectName infoMBean = m_serverHelper.getServerInfoMBean(m_connectCntx);
     m_connectCntx.removeNotificationListener(infoMBean, this);
   } catch (Exception e) {
     /**/
   }
 }
Example #10
0
  public boolean testIsConnected() throws Exception {
    if (m_connectCntx == null) return false;

    synchronized (m_connectTestLock) {
      if (m_connectCntx == null) return false;

      if (m_connectCntx.jmxc == null) {
        initConnector();
      }

      m_jmxConnector.connect(getConnectionEnvironment());
      m_connectCntx.mbsc = m_jmxConnector.getMBeanServerConnection();
      m_connectCntx.jmxc = m_jmxConnector;
      m_connectException = null;

      return true;
    }
  }
Example #11
0
  void cancelActiveServices() {
    cancelConnectThread();
    cancelConnectionMonitor();

    if (m_started) {
      removeActivationListener();
    }
    if (m_connectCntx != null) {
      m_connectCntx.reset();
    }
  }
  /** {@inheritDoc} */
  @Override
  public Connection setupConnection() {
    Connection c = ConnectionContext.get();
    if (c != null) {
      return c;
    }

    try {
      c = dataSource.getConnection();
      ConnectionContext.set(c);

      TransactionContext txnContext = manager.getCurrent();
      if (txnContext != null) {
        txnContext.add(new JDBCTransactionalResource(c));
      }

      return c;
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
Example #13
0
    public void run() {
      try {
        InputStream in = read_socket.getInputStream();
        OutputStream out = write_socket.getOutputStream();
        byte[] buff = new byte[65536];
        while (ctx.open) {
          int sz = in.read(buff);
          if (sz < 0) {
            ctx.close();
            return;
          }

          ctx.log(buff, 0, sz, side);

          out.write(buff, 0, sz);
        }

      } catch (Throwable t) {
        ctx.close();
      }
    }
 @Override
 public Object invoke(MethodInvocation invocation) throws Throwable {
   Method method = invocation.getMethod();
   Transactional annotation = method.getAnnotation(Transactional.class);
   if (annotation == null || context.getConnection() != null) {
     return invocation.proceed();
   }
   Connection connection = context.getConnection(true);
   connection.setAutoCommit(false);
   try {
     Object rv = invocation.proceed();
     connection.commit();
     return rv;
   } catch (Exception e) {
     connection.rollback();
     throw e;
   } finally {
     connection.close();
     context.removeConnection();
   }
 }
  public void testOnSLAEndMissEvent() throws Exception {
    JMSSLAEventListener slaListener = new JMSSLAEventListener();
    slaListener.init(conf);
    SLACalcStatus endMiss = new SLACalcStatus(new SLARegistrationBean());
    SLARegistrationBean endMissBean = endMiss.getSLARegistrationBean();
    Date expectedEndDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
    Date actualEndDate = DateUtils.parseDateUTC("2013-01-01T01:00Z");
    endMiss.setId("0000000-000000000000001-oozie-wrkf-C@1");
    endMissBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
    endMissBean.setAppName("Test-SLA-End-Miss");
    endMiss.setEventStatus(EventStatus.END_MISS);
    endMiss.setSLAStatus(SLAStatus.IN_PROCESS);
    endMissBean.setAppType(AppType.COORDINATOR_ACTION);
    endMissBean.setUser("dummyuser");
    endMissBean.setNotificationMsg("notification of end miss");
    endMissBean.setExpectedEnd(expectedEndDate);
    endMiss.setActualEnd(actualEndDate);

    ConnectionContext jmsContext = getConnectionContext();

    Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = jmsContext.createConsumer(session, slaListener.getTopic(endMiss));
    slaListener.onEndMiss(endMiss);
    TextMessage message = (TextMessage) consumer.receive(5000);
    SLAMessage slaEndMissMsg = (SLAMessage) JMSMessagingUtils.getEventMessage(message);
    // check msg header
    assertEquals(EventStatus.END_MISS, slaEndMissMsg.getEventStatus());
    assertEquals(SLAStatus.IN_PROCESS, slaEndMissMsg.getSLAStatus());
    assertEquals(AppType.COORDINATOR_ACTION, slaEndMissMsg.getAppType());
    assertEquals(MessageType.SLA, slaEndMissMsg.getMessageType());
    assertEquals("Test-SLA-End-Miss", slaEndMissMsg.getAppName());
    assertEquals("dummyuser", slaEndMissMsg.getUser());
    // check msg body
    assertEquals("0000000-000000000000001-oozie-wrkf-C@1", slaEndMissMsg.getId());
    assertEquals("0000000-000000000000001-oozie-wrkf-C", slaEndMissMsg.getParentId());
    assertEquals(expectedEndDate, slaEndMissMsg.getExpectedEndTime());
    assertEquals(actualEndDate, slaEndMissMsg.getActualEndTime());
    assertEquals("notification of end miss", slaEndMissMsg.getNotificationMessage());
  }
  @Test
  public void testOnSLAStartMissEvent() throws Exception {
    JMSSLAEventListener slaListener = new JMSSLAEventListener();
    slaListener.init(conf);
    SLACalcStatus startMiss = new SLACalcStatus(new SLARegistrationBean());
    SLARegistrationBean startMissBean = startMiss.getSLARegistrationBean();
    Date startDate = DateUtils.parseDateUTC("2013-01-01T00:00Z");
    startMiss.setId("0000000-000000000000001-oozie-wrkf-C@1");
    startMissBean.setParentId("0000000-000000000000001-oozie-wrkf-C");
    startMissBean.setAppName("Test-SLA-Start-Miss");
    startMissBean.setUser("dummyuser");
    startMissBean.setExpectedStart(startDate);
    startMissBean.setNotificationMsg("notification of start miss");
    startMissBean.setJobData("random job data");
    startMiss.setEventStatus(EventStatus.START_MISS);
    startMiss.setSLAStatus(SLAStatus.NOT_STARTED);
    startMissBean.setAppType(AppType.COORDINATOR_ACTION);
    startMiss.setActualStart(DateUtils.parseDateUTC("2013-01-01T01:00Z"));

    ConnectionContext jmsContext = getConnectionContext();

    Session session = jmsContext.createSession(Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = jmsContext.createConsumer(session, slaListener.getTopic(startMiss));
    slaListener.onStartMiss(startMiss);
    TextMessage message = (TextMessage) consumer.receive(5000);
    SLAMessage slaStartMissMsg = (SLAMessage) JMSMessagingUtils.getEventMessage(message);
    // check msg header
    assertEquals(EventStatus.START_MISS, slaStartMissMsg.getEventStatus());
    assertEquals(SLAStatus.NOT_STARTED, slaStartMissMsg.getSLAStatus());
    assertEquals(AppType.COORDINATOR_ACTION, slaStartMissMsg.getAppType());
    assertEquals(MessageType.SLA, slaStartMissMsg.getMessageType());
    assertEquals("Test-SLA-Start-Miss", slaStartMissMsg.getAppName());
    assertEquals("dummyuser", slaStartMissMsg.getUser());
    // check msg body
    assertEquals("0000000-000000000000001-oozie-wrkf-C@1", slaStartMissMsg.getId());
    assertEquals("0000000-000000000000001-oozie-wrkf-C", slaStartMissMsg.getParentId());
    assertEquals(startDate, slaStartMissMsg.getExpectedStartTime());
    assertEquals("notification of start miss", slaStartMissMsg.getNotificationMessage());
  }
  @Test
  public void return_the_fallback_when_running_in_development_mode() throws Exception {
    ActorSystem system = ActorSystem.create("MySystem");

    URI fallback = new URI("/fallback");
    LocationCache cache = new LocationCache();
    ConnectionContext cc = ConnectionContext.create(system);
    Timeout timeout = new Timeout(Duration.create(5, "seconds"));
    assertEquals(
        Await.result(
            LocationService.getInstance().lookupWithContext("/whatever", fallback, cache, cc),
            timeout.duration()),
        Option.some(fallback));
  }
 public Member getMemberInfo(String id) {
   Member member = null;
   try {
     Connection conn = ConnectionContext.getConnection();
     String sql = "SELECT * FROM member WHERE id=?";
     PreparedStatement pstmt = conn.prepareStatement(sql);
     pstmt.setString(1, id); // 메소드 파라미터 id를 sql 첫 번째 ?에 세팅
     ResultSet rs = pstmt.executeQuery();
     if (rs.next()) {
       member = new Member();
       member.setId(rs.getString("id"));
       member.setPw(rs.getString("password"));
       member.setEmail(rs.getString("email"));
       member.setPhone(rs.getString("phone"));
       member.setRegDate(rs.getDate("reg_date"));
     }
     rs.close();
     pstmt.close();
     conn.close();
   } catch (Exception e) {
     e.printStackTrace();
   }
   return member;
 }
Example #19
0
 public void setJMXConnector(JMXConnector jmxc) throws IOException {
   m_connectException = null;
   m_connectCntx.jmxc = jmxc;
   m_connectCntx.mbsc = jmxc.getMBeanServerConnection();
   setConnected(true);
 }