ignite服务器重新连接后如何恢复缓存

2024-03-28

如果有人能帮助我,我真的很感激。

我有一个用Java编写的ignite服务器,还有一个用C#编写的客户端,客户端可以连接到服务器,并且可以正确获取服务器的缓存。 服务器重新启动后,客户端会收到来自服务器的 EVT_CLIENT_NODE_RECONNECTED 事件。但缓存不能再使用了。

服务器代码:

CacheConfiguration cacheConfiguration = new CacheConfiguration();

    cacheConfiguration.setName("Sample");
    cacheConfiguration.setCacheMode(CacheMode.REPLICATED);
    cacheConfiguration.setAtomicityMode(CacheAtomicityMode.ATOMIC);
    cacheConfiguration.setRebalanceMode(CacheRebalanceMode.ASYNC);
    cacheConfiguration.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
    cacheConfiguration.setBackups(0);
    cacheConfiguration.setCopyOnRead(true);
    cacheConfiguration.setStoreKeepBinary(false);

    cacheConfiguration.setReadThrough(false);
    cacheConfiguration.setWriteThrough(true);
    cacheConfiguration.setWriteBehindEnabled(true);
    cacheConfiguration.setWriteBehindFlushFrequency(2000);
    cacheConfiguration.setWriteBehindFlushThreadCount(2);

    DriverManagerDataSource theDataSource = new DriverManagerDataSource();
    theDataSource.setDriverClassName("org.postgresql.Driver");
    theDataSource.setUrl("jdbc:postgresql://192.168.224.128:5432/sample");
    theDataSource.setUsername("postgres");
    theDataSource.setPassword("password");


    CacheJdbcPojoStoreFactory jdbcPojoStoreFactory = new CacheJdbcPojoStoreFactory<Long, SampleModel>()
            .setParallelLoadCacheMinimumThreshold(0)
            .setMaximumPoolSize(1)
            .setDataSource(theDataSource);

    cacheConfiguration.setCacheStoreFactory(jdbcPojoStoreFactory);


    Collection<JdbcType> jdbcTypes = new ArrayList<JdbcType>();

    JdbcType jdbcType = new JdbcType();
    jdbcType.setCacheName("Sample");
    jdbcType.setDatabaseSchema("public");
    jdbcType.setKeyType("java.lang.Long");

    Collection<JdbcTypeField> keys = new ArrayList<JdbcTypeField>();
    keys.add(new JdbcTypeField(Types.BIGINT, "id", long.class, "id"));
    jdbcType.setKeyFields(keys.toArray(new JdbcTypeField[keys.size()]));
    Collection<JdbcTypeField> vals = new ArrayList<JdbcTypeField>();

    jdbcType.setDatabaseTable("sample");
    jdbcType.setValueType("com.nmf.SampleModel");

    vals.add(new JdbcTypeField(Types.BIGINT, "id", long.class, "id"));
    vals.add(new JdbcTypeField(Types.VARCHAR, "name", String.class, "name"));

    jdbcType.setValueFields(vals.toArray(new JdbcTypeField[vals.size()]));

    jdbcTypes.add(jdbcType);

    ((CacheJdbcPojoStoreFactory)cacheConfiguration.getCacheStoreFactory()).setTypes(jdbcTypes.toArray(new JdbcType[jdbcTypes.size()]));


    IgniteConfiguration icfg = new IgniteConfiguration();
    icfg.setCacheConfiguration(cacheConfiguration);

    Ignite ignite = Ignition.start(icfg);

样品型号:

public class SampleModel implements Serializable {
private long id;
private String Name;

public long getId() {
    return id;
}

public void setId(long id) {
    id = id;
}

public String getName() {
    return Name;
}

public void setName(String name) {
    Name = name;
}

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof SampleModel)) return false;

    SampleModel that = (SampleModel) o;

    return id == that.id;
}

@Override
public int hashCode() {
    return (int) (id ^ (id >>> 32));
}

}

客户端代码:

