Package com.sun.sgs.service

Examples of com.sun.sgs.service.DataService


     * which case the channel's name binding is not removed) and is
     * called when the channel is closed (in which case the channel's
     * name binding is removed).
     */
    private void removeChannel(boolean removeName) {
  DataService dataService = getDataService();
  if (removeName) {
      getChannelsMap().removeOverride(name);
  }
  dataService.removeObject(this);
  if (listenerRef != null) {
      ChannelListener maybeWrappedListener = listenerRef.get();
      if (maybeWrappedListener instanceof ManagedSerializable) {
    dataService.removeObject(maybeWrappedListener);
      }
  }
  BindingKeyedMap<EventQueue> eventQueuesMap =
      getEventQueuesMap(coordNodeId);
  eventQueuesMap.removeOverride(channelRefId.toString());
  EventQueue eventQueue = eventQueueRef.get();
  dataService.removeObject(eventQueue);
  if (isReliable()) {
      SavedMessageReaper.scheduleNewTask(channelRefId, true);
  }
    }
View Full Code Here


      if (savedMessages.isEmpty()) {
    // Saved messages no longer exist, so "cancel" periodic task.
    return;
      } else {
    // Remove messages saved past their expiration time.
    DataService dataService = getDataService();
    TaskManager taskManager = AppContext.getTaskManager();
    Iterator<ChannelMessageInfo> iter =
        savedMessages.values().iterator();
    while (taskManager.shouldContinue() && iter.hasNext()) {
        ChannelMessageInfo messageInfo = iter.next();
        if (messageInfo.isExpired()) {
      if (logger.isLoggable(Level.FINEST)) {
          logger.log(
        Level.FINEST,
        "Removing saved message, channel:{0} " +
        "timestamp:{1}",
        HexDumper.toHexString(channelRefId),
        messageInfo.timestamp);
      }
      iter.remove();
      dataService.removeObject(messageInfo);
        } else {
      break;
        }
    }
    if (!savedMessages.isEmpty()) {
View Full Code Here

  /**
   * Constructs an event queue for the specified {@code channel}.
   */
  EventQueue(ChannelImpl channel) {
      DataService dataService = getDataService();
      channelRef = dataService.createReference(channel);
      queueRef = dataService.createReference(
    new ManagedQueue<ChannelEvent>());
      writeBufferAvailable = channel.getWriteBufferCapacity();
  }
View Full Code Here

         getLocalNodeId(),
         HexDumper.toHexString(channel.channelRefId));
      }
      ChannelServiceImpl channelService =
    ChannelServiceImpl.getInstance();
      DataService dataService = getDataService();

      /*
       * Process channel events
       */
      int eventsPerTxn = channelService.eventsPerTxn;
      ManagedQueue<ChannelEvent> eventQueue = getQueue();
     
      boolean completed = false;
      do {
    ChannelEvent event = eventQueue.peek();
    if (event == null) {
        //  No more events to process, so return.
        if (logger.isLoggable(Level.FINEST)) {
      logger.log(Level.FINEST,
           "coordinator:{0} channelId:{1} " +
           "no more events",
           getLocalNodeId(),
           HexDumper.toHexString(channel.channelRefId));
        }
        return;
    } else if (event.isCompleted()) {
        // Remove completed event and get next event to
        // process. Return if there are no more events.
        if (logger.isLoggable(Level.FINEST)) {
      logger.log(Level.FINEST,
           "coordinator:{0} channelId:{1} " +
           "removing completed event:{2}",
           getLocalNodeId(),
           HexDumper.toHexString(channel.channelRefId),
           event);
        }
        eventQueue.poll();
        event = eventQueue.peek();
        if (event == null) {
      if (logger.isLoggable(Level.FINEST)) {
          logger.log(Level.FINEST,
               "coordinator:{0} channelId:{1} " +
               "no more events",
               getLocalNodeId(),
               HexDumper.toHexString(
             channel.channelRefId));
      }
      return;
        }
    } else if (event.isProcessing()) {
        if (logger.isLoggable(Level.FINEST)) {
      logger.log(Level.FINEST,
           "coordinator:{0} channelId:{1} " +
           "event:{2} is already processing",
           getLocalNodeId(),
           HexDumper.toHexString(channel.channelRefId),
           event);
        }
        return;
    }

    int cost = event.getCost();
    if (cost > 0) {
        dataService.markForUpdate(this);
        writeBufferAvailable += cost;
       
        if (logger.isLoggable(Level.FINEST)) {
      logger.log(
          Level.FINEST,
View Full Code Here

    }

    /* -- Test constructor -- */

    @Test public void testConstructor() throws Exception {
  DataService dataService = null;
        WatchdogServiceImpl watchdog = null;
        try {
      dataService = createDataService(serviceProps);
            watchdog = new WatchdogServiceImpl(
    serviceProps, systemRegistry, txnProxy, dummyShutdownCtrl)
        } finally {
      if (dataService != null) dataService.shutdown();
            if (watchdog != null) watchdog.shutdown();
        }
    }
View Full Code Here

            public void run() throws Exception {
                checkHealth(watchdogService, Health.GREEN);
            }
        }, taskOwner);

  DataService dataService = createDataService(serviceProps);
  final WatchdogServiceImpl watchdog =
      new WatchdogServiceImpl(serviceProps, systemRegistry, txnProxy,
            dummyShutdownCtrl);
  try {
            txnScheduler.runTask(new TestAbstractKernelRunnable() {
                public void run() throws Exception {
                    checkHealth(watchdogService, Health.GREEN);
                }
            }, taskOwner);

      watchdogService.shutdown();
      // wait for watchdog's renew to fail...
      Thread.sleep(renewTime * 4);

            txnScheduler.runTask(new TestAbstractKernelRunnable() {
                public void run() throws Exception {
                    checkHealth(watchdog, Health.RED);
                }
            }, taskOwner);

  } finally {
      watchdog.shutdown();
      dataService.shutdown();
  }
    }
