Exemplo n.º 1
0
  /**
   * @param ctx Cache registry.
   * @param implicit Implicit flag.
   * @param implicitSingle Implicit with one key flag.
   * @param sys System flag.
   * @param plc IO policy.
   * @param concurrency Concurrency.
   * @param isolation Isolation.
   * @param timeout Timeout.
   * @param storeEnabled Store enabled flag.
   * @param txSize Transaction size.
   * @param subjId Subject ID.
   * @param taskNameHash Task name hash code.
   */
  public GridNearTxLocal(
      GridCacheSharedContext ctx,
      boolean implicit,
      boolean implicitSingle,
      boolean sys,
      byte plc,
      TransactionConcurrency concurrency,
      TransactionIsolation isolation,
      long timeout,
      boolean storeEnabled,
      int txSize,
      @Nullable UUID subjId,
      int taskNameHash) {
    super(
        ctx,
        ctx.versions().next(),
        implicit,
        implicitSingle,
        sys,
        false,
        plc,
        concurrency,
        isolation,
        timeout,
        false,
        storeEnabled,
        false,
        txSize,
        subjId,
        taskNameHash);

    mappings = implicitSingle ? new IgniteTxMappingsSingleImpl() : new IgniteTxMappingsImpl();

    initResult();
  }
  /**
   * @param node Node.
   * @param id ID.
   * @throws IgniteCheckedException If failed.
   */
  private void sendLocalPartitions(ClusterNode node, @Nullable GridDhtPartitionExchangeId id)
      throws IgniteCheckedException {
    GridDhtPartitionsSingleMessage m =
        new GridDhtPartitionsSingleMessage(
            id, cctx.kernalContext().clientNode(), cctx.versions().last());

    for (GridCacheContext cacheCtx : cctx.cacheContexts()) {
      if (!cacheCtx.isLocal())
        m.addLocalPartitionMap(cacheCtx.cacheId(), cacheCtx.topology().localPartitionMap());
    }

    if (log.isDebugEnabled())
      log.debug(
          "Sending local partitions [nodeId="
              + node.id()
              + ", exchId="
              + exchId
              + ", msg="
              + m
              + ']');

    cctx.io().send(node, m, SYSTEM_POOL);
  }