2017-05-24 15 views
1

Ignite Jdbc接続を使用しようとしています。私の目標はJdbcを介してどのクライアントからでもキャッシュを呼び出せるようにすることです。Apache Ignite:検出データを非整列化できませんでした。

私はいくつかのシナリオが働いています。データが正しく読み込まれるようにしてください。キャッシュに対して「直接」SQLクエリを実行できます。

私は

ResultSet rs = conn.createStatement().executeQuery("select * from my_table");

で別のクライアントから呼び出すしようとすると、私はエラーを打つ:

class org.apache.ignite.IgniteCheckedException: Failed to find class with given class loader for unmarshalling (make sure same versions of all classes are available on all nodes or enable peer-class-loading) [clsLdr=URLClassLoader with NativeCopyLoader with RawResources(

がしようとしてからのIgnite JDBC接続を防止する方法はありますアンマーシャリングを行いますか?

私は、クライアントがIgniteクラスにできるだけ無関係であることを希望します。例えば;私はmariaDbをIgniteに呼び出すことをスワップアウトしたいと思います。クライアント側でできるだけコードを少し変更するだけです。

私は物事について間違った方法を考えています。 No, that will never work because ...の行に沿った答えはあまりにも歓迎以上です。

おかげ ブレント

答えて

1

あなたは、クライアントのlibフォルダにコピーLIBSをしたくない場合は、ピアクラスのロードをオンにすることができます。また

<bean class="org.apache.ignite.configuration.IgniteConfiguration"> 
    ... 
    <!-- Explicitly enable peer class loading. --> 
    <property name="peerClassLoadingEnabled" value="true"/> 
    ... 
</bean> 

、あなたの代わりにあなたの、BinaryObjectで動作することができますクラス。 Hereは、BinaryObjectsでsqlを使用する例です。バイナリ形式の詳細については、hereを参照してください。

関連する問題