@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); }
/** * 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); }
void removeActivationListener() { try { ObjectName infoMBean = m_serverHelper.getServerInfoMBean(m_connectCntx); m_connectCntx.removeNotificationListener(infoMBean, this); } catch (Exception e) { /**/ } }
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; } }
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); } }
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; }
public void setJMXConnector(JMXConnector jmxc) throws IOException { m_connectException = null; m_connectCntx.jmxc = jmxc; m_connectCntx.mbsc = jmxc.getMBeanServerConnection(); setConnected(true); }