我们目前正在Linux上的几个平台上测试Apache以及不同的Java发行版。使用IBM时出现了一个问题,因为启动和性能都很差(至少可以说)。系统之间的配置是相同的,但是当我们试图在x86平台上运行它时,在RedHat下,我们甚至无法让Geode正常启动。
第一次启动定位器,但是在GFSH接口中没有接收到up消息,只是一个连续的'.‘流。但是,通过查看日志,可以确定何时启动并输入CTRL+C,以便可以继续。
启动服务器会产生类似的问题,但服务器永远不会启动的次数比通常多。如果您最终成功地让它启动,经过多次尝试,那么一旦您开始使用工作负载来强调它,它很可能会崩溃。
来自日志的下列摘录显示不同类型的错误:
com.ibm.tools.attach.AttachNotSupportedException:目标不再适用于com.ibm.tools.attach.javaSE.VirtualMachineImpl.tryAttachTarget(VirtualMachineImpl.java:369) at com.ibm.tools.attach.javaSE.VirtualMachineImpl.attachTarget(VirtualMachineImpl.java:94) at com.ibm.tools.attach.javaSE.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:37) at ibm.tools.attach.J9AttachProvider.attachVirtualMachine(J9AttachProvider.java:55) at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:231) ...缓存服务器进程意外终止,退出状态为1。有关详细信息,请参阅/home/geode/ Server 1中的日志文件。
注意:不可能查看日志,因为从未创建日志!
线程"main“com.gemstone.gemfire.InternalGemFireError中的异常:没有期望堆栈顶部有一个java.lang.StringBuffer。在com.gemstone.gemfire.internal.Assert.throwError(Assert.java:91) at com.gemstone.gemfire.internal.Assert.assertTrue(Assert.java:115) at com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.endRegionAttributes(CacheXmlParser.java:1449) at com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.endElement(CacheXmlParser.java:3190) at com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser$DefaultHandlerDelegate.endElement(CacheXmlParser.java:3726)在org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown来源)。
快速查看了源代码之后,IBM Java似乎没有得到很好的支持,我认为,在定位器的成功启动中,这条消息支持这样的观点:
Java版本早于1.7.0_72。系统的最低要求未得到满足。意外行为可能会导致额外的错误。
除了上面的错误,当我们设法让它在其他硬件和操作系统上工作时,性能非常差,事务率(TPS)非常糟糕。
我的问题基本上是,是否有人在IBM中成功地使用了Geode,如果是的话,您做了什么才能使它工作呢?
请询问是否需要更多的信息,谢谢。
好吧,这里有更多的信息:
请随时询问更多信息,或者我可以尝试使用各种配置/参数更改进行更多的测试,谢谢。
发布于 2017-01-24 18:01:31
为了缩小这个问题的范围,如果是IBM或gfsh,请您尝试以编程方式启动缓存服务器吗?例如,以下内容将使用嵌入式定位器启动服务器:
CacheFactory cf = new CacheFactory();
cf.set("start-locator", "localhost[10334]");
Cache cache = cf.create();
cache.addCacheServer();从其他进程中,您可以指向上面的定位器。
CacheFactory cf = new CacheFactory();
cf.set("locators", "localhost[10334]");
Cache cache = cf.create();
cache.addCacheServer();发布于 2017-07-28 16:50:48
我遇到了同样的问题;我怀疑Geode (目前)与官方的Apache实现( IBM使用的)不兼容。
我已经提交了一个JIRA问题(https://issues.apache.org/jira/browse/GEODE-3306),其中包含了我的小调查结果。
现在给你找个解决办法:
cache.xml文件中的非必需(“可忽略”)空格(并牺牲可读性)。https://stackoverflow.com/questions/41718398
复制相似问题