Hi John,
Server starts up successfully. Later on as soon as we start client, it starts
giving mentioned exception in server and server exits from Distributed System
keeping java process running. With that client also continuously tries
connecting to server with connection refused error.
Server Annotations On SpringBootMain:
@SpringBootApplication
@CacheServerApplication(name =
"MyServer",port=40404,enableAutoReconnect=true,logLevel="config",locators="localhost[9001],localhost[9002]")
@EnableGemFireProperties(groups="TYPE_A")
@EnablePdx(serializerBeanName="reflectionBasedAutoSerializer")
Client Annotations On SpringBootMain:
@SpringBootApplication
@ClientCacheApplication(logLevel="config",name="DataGridPublisher",subscriptionEnabled=true)
@EnablePdx(serializerBeanName="reflectionBasedAutoSerializer")
@EnableAutoRegionLookup
@EnablePool(locators =
{@Locator(host="localhost",port=9001),@Locator(host="localhost",port=9002)},serverGroup="TYPE_A",name
= "TYPE_A")
@Bean(name="reflectionBasedAutoSerializer")
public PdxSerializer reflectionBasedAutoSerializer() {
String[] patterns = new String[]{"m.n.model.*"};
PdxSerializer reflectionBasedAutoSerializer = new
ReflectionBasedAutoSerializer(patterns);
return reflectionBasedAutoSerializer;
}
Exception Trace In Server Logs:
[ Below exception makes server unavailable but it keeps java process runnning]
[info 2016/11/18 14:39:29.547 IST <ClientMembership Event Invoker> tid=0x4e]
Exception occurred while processing
UpdateOperation(EntryEventImpl[op=CREATE;region=/_notificationRegion_XXXXX<v2>1026;key=org.apache.geode.management.internal.NotificationKey@dbc35eea;oldValue=null;newValue=javax.management.Notification[source=GemFire:service=CacheServer,port=40404,type=Member,member=MyRavenServer][type=gemfire.distributedsystem.cacheserver.client.joined][message=Client
joined with Id
XXXXX(DataGridPublisher:15936:loner):62879:66a5b276:DataGridPublisher];callbackArg=null;originRemote=false;originMember=XXXXX(MyRavenServer:10756)<v2>:1026;callbacksInvoked;id=EventID[threadID=2;sequenceID=0]])
org.apache.geode.ToDataException: PdxSerializer failed when calling toData on
class javax.management.Notification
at
org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:3154)
at
org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1561)
at
org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1458)
at
org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2176)
at
org.apache.geode.DataSerializer.writeObject(DataSerializer.java:3250)
at
org.apache.geode.internal.tcp.MsgStreamer.writeAsSerializedByteArray(MsgStreamer.java:958)
at
org.apache.geode.DataSerializer.writeObjectAsByteArray(DataSerializer.java:1517)
at
org.apache.geode.internal.cache.DistributedCacheOperation.writeValue(DistributedCacheOperation.java:124)
at
org.apache.geode.internal.cache.UpdateOperation$UpdateMessage.toData(UpdateOperation.java:450)
at
org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2389)
at
org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1420)
at
org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:243)
at
org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:389)
at
org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:241)
at
org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:618)
at
org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1685)
at
org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1861)
at
org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:88)
at
org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3402)
at
org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3443)
at
org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1806)
at
org.apache.geode.internal.cache.DistributedCacheOperation.distribute(DistributedCacheOperation.java:509)
at
org.apache.geode.internal.cache.AbstractUpdateOperation.distribute(AbstractUpdateOperation.java:71)
at
org.apache.geode.internal.cache.DistributedRegion.distributeUpdate(DistributedRegion.java:480)
at
org.apache.geode.internal.cache.DistributedRegion.basicPutPart3(DistributedRegion.java:461)
at
org.apache.geode.internal.cache.ProxyRegionMap.basicPut(ProxyRegionMap.java:239)
at
org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5955)
at
org.apache.geode.internal.cache.DistributedRegion.virtualPut(DistributedRegion.java:349)
at
org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:132)
at
org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5350)
at
org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1668)
at
org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1655)
at
org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:288)
at
org.apache.geode.management.internal.ManagementResourceRepo.putEntryInLocalNotificationRegion(ManagementResourceRepo.java:176)
at
org.apache.geode.management.internal.NotificationHub$NotificationHubListener.handleNotification(NotificationHub.java:199)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor$ListenerWrapper.handleNotification(DefaultMBeanServerInterceptor.java:1754)
at
javax.management.NotificationBroadcasterSupport.handleNotification(NotificationBroadcasterSupport.java:275)
at
javax.management.NotificationBroadcasterSupport$SendNotifJob.run(NotificationBroadcasterSupport.java:352)
at
javax.management.NotificationBroadcasterSupport$1.execute(NotificationBroadcasterSupport.java:337)
at
javax.management.NotificationBroadcasterSupport.sendNotification(NotificationBroadcasterSupport.java:248)
at
org.apache.geode.management.internal.beans.ManagementAdapter$CacheServerMembershipListenerAdapter.memberJoined(ManagementAdapter.java:1122)
at
org.apache.geode.internal.cache.tier.InternalClientMembership.doNotifyClientMembershipListener(InternalClientMembership.java:474)
at
org.apache.geode.internal.cache.tier.InternalClientMembership.access$000(InternalClientMembership.java:61)
at
org.apache.geode.internal.cache.tier.InternalClientMembership$2.run(InternalClientMembership.java:384)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.data.mapping.model.MappingException: while
serializing value
[GemFire:service=CacheServer,port=40404,type=Member,member=MyServer] of
property [source] for entity of type [class javax.management.Notification] to
PDX.
at
org.springframework.data.gemfire.mapping.MappingPdxSerializer$2.doWithPersistentProperty(MappingPdxSerializer.java:262)
at
org.springframework.data.gemfire.mapping.MappingPdxSerializer$2.doWithPersistentProperty(MappingPdxSerializer.java:237)
at
org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:312)
at
org.springframework.data.gemfire.mapping.MappingPdxSerializer.toData(MappingPdxSerializer.java:237)
at
org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:3099)
... 46 more
Caused by: org.apache.geode.pdx.PdxFieldAlreadyExistsException: The field
"source" already exists.
at
org.apache.geode.pdx.internal.PdxType.addField(PdxType.java:273)
at
org.apache.geode.pdx.internal.PdxWriterImpl.updateMetaData(PdxWriterImpl.java:862)
at
org.apache.geode.pdx.internal.PdxWriterImpl.updateMetaData(PdxWriterImpl.java:855)
at
org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:307)
at
org.apache.geode.pdx.internal.PdxWriterImpl.writeField(PdxWriterImpl.java:709)
at
org.apache.geode.pdx.internal.PdxWriterImpl.writeField(PdxWriterImpl.java:629)
at
org.springframework.data.gemfire.mapping.MappingPdxSerializer$2.doWithPersistentProperty(MappingPdxSerializer.java:258)
This email is confidential and subject to important disclaimers and conditions
including on offers for the purchase or sale of securities, accuracy and
completeness of information, viruses, confidentiality, legal privilege, and
legal entity disclaimers, available at
http://www.jpmorgan.com/pages/disclosures/email