How to share registered protobuf files in a JDG cluster?
Issue
- I register my protobuf files for a remote cache with
ProtoStreamMarshaller.getSerializationContext(...).registerProtoFile("my.proto")according to the Query Guide, do I need to register it for every node in a cluster? - After register protobuf files my JDG server will work as expected, but if one server in a cluster is restarted it will show error messages during start like followed
ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (stateTransferExecutor-thread-34) ISPN000136: Error executing command PutKeyValueCommand, writing keys [[B@1404ed57]: org.hibernate.search.bridge.BridgeException: Exception while calling bridge#set
class: org.infinispan.query.remote.impl.indexing.ProtobufValueWrapper
path:
at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper.buildBridgeException(ContextualExceptionBridgeHelper.java:101)
at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper$OneWayConversionContextImpl.set(ContextualExceptionBridgeHelper.java:130)
at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.buildDocumentFields(DocumentBuilderIndexedEntity.java:395)
at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.getDocument(DocumentBuilderIndexedEntity.java:365)
at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.createUpdateWork(DocumentBuilderIndexedEntity.java:304)
at org.hibernate.search.engine.spi.DocumentBuilderIndexedEntity.addWorkToQueue(DocumentBuilderIndexedEntity.java:246)
at org.hibernate.search.engine.impl.WorkPlan$PerEntityWork.enqueueLuceneWork(WorkPlan.java:506)
at org.hibernate.search.engine.impl.WorkPlan$PerClassWork.enqueueLuceneWork(WorkPlan.java:279)
at org.hibernate.search.engine.impl.WorkPlan.getPlannedLuceneWork(WorkPlan.java:165)
at org.hibernate.search.backend.impl.WorkQueue.prepareWorkPlan(WorkQueue.java:131)
at org.hibernate.search.backend.impl.BatchedQueueingProcessor.prepareWorks(BatchedQueueingProcessor.java:73)
at org.hibernate.search.backend.impl.TransactionalWorker.performWork(TransactionalWorker.java:102)
at org.infinispan.query.backend.QueryInterceptor.performSearchWorks(QueryInterceptor.java:249) [infinispan-query-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
...
Caused by: java.lang.IllegalArgumentException: Message descriptor not found : ..............
at org.infinispan.protostream.impl.SerializationContextImpl.getMessageDescriptor(SerializationContextImpl.java:172)
at org.infinispan.query.remote.impl.indexing.WrappedMessageTagHandler.onTag(WrappedMessageTagHandler.java:66) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.protostream.ProtobufParser.parseMessage(ProtobufParser.java:76)
at org.infinispan.protostream.ProtobufParser.parseInternal(ProtobufParser.java:58)
at org.infinispan.protostream.ProtobufParser.parse(ProtobufParser.java:45)
at org.infinispan.query.remote.impl.indexing.ProtobufValueWrapperFieldBridge.decodeAndIndex(ProtobufValueWrapperFieldBridge.java:58) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.infinispan.query.remote.impl.indexing.ProtobufValueWrapperFieldBridge.set(ProtobufValueWrapperFieldBridge.java:46) [infinispan-remote-query-server-6.4.0.Final-redhat-4.jar:6.4.0.Final-redhat-4]
at org.hibernate.search.bridge.util.impl.ContextualExceptionBridgeHelper$OneWayConversionContextImpl.set(ContextualExceptionBridgeHelper.java:127)
... 51 more
Environment
- Red Hat JBoss Data Grid (RHDG)
- 6
- 7
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.