使用Apache Ignite.Net 2.3.0
在测试服务器上部署应用程序 - Windows 2016
Ignite服务器无法启动.NET记录错误:
2018-01-31 14:37:32.7464|WARN|This operating system has been tested less rigorously: Windows Server 2016 10.0 amd64. Our team will appreciate the feedback if you experience any problems running ignite in this environment.
2018-01-31 14:37:33.2150|WARN|Checkpoints are disabled (to enable configure any GridCheckpointSpi implementation)
2018-01-31 14:37:33.2643|WARN|Collision resolution is disabled (all jobs will be activated upon arrival).
2018-01-31 14:37:34.0801|WARN|Marshaller is automatically set to o.a.i.i.binary.BinaryMarshaller (other nodes must have the same marshaller type).
2018-01-31 14:37:34.1706|ERROR|Exception during start processors, node will be stopped and close connections
2018-01-31 14:37:34.1706|ERROR|Got exception while starting (will rollback startup routine).
2018-01-31 14:37:34.1706|WARN|Attempt to stop starting grid. This operation cannot be guaranteed to be successful.
2018-01-31 14:37:34.5644|ERROR|Server start fail
2018-01-31 14:37:45.2964|ERROR|Message: Server node failed
内部JAVA记录错误:
Message: Failed to start processor: GridProcessorAdapter []
StackTrace: at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* target, Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte* errMsgChars, Int32 errMsgCharsLen, SByte* stackTraceChars, Int32 stackTraceCharsLen, Void* errData, Int32 errDataLen)
at Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.IgnitionStart(Void* ctx, SByte* cfgPath, SByte* gridName, Int32 factoryId, Int64 dataPtr)
at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.IgnitionStart(UnmanagedContext ctx, String cfgPath, String gridName, Boolean clientMode, Boolean userLogger)
at Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg)
at Core.IgniteServer.Run() in ...
Inner exception:
Message: class org.apache.ignite.IgniteException: Failed to start processor: GridProcessorAdapter []
at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:966)
at org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:53)
at org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:75)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start processor: GridProcessorAdapter []
at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1873)
at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:969)
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1909)
at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1652)
at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1080)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:578)
at org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:48)
... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Reading marshaller mapping from file -1726098484.classname1 failed.
at org.apache.ignite.internal.MarshallerMappingFileStore.restoreMappings(MarshallerMappingFileStore.java:176)
at org.apache.ignite.internal.MarshallerContextImpl.onMarshallerProcessorStarted(MarshallerContextImpl.java:511)
at org.apache.ignite.internal.processors.marshaller.GridMarshallerMappingProcessor.start(GridMarshallerMappingProcessor.java:114)
at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1870)
... 7 more
Caused by: java.io.FileNotFoundException: C:\Windows\TEMP\ignite\work\marshaller\-1726098484.classname1 (Access is denied)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at org.apache.ignite.internal.MarshallerMappingFileStore.restoreMappings(MarshallerMappingFileStore.java:168)
... 10 more
我怀疑服务器正在运行(或之前运行)另一个不同的Ignite服务,所以我添加了发现设置(如here所述):
DiscoverySpi = new TcpDiscoverySpi
{
LocalPort = _config.Value.Ignite.LocalPort,
LocalPortRange = _config.Value.Ignite.PortRange,
IpFinder = new TcpDiscoveryStaticIpFinder
{
Endpoints = new []{ $"127.0.0.1:{_config.Value.Ignite.LocalPort}..{_config.Value.Ignite.LocalPort + _config.Value.Ignite.PortRange}" }
}
},
CommunicationSpi = new TcpCommunicationSpi
{
LocalPort = _config.Value.Ignite.LocalPort - 400
}
来自应用配置的 LocalPort
和PortRange
值。尝试使用不同的端口设置,错误是相同的
检查此文件 - C:\ Windows \ TEMP \ ignite \ work \ marshaller-1726098484.classname1它存在,但包含来自不同项目的类和命名空间。
我是否需要为内部对象设置提供其他设置?或者更多配置?
答案 0 :(得分:5)
看起来Ignite工作目录与另一个节点发生冲突。
尝试将IgniteConfiguration.WorkDirectory
属性显式设置为某个已知为空并且该节点专用的目录。