ExecutorService executor = Executors.newSingleThreadExecutor(r -> new Thread(r, "worker"));


    CacheConfiguration cacheConfiguration = new CacheConfiguration();

    cacheConfiguration.setName("Sample");
    cacheConfiguration.setCacheMode(CacheMode.REPLICATED);
    cacheConfiguration.setAtomicityMode(CacheAtomicityMode.ATOMIC);
    cacheConfiguration.setRebalanceMode(CacheRebalanceMode.ASYNC);
    cacheConfiguration.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
    cacheConfiguration.setBackups(0);
    cacheConfiguration.setCopyOnRead(true);
    cacheConfiguration.setStoreKeepBinary(false);

    IgniteConfiguration icfg = new IgniteConfiguration();
    icfg.setCacheConfiguration(cacheConfiguration);

    icfg.setClientMode(true);

    final Ignite ignite = Ignition.start(icfg);

    ignite.events().localListen(new IgnitePredicate<Event>() {
        public boolean apply(Event event) {
            if (event.type() == EVT_CLIENT_NODE_RECONNECTED) {
                System.out.println("Reconnected");

                executor.submit(()-> {
                    IgniteCache<Long, SampleModel> cache = ignite.getOrCreateCache("Sample");

                    System.out.println("Got the cache");

                    SampleModel model = cache.get(1L);

                    System.out.println(model.getName());
                });
            }

            return true;
        }
    }, EVT_CLIENT_NODE_RECONNECTED);

    IgniteCache<Long, SampleModel> cache = ignite.getOrCreateCache("Sample");

    SampleModel model = cache.get(1L);

    System.out.println(model.getName());

客户端登录错误:

    SEVERE: Failed to reinitialize local partitions (preloading will be stopped): GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=2, minorTopVer=1], nodeId=dea5f59b, evt=DISCOVERY_CUSTOM_EVT]
class org.apache.ignite.IgniteCheckedException: Failed to start component: class org.apache.ignite.IgniteException: Failed to initialize cache store (data source is not provided).
    at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8726)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1486)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1931)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1833)
    at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:379)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:688)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:529)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1806)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
    at java.lang.Thread.run(Thread.java:745)
Caused by: class org.apache.ignite.IgniteException: Failed to initialize cache store (data source is not provided).
    at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.start(CacheAbstractJdbcStore.java:298)
    at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8722)
    ... 9 more

July 25, 2017 12:58:38 PM org.apache.ignite.logger.java.JavaLogger error
SEVERE: Failed to wait for completion of partition map exchange (preloading will not start): GridDhtPartitionsExchangeFuture [dummy=false, forcePreload=false, reassign=false, discoEvt=DiscoveryCustomEvent [customMsg=null, affTopVer=AffinityTopologyVersion [topVer=2, minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode [id=dea5f59b-bdda-47a1-b31d-1ecb08fc746f, addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.224.1, 192.168.6.15, 192.168.80.1, 2001:0:9d38:90d7:c83:fac:98d7:5fc1], sockAddrs=[/0:0:0:0:0:0:0:1:0, /127.0.0.1:0, Ares-W11/169.254.194.93:0, /2001:0:9d38:90d7:c83:fac:98d7:5fc1:0, /192.168.6.15:0, windows10.microdone.cn/192.168.224.1:0, /192.168.80.1:0], discPort=0, order=2, intOrder=0, lastExchangeTime=1500958697559, loc=true, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=true], topVer=2, nodeId8=dea5f59b, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1500958718133]], crd=TcpDiscoveryNode [id=247d2926-010d-429b-aef2-97a18fbb3b5d, addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.224.1, 192.168.6.15, 192.168.80.1, 2001:0:9d38:90d7:c83:fac:98d7:5fc1], sockAddrs=[/192.168.6.15:47500, /2001:0:9d38:90d7:c83:fac:98d7:5fc1:47500, windows10.microdone.cn/192.168.224.1:47500, /192.168.80.1:47500, Ares-W11/169.254.194.93:47500, /0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1500958718083, loc=false, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=false], exchId=GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=2, minorTopVer=1], nodeId=dea5f59b, evt=DISCOVERY_CUSTOM_EVT], added=true, initFut=GridFutureAdapter [ignoreInterrupts=false, state=DONE, res=false, hash=842035444], init=false, lastVer=null, partReleaseFut=null, affChangeMsg=null, skipPreload=true, clientOnlyExchange=false, initTs=1500958718133, centralizedAff=false, changeGlobalStateE=null, exchangeOnChangeGlobalState=false, forcedRebFut=null, evtLatch=0, remaining=[247d2926-010d-429b-aef2-97a18fbb3b5d], srvNodes=[TcpDiscoveryNode [id=247d2926-010d-429b-aef2-97a18fbb3b5d, addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.224.1, 192.168.6.15, 192.168.80.1, 2001:0:9d38:90d7:c83:fac:98d7:5fc1], sockAddrs=[/192.168.6.15:47500, /2001:0:9d38:90d7:c83:fac:98d7:5fc1:47500, windows10.microdone.cn/192.168.224.1:47500, /192.168.80.1:47500, Ares-W11/169.254.194.93:47500, /0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1500958718083, loc=false, ver=2.0.0#20170430-sha1:d4eef3c6, isClient=false]], super=GridFutureAdapter [ignoreInterrupts=false, state=DONE, res=class o.a.i.IgniteCheckedException: Failed to start component: class o.a.i.IgniteException: Failed to initialize cache store (data source is not provided)., hash=1281081640]]
class org.apache.ignite.IgniteCheckedException: Failed to start component: class org.apache.ignite.IgniteException: Failed to initialize cache store (data source is not provided).
    at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8726)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCache(GridCacheProcessor.java:1486)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1931)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:1833)
    at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:379)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:688)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:529)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:1806)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
    at java.lang.Thread.run(Thread.java:745)