View Full Code Here

                          "to return true");
                }
            }
        }, taskOwner);

  DataService dataService = createDataService(serviceProps);
  final WatchdogServiceImpl watchdog =
      new WatchdogServiceImpl(serviceProps, systemRegistry, txnProxy,
            dummyShutdownCtrl);
  try {
            txnScheduler.runTask(new TestAbstractKernelRunnable() {
                public void run() throws Exception {
                    if (! watchdogService.isLocalNodeAlive()) {
                        fail("Expected watchdogService.isLocalNodeAlive() " +
                             "to return true");
                    }
                }
            }, taskOwner);

      watchdogService.shutdown();
      // wait for watchdog's renew to fail...
      Thread.sleep(renewTime * 4);

            txnScheduler.runTask(new TestAbstractKernelRunnable() {
                public void run() throws Exception {
                    if (watchdog.isLocalNodeAlive()) {
                        fail("Expected watchdogService.isLocalNodeAlive() " +
                             "to return false");
                    }
                }
            }, taskOwner);
     
  } finally {
      watchdog.shutdown();
      dataService.shutdown();
  }
    }
View Full Code Here

      fail("Expected watchdogService.isLocalNodeAlive" +
     "NonTransactional() to return true");
  }

  int port = watchdogService.getServer().getPort();
  DataService dataService = createDataService(serviceProps);
  WatchdogServiceImpl watchdog =
      new WatchdogServiceImpl(serviceProps, systemRegistry, txnProxy,
            dummyShutdownCtrl);
  try {
      if (! watchdog.isLocalNodeAliveNonTransactional()) {
    fail("Expected watchdog.isLocalNodeAliveNonTransactional() " +
         "to return true");
      }
      watchdogService.shutdown();
      // wait for watchdog's renew to fail...
      Thread.sleep(renewTime * 4);
      if (watchdog.isLocalNodeAliveNonTransactional()) {
    fail("Expected watchdog.isLocalNodeAliveNonTransactional() " +
         "to return false");
      }
     
  } finally {
      dataService.shutdown();
      watchdog.shutdown();
  }
    }
View Full Code Here

      new HashMap<WatchdogServiceImpl, WatchdogInfo>();
  try {
      for (int i = 0; i < 5; i++) {
    Properties props = SgsTestNode.getDefaultProperties(
        "TestWatchdogServiceImpl", serverNode, null);
    DataService dataService = createDataService(props);
    WatchdogServiceImpl watchdog =
        new WatchdogServiceImpl(props, systemRegistry, txnProxy,
              dummyShutdownCtrl);
    DummyNodeListener listener = new DummyNodeListener();
    watchdog.addNodeListener(listener);
    watchdogMap.put(
        watchdog, new WatchdogInfo(listener, dataService));
      }
 
      // shutdown watchdog server
      watchdogService.shutdown();

      Thread.sleep(renewTime * 4);

      for (WatchdogServiceImpl watchdog : watchdogMap.keySet()) {
    WatchdogInfo info = watchdogMap.get(watchdog);
    DummyNodeListener listener = info.listener;
    DataService dataService = info.dataService;
    Set<Node> nodes = listener.getFailedNodes();
    System.err.println(
        "failedNodes for " + dataService.getLocalNodeId() +
        ": " + nodes);
    if (nodes.size() != 6) {
        fail("Expected 6 failed nodes, got " + nodes.size());
    }
    for (Node node : nodes) {
View Full Code Here

    @Test(expected = IllegalStateException.class)
    public void testAddRecoveryListenerServiceShuttingDown()
  throws Exception
    {
  DataService dataService = createDataService(serviceProps);
  WatchdogServiceImpl watchdog = new WatchdogServiceImpl(
      serviceProps, systemRegistry, txnProxy, dummyShutdownCtrl);
  watchdog.shutdown();
  watchdog.addRecoveryListener(new DummyRecoveryListener());
  dataService.shutdown();
    }
View Full Code Here

TOP

Related Classes of com.sun.sgs.service.DataService

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.