2017-03-07 12 views
0

Wildfly 10/JBoss EAP 7にHibernate Searchインデックスを保存するためのJDBCバックアップInfinispanキャッシュを設定しようとしています。私のアプリケーションサーバー内のinfinispan.orgからInfinispan 8.1.x Wildfly/JBossモジュールをインストールしました。ファイル永続性を使用して基本的なinfinispan.xmlファイルを取得しましたが、永続化のためにJDBCを使用するように変更しようとしています。マイinfinispan.xmlファイルは次のようになります。Infinispan/Wildfly:名前空間に 'string-keyed-jdbc-store'要素のパーサーが見つかりません

<?xml version="1.0" encoding="UTF-8"?> 
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="urn:infinispan:config:8.1 http://www.infinispan.org/schemas/infinispan-config-8.1.xsd 
         urn:infinispan:config:jdbc:8.0 http://www.infinispan.org/schemas/infinispan-cachestore-jdbc-config-8.0.xsd" 
    xmlns="urn:infinispan:config:8.1" xmlns:jdbc="urn:infinispan:config:store:jdbc:8.0"> 

    <jgroups> 
     <stack-file name="default-jgroups-udp" path="default-configs/default-jgroups-udp.xml" /> 
    </jgroups> 


    <cache-container name="HibernateSearch" default-cache="default" 
     statistics="false" shutdown-hook="DONT_REGISTER"> 

     <transport stack="default-jgroups-udp" /> 

     <jmx duplicate-domains="true" /> 

     <!-- *************************************** --> 
     <!-- Cache to store Lucene's file metadata --> 
     <!-- *************************************** --> 
     <replicated-cache name="LuceneIndexesMetadata" mode="SYNC" 
      remote-timeout="25000"> 
      <locking striping="false" acquire-timeout="10000" 
       concurrency-level="500" write-skew="false" /> 
      <transaction mode="NONE" /> 
      <eviction max-entries="-1" strategy="NONE" /> 
      <expiration max-idle="-1" /> 
      <persistence passivation="false"> 
       <file-store preload="true" purge="true" 
        path="${jboss.server.temp.dir}/indexes" /> 
      </persistence> 
      <indexing index="NONE" /> 
      <state-transfer enabled="true" timeout="480000" 
       await-initial-transfer="true" /> 
     </replicated-cache> 

     <!-- **************************** --> 
     <!-- Cache to store Lucene data --> 
     <!-- **************************** --> 
     <replicated-cache name="LuceneIndexesData" mode="SYNC" 
      remote-timeout="25000"> 
      <locking striping="false" acquire-timeout="10000" 
       concurrency-level="500" write-skew="false" /> 
      <transaction mode="NONE" /> 
      <eviction max-entries="-1" strategy="NONE" /> 
      <expiration max-idle="-1" /> 
      <persistence passivation="false"> 
       <string-keyed-jdbc-store xmlns="urn:infinispan:config:store:jdbc:8.0" 
        fetch-state="false" read-only="false" purge="false"> 
        <data-source jndi-url="java:jboss/datasources/InfinispanCacheDS" /> 
        <string-keyed-table drop-on-exit="false" 
         create-on-start="true" prefix="ISPN_STRING_TABLE"> 
         <id-column name="ID_COLUMN" type="VARCHAR(255)" /> 
         <data-column name="DATA_COLUMN" type="BINARY" /> 
         <timestamp-column name="TIMESTAMP_COLUMN" type="BIGINT" /> 
        </string-keyed-table> 
       </string-keyed-jdbc-store> 
      </persistence> 
      <!-- <persistence passivation="false"> <file-store preload="true" purge="true" 
       path="${jboss.server.temp.dir}/indexes" /> </persistence> --> 
      <indexing index="NONE" /> 
      <state-transfer enabled="true" timeout="480000" 
       await-initial-transfer="true" /> 
     </replicated-cache> 

     <!-- ***************************** --> 
     <!-- Cache to store Lucene locks --> 
     <!-- ***************************** --> 
     <replicated-cache name="LuceneIndexesLocking" mode="SYNC" 
      remote-timeout="25000"> 
      <locking striping="false" acquire-timeout="10000" 
       concurrency-level="500" write-skew="false" /> 
      <transaction mode="NONE" /> 
      <eviction max-entries="-1" strategy="NONE" /> 
      <expiration max-idle="-1" /> 
      <persistence passivation="false"> 
       <file-store preload="true" purge="true" 
        path="${jboss.server.temp.dir}/indexes" /> 
      </persistence> 
      <indexing index="NONE" /> 
      <state-transfer enabled="true" timeout="480000" 
       await-initial-transfer="true" /> 
     </replicated-cache> 
    </cache-container> 

