[英]Exception when Ignite in Client mode is stopped : Failed to deserialize object with given class loader
[英]Apache Ignite throws Failed to deserialize object with given class loader on startup ( Client - Server )
我正在嘗試使用帶有 ignite 的自定義事務管理器,但是它會導致無法在啟動時使用給定的 class 加載程序反序列化 object。 事務管理器工廠實現為
public class TransactionManagerFactory implements Factory<TransactionManager> {
private static final long serialVersionUID = 1L;
private TransactionManager txMgr;
public TransactionManagerFactory(TransactionManager txMgr) {
this.txMgr=txMgr;
}
@Override
public TransactionManager create() {
return this.txMgr;
}
}
工廠附加到客戶端配置如下:
TransactionConfiguration txConfiguration=new TransactionConfiguration();
txConfiguration.setDeadlockTimeout(acquireTimeout);
txConfiguration.setDefaultTxIsolation(TransactionIsolation.READ_COMMITTED);
txConfiguration.setDefaultTxConcurrency(TransactionConcurrency.PESSIMISTIC);
txConfiguration.setTxManagerFactory(new TransactionManagerFactory(txMgr));
this.clientConfig.setTransactionConfiguration(txConfiguration);
錯誤表示傳遞給工廠的事務管理器本身不可序列化: 原因:java.io.NotSerializableException: org.infinispan.transaction.tm.EmbeddedBaseTransactionManager
然而,事務管理器本身不應該是可序列化的。 我們如何通過現有的事務管理器來點燃客戶端?
BR Yulian Oifa
您的事務管理器工廠保留事務管理器實例,而不是在遠程節點上的create()
方法中創建它。 這就是它應該如何工作的方式。
可序列化 object 的所有非瞬態字段也必須是可序列化的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.