Caused by: class org.apache.ignite.IgniteException: Failed to initialize cache store (data source is not provided).
    at org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore.start(CacheAbstractJdbcStore.java:298)
    at org.apache.ignite.internal.util.IgniteUtils.startLifecycleAware(IgniteUtils.java:8722)
    ... 9 more

只有服务器节点存储缓存(本地缓存除外),因此,当您重新启动服务器节点时,该缓存将被停止。这里的问题是客户端节点重新连接到集群,但没有作为新节点加入集群。这就是为什么没有再次创建缓存的原因。

我认为这是错误的行为,应该在客户端重新连接时重新创建缓存。 我创建了一个issue https://issues.apache.org/jira/browse/IGNITE-5789为了那个原因。

作为解决方法,您可以使用 Ignite.GetOrCreateCache("Sample") 方法而不是 Ignite.GetCache("Sample")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ignite服务器重新连接后如何恢复缓存 的相关文章

  • 如何在 Kubernetes IP Finder 的 Ignite XML 配置中设置主 Url

    使用 Ignite 2 4 和 k8s 1 9 的测试配置
  • 在 JDK 9 上使用 Ignite

    我在 JDK 9 上使用 Ignite 时遇到问题 我有以下最小测试用例 package no ovstetun ignite import org apache ignite spi discovery tcp TcpDiscoveryS
  • 将 Apache Cassandra 与 Apache Ignite 集成

    我正在尝试将 Apache Ignite 与 Apache Cassandra 3 11 2 集成 因为我想使用 Ignite 缓存现有 Cassandra 数据库中存在的数据 在浏览了在线资源之后 到目前为止我已经完成了以下工作 已下载阿
  • Spring Boot、JPA 和 Ignite

    原因 org springframework data mapping PropertyReferenceException 找不到类型为 Person 的属性保存 Entity Entity public class Person imp
  • Apache-Ignite 集成作为 Hibernate 二级缓存未启动?

    我正在尝试将 Apache Ignite 设置为我的项目中的第二级 Hibernate 缓存提供程序 但我遇到了一个奇怪的异常 配置如下 POM xml Added
  • 如何从两个或多个 IIS 应用程序使用 Apache Ignite

    我是 Apache Ignite 的新手 并尝试在 IIS 网站和 WCF 服务中使用 Ignite 我的测试用例涉及一台 PC 上的两个 IIS 托管的 WCF 测试服务 我在两个 IIS 应用程序中的任何一个中实例化 Ignite 然后
  • Apache Ignite 中的联接查询

    PARTITIONED模式下的节点之间是如何执行空间连接查询的 由于Ignite使用Rendezvous Affinity哈希在节点之间对数据 默认1024 进行分区 那么分区之间的join操作是如何执行的 假设我在缓存中有两个空间数据集
  • Apache Ignite 使用 Spring-Boot 加载两次?

    我正在使用 Spring Boot 1 2 7 RELEASE 和 Apache Ignite 1 4 0 进行原型设计 并注意到有些奇怪的东西 也许这只是一个日志配置 看起来 Apache Ignite 正在尝试用 Spring 启动两次
  • Apache Ignite 集群所需的端口

    这个问题可能是重复的 我正在构建 Ignite 集群 观察到节点之间的互通需要打开多个端口 到目前为止 我打开了47100和11211等端口 向 IT 部门提出每个新发现的端口的开放请求是很乏味的 需要 Ignite 使用的所有端口的列表
  • Ignite C++ 客户端用于 cassandra 集成

    我正在开发一个数据通信应用程序 我想通过 ignite c 与 cassandra 进行通信 当我尝试将数据放入 cassandra 时 它工作正常 但我无法从中获取数据 这是我的代码 test h namespace ignite nam
  • OData 异常 已超出热门查询的“0”限制

    当我尝试使用 OData Web Api 查询时 我正在使用版本 4 的 OData Web API top参数 它返回我以下异常消息 URI 中指定的查询无效 已超出热门查询的 0 限制 传入请求的值为 10 我使用 Apache Ign
  • Apache Ignite:如何列出所有表和所有缓存

    有没有办法列出特定缓存中存在的所有表并列出 Apache Ignite 服务器上存在的所有缓存 更新 你好 我正在运行以下代码来了解缓存名称并列出缓存中存在的所有表 该程序列出了服务器上存在的所有缓存名称 但是 表列表被打印为空白集合 同时
  • 在 BinaryObjects 的 Ignite 缓存上执行 SQL

    我正在从 Spark 数据帧创建 BinaryObject 的缓存 然后我想在该 ignite 缓存上执行 SQL 这是我的代码在哪里bank是包含三个字段 id name 和age 的数据框 val ic new IgniteContex
  • 在 React Native 中使用 mobx 进行状态存储时无法导航到不同的导航菜单

    我对 Mobx 有点陌生 一般来说 我的反应是原生的 我正在尝试使用 mobx 在导航堆栈中实现状态值更改 以便当单击登录按钮时 状态中的值会发生更改 并且导航值参数令牌会更新为 mobx 存储中的最新值 但这不起作用 我收到错误错误任何导
  • Apache Ignite.NET SQL 不搜索非英文字符

    使用 Apache Ignite NET 2 3 0 尝试使用 Linq 扩展 Apache Ignite Linq 进行搜索 配置 CacheConfiguration new new CacheConfiguration QueryEn
  • ignite服务器重新连接后如何恢复缓存

    如果有人能帮助我 我真的很感激 我有一个用Java编写的ignite服务器 还有一个用C 编写的客户端 客户端可以连接到服务器 并且可以正确获取服务器的缓存 服务器重新启动后 客户端会收到来自服务器的 EVT CLIENT NODE REC
  • Apache Ignite - (jvm-pause- detector-worker) JVM 暂停时间可能过长:

    使用 apache ignite 2 6 后 我在 JBoss 启动和停止时不断收到此警告 您能否帮我知道什么错误的配置会导致此警告 如果您需要更多详细信息 请告诉我 最有可能的是 JVM 正在经历长时间的垃圾收集暂停 可以配置详细的GC日
  • Apache Ignite - 执行器中的池大小

    我正在尝试使用基于集群的执行器服务 获取启用集群的执行器服务 ExecutorService exec ignite executorService 有没有办法设置执行程序服务池中的线程数 希望作业将以循环方式在集群中的每个节点中执行 Th
  • 当多个服务器 Pod 同时启动时,无法加入 Apache Ignite 拓扑

    我目前正在 Kubernetes 环境中设置无状态 Apache Ignite 集群 在灾难恢复测试期间 我有意同时重启了多个服务器Ignite节点 这些 Ignite 服务器节点大约在同一时间启动 自从Ignite服务器节点恢复后 整个I
  • Apache Ignite - 选择查询返回 0 条记录,但数据存在于缓存中

    我们使用 Apache Ignite 2 9 0 它是一个具有 Zookeeper 发现功能的 5 节点集群 我们通过从 Intellij 执行 DDL 语句在 Ignite 中创建表 然后我们可以通过从 Intellij 本身运行选择查询