</infinispan> 

私はまた、次のjboss-展開するstructure.xmlファイル使用しています:私は自分のアプリケーションをデプロイするときしかし、私は次の例外を取得し

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"> 
    <deployment> 
     <dependencies> 

      <!-- Core Java/Java EE Dependencies --> 
      <module name="javax.transaction.api" export="true" services="import" /> 

      <!-- JPA/Hibernate Search Dependencies --> 
      <module name="javax.persistence.api" export="true" /> 

      <module name="org.hibernate.search.engine" export="true" 
       services="import" slot="5.5" /> 
      <module name="org.hibernate.search.orm" export="true" 
       services="import" slot="5.5" /> 

      <module name="org.infinispan.hibernate-search.directory-provider" 
       slot="for-hibernatesearch-5.5" export="true" services="import" /><!-- 
       <module name="org.apache.lucene" export="true" services="import" /> <module 
       name="org.infinispan.lucene-directory" slot="ispn-8.1" /> --> 

      <module name="org.infinispan.core" slot="ispn-8.1" services="import" 
       export="true" /> 
      <module name="org.infinispan.persistence.jdbc" slot="ispn-8.1" 
       services="import" export="true" /> 
      <module name="org.infinispan.persistence.remote" slot="ispn-8.1" 
       services="import" export="true" /> 

     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

を:

ISPN000327: Cannot find a parser for element 'string-keyed-jdbc-store' in namespace 'urn:infinispan:config:store:jdbc:8.0'. Check that your configuration is up-to date for this version of Infinispan. 

JDBCから "ファイル"への永続性を変更するとすべてうまく動作します。しかし、いったんJDBCパラメータを入力すると、解析エラーが発生します。私はこれを引き起こすために何か軽微で馬鹿なことをしていると確信していますが、私の人生にとっては何が分かりませんか?どんな助けでも大いに感謝されるでしょう!私は、バグレポートを開いて終了し、この問題を調査しようとした後

答えて

3

問題は、私はその拡張に依存するようにorg.infinispan.coreモジュールを期待していることですが、これではありません場合。私はこれまでwokraroundについて言及しましたが、モジュールXMLファイルを編集するだけでは十分ではありません。別のモジュールを分離しておく必要がある簡単な解決法がないためです。

問題が修正されました。修正プログラムが含まれるInfinispanバージョン9.0.0.Finalにアップグレードするか、Infinispan 8.2.7.Finalを入手してこの修正プログラムをバックポートします。

+0

恐ろしい!このような深さでこれを調べてくれてありがとう。私はあなたの回避策を明日試し、それがどのようになっているかを教えてくれます。 – Shadowman

+0

私は進歩しています!私は推奨されるように、キャッシュストアをmodule.xmlファイルに追加しました。これで、JDBCキャッシュストアに関連するログステートメントが表示され、データベースに作成されているテーブルが表示されます。 org.infinispan.persistence.keymappers.UnsupportedKeyTypeException::サポートされていない ISPN000136:エラーキーを書いて、コマンドを実行しPutKeyValueCommand [| 0 | | 1048576 pending_segments_1] さて、しかし、私はこのようなエラーを取得していますキータイプ: 'org.infinispan.lucene.ChunkCacheKey' on key:pending_segments_1 | 0 | 1048576 | 考えますか? – Shadowman

+0

同じ種類の問題の異なる細部のように見えます。 'org.infinispan.persistence.jdbc'モジュールのmodule.xmlにパッチを当てて、' org.infinispan.lucene-directory'モジュールからサービスをインポートできるようにする必要があります:これは変換するサービスを含んでいますキーを文字列に変換し、文字列キー方式のストレージ戦略を使用できるようにします。 – Sanne

関連する問題