Description of problem:
When creating a cache store that contains multiples properties defined in the store's 'Properties' configuration element, the creation of the store fails. It appears the data type sent by the management plug-in does not match that of the required type expected by the management API.
This issue prevents a user from creating or modifying a cache store that contains additional properties. Therefore they are unable to use the "managed" part of their subscription in these cases.
Version-Release number of selected component (if applicable):
JDG Plugin Pack Update-01 for JBoss ON 3.2.0
Infinispan Plugin 6.0.1.Final-redhat-2
Steps to Reproduce:
1. Install and start JON 3.2 system.
2. Install JDG Plugin Pack Update-01 for JBoss ON 3.2.0.
3. Install and start JDG server using clustered.xml configuration
4. Import JDG 6.2 server into inventory.
5. Configure JDG connection settings.
6. Create a new Infinispan Cache:
From JDG (127.0.0.1:9990) / infinispan / Cache Containers / clustered -> Create Child > Cache
* *New Resource Name*: `MyCacheA`
* *Kind of cache*: *distributed-cache*
* *Start*: *LAZY*
* *Batching*: *No*
* *Indexing*: *NONE*
* *Mode*: *SYNC*
7. Create a new Cache Store:
From JDG (127.0.0.1:9990) / infinispan / Cache Containers / clustered / Cache / MyCacheA -> Create Child > Store
* *New Resource Name*: `MyCacheStoreA`
* *Kind of store*: *Generic Store*
* *Class*: `org.infinispan.loaders.leveldb.LevelDBCacheStore`
* `cacheSize` = `5`
* `location` = `leveldb/F2/data`
* `expiredLocation` = `leveldb/F2/expired`
Cache creation fails and child history report contains the following error:
JBAS014688: Wrong type for properties. Expected [PROPERTY] but was OBJECT, rolled-back=true
Cache creation should be successful.
If you only add a single property name/value pair to the "properties" list the cache IS created successfully. The error only occurs when there are two or more properties.
This bug relates to bug 1060299 as they both appear to deal with incorrect configuration being sent to the management API by the JDG management plug-in.
No, this functionality was added in 6.2.
Created attachment 864079 [details]
I confirm this is real issue. I can experience this unwanted behaviour with environment set up mentioned by customer.
Added an attachment with underlying error from JON server.log which might or might not be connected to this issue.
An interesting thing is that error is thrown even in case of only ONE property is filled in 'Properties' list... a particular store is created successfully with this set-up.
Anyway, more properties in 'Properties' list cause problems.
CCing William to let him know about this issue as well.
This should be now ok -- in 6.2.1 CR1 we were able to successfully configure and create LevelDB cache store for a particular cache resource. There is a new possibility of cache child resource creation (directly LevelDB store).
Note that after a configuration, the JDG server needs to be restarted to make changes in standalone.xml file live and apply.
Note2 that JDG need to be patched properly to use LevelDB JNI implementation.
We were able to store entries into the store, restart JDG server and fetch entries from the store, so we verified that data were actually really stored there.
Good news for this work flow (requirement).
6.2.1 CR3 update.
Now we are able to configure generic cache store via JON even with 2 or more set up properties.
Note that property CLASS is now fully required for generic store. For creation of LevelDB related stores, customers should be guide to use different operation: create child -> levelDB store.
Note that this needs to have properly patched JDG. (Fusesource libs, leveldb)
Setting this as VERIFIED. Thanks for the fix!