随机推荐

  • Tensorflow:如何在语义分割过程中忽略特定标签?

    我正在使用张量流进行语义分割 在计算像素损失时 如何告诉张量流忽略特定标签 我读了在这篇文章中 https stackoverflow com questions 39091432 tensorflow softmax ignore neg
  • 具有多个 SSH 密钥对的 Ansible

    我是 Ansible 的新手 我能够对其进行测试并且其工作正常 符合我的测试要求 为了在管理节点和客户端节点之间建立连接 我使用已经创建的 ssh 密钥对 如何使用具有不同 SSH 密钥对的另一个节点 作为参考 我正在考虑 3 个具有不同密
  • Maven - 依赖于多模块聚合器项目

    我有一个多模块 Maven 项目 其结构如下 projectA parent module 1 module 2 我有另一个项目 我想将所有模块引入projectA parent作为运行时依赖项 它是一个 Spring 应用程序 并且每个模
  • 我的图书馆的变化使它变慢了很多。分析对我没有帮助。速度缓慢的原因可能是什么?

    我的问题 简述 我对我的库进行了更改 现在速度慢得多 但我无法弄清楚它在哪里花费了所有额外的时间 分析报告没有帮助 请帮我看看可能是什么原因 一些背景 我创建了一个 Redis 客户端库 名为Hedis http hackage haske
  • 什么是“异步固定句柄”?

    我正在尝试调查一个非常严重的软件崩溃 这可能与托管堆损坏有关 因为它发生在垃圾收集期间 将 WinDbg 与 SOS gchandles 命令一起使用 我得到类似的信息 0 000 gt gchandles GC Handle Statis
  • Magento - 获取产品集合的结果视图 HTML

    我从网络服务中获取了 magento id 列表 我将它们加载到数组中 product ids 所以我有这样的东西 Array 0 gt 1965 1 gt 3371 2 gt 1052 然后我可以将其制作成一个集合 collection
  • OnCollisionEnter() 在 Unity3D 中不起作用

    我有一个带有网格碰撞器的对象和一个带有球体碰撞器的预制件 我希望如果两者发生碰撞 预制件的实例就会被破坏 我在脚本中写了以下内容 private void OnCollisionEnter Collision c if c target D
  • 单线程应用程序是一种死技术吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • VB6的默认字体从哪里获取

    VB6从哪里得到的default字体来自 是系统字体吗 是由地区决定的吗 无论实际字体如何 它的大小总是相同吗 应用程序的字体在Font控件的属性 VB6默认有MS 无衬线字体 大小 8 这是 Windows 95 98 中的默认系统字体
  • 根据内容调整iframe高度

    我正在使用以下脚本自动调整 iframe 高度 function autoIframe frameId try frame document getElementById frameId innerDoc frame contentDocu
  • PHP 中有从数组中提取“列”的函数吗?

    我有一个数组的数组 具有以下结构 array array page gt page1 name gt pagename1 array page gt page2 name gt pagename2 array page gt page3 n
  • 如何在 Raphael 中使用 eve() ?

    有人可以给我一个拉斐尔的简单例子吗eve 我不太明白参数以及如何调用事件 我查了一下 但好像用过的人不多 事件功能的简单示例Rapha l http www raphaeljs com 我们定义将触发事件的函数 function bar v
  • javascript 数组的范围从 IE9 到 FireFox/Chrome 有所不同

    我已经缩小了我的基本问题的范围 从 IE9 到 FireFox 和 Chrome 数组的范围有所不同 在以下函数 仅摘录 中 我声明一个数组 然后通过调用 getJSON 来填充它 因为引用 HoldEm 的行出现在 ProcessArra
  • 查找此 XML 文档中的值的正确 XPath 查询是什么?

    假设我有这个 XML 文档
  • 在 Node.js 中休眠

    假设没有 本地 方法来实现这一点 我的解决方案是 sleep function time var stop new Date getTime while new Date getTime lt stop time return new Pr
  • OleDBConnection 连接字符串

    当我尝试这段代码时OleDBConnection open 不起作用 没有抛出任何错误 只需打开 Windows 窗体并说出任何内容我看到 messageBox try1 但程序没有显示 try2 我的连接字符串有什么问题请帮助我也尝试过
  • 如何在单个 SELECT 查询中设置多个 T-SQL 变量?

    我有3个变量 testid sampleid and clientid 我该如何设置 sampleid and clientid通过执行此查询一次 SELECT sample sampleid client clientid FROM db
  • 现在使用 async/await 安全吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 Javascript 中使用 async await 代替安全吗 现在生成器承诺 知道语法尚未制定并且 会随着 ES8 的发布而出现吗 我可
  • Gnuplot - 使用带有 png 终端的 replot

    我正在尝试在 Gnuplot 中使用带有 png 终端的 replot 如果我执行以下操作 我会在一张图表上绘制两个图 没有任何问题 plot sin x x replot sin x 现在 如果对 png 终端类型执行相同操作 则生成的
  • ignite服务器重新连接后如何恢复缓存

    如果有人能帮助我 我真的很感激 我有一个用Java编写的ignite服务器 还有一个用C 编写的客户端 客户端可以连接到服务器 并且可以正确获取服务器的缓存 服务器重新启动后 客户端会收到来自服务器的 EVT CLIENT NODE REC