为 Apache Geode Client 设置超时的连接

埃德加

我在 .NET Framework 上有一个用户可以与之交互的 Windows 桌面应用程序。有一个“连接”按钮可以设置 Apache Geode 客户端到 Geode 服务器的连接。

当 Geode Server 关闭时(定位器 - 只有 1),桌面应用程序无限期挂起,需要强行关闭。

这就是我们如何连接到服务器并无限期地挂在最后一行:

                PoolFactory poolFactory = _cache.GetPoolManager()
                .CreateFactory()
                .SetSubscriptionEnabled(true)
                .AddLocator(_host, _port);

            return poolFactory.Create(_serviceName);

我想为这个方法添加一个超时时间来返回或抛出异常或任何东西。

或者,我已经将它包装在一个不同类型的计时器上以返回,但是当尝试再次运行上述代码(尝试再次连接应用程序)时,池仍在尝试连接。我试图像这样摧毁它:

              //destroy the pool
            var poolManager = _cache.GetPoolManager();
            if (poolManager != null)
            {
                var pool = poolManager.Find(_serviceName);
                if (pool != null && pool.Destroyed == false)
                    pool.Destroy();
            }

但随后pool.Destroy();挂起 indefinateley

我怎样才能有一种机制来尝试连接到 Geode 服务器,如果在 10 秒内没有连接,则返回,然后离开并能够使用相同的缓存再次尝试连接?

上面的注意是尝试重新使用相同的缓存,可能将缓存设置为 null 并重新尝试会起作用,但我正在寻找一种更正确的方法来做到这一点。

迪帕克·科帕德

取决于您使用的 .NET 本机客户端的版本。10.xconnect-timeout有一个属性应该可以工作。此外,您可以将连接代码包装在try{...}catch{}并处理Apache.Geode.Client.TimeoutException和/或的异常": No locators available"

示例:

    var _cache = new CacheFactory()
                        .Set("log-level", "config")
                        .Set("log-file", "C:\temp\test.log")
                        .Set("connect-timeout", "26000ms")
                        .Create();

    _cache.GetPoolManager()
        .CreateFactory()
        .SetSubscriptionEnabled(true)
        .AddLocator(hostname-or-ip", port-number)
        .Create("TestPool");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache HttpClient 4.3-设置连接空闲超时

Apache Geode服务器在负载测试期间偶尔会用尽连接

将连接超时设置为HttpComponentsMessageSender时java.lang.UnsupportedOperationException

无法在RequestConfig中将套接字超时设置为少于1000毫秒(Apache HTTP异步客户端4.1.2)

为Apache设置Windows身份验证

Apache Geode的基准测试

Docker-超时值连接为超时

如何在OkHttp 3中为特定服务设置不同的连接超时?

对Apache Geode的Spring支持(spring-data-geode)

如何使用paramiko为SFTP服务器连接设置超时?

Apache Geode调试未知pdx类型= 2140705

Apache Geode GFSH列出了所有对缓存的订阅

Apache Geode Web框架

如何在蒸气快速应用程序中为WebSocket连接设置超时?

如何使用Apache httpclient 4. *和PoolingHttpClientConnectionManager为每个请求设置超时?

缺少Apache Geode REST文档

在使用org.apache.axis.client.Call构建的Webservice使用者上设置超时并在Domino上运行

Apache连接超时或被拒绝

AngularJS:为 $evalAsync 设置超时

是一种将连接拒绝时间设置为 HTTPGet Apache 的方法吗?

在密钥集请求期间未找到 Apache Geode CacheServerException 区域

为单个端点设置超时?

如何将连接超时设置为 sshtunnel

Apache Geode 脉冲 WAR 文件

Pivotal Gemfire 相对于 Apache Geode 的优势

如何在 apache geode 中创建物化视图?

为apache geode中的多个键只调用一次数据源的方法

Apache Geode 的可用性发布路线图

Apache geode 多区域磁盘存储