When using following cache configuration: <local-cache name="local-web" batching="true"> <string-keyed-jdbc-store datasource="java:jboss/datasources/ExampleDS" preload="true" passivation="false" purge="false"> <string-keyed-table prefix="stringbased"> <id-column name="id" type="VARCHAR"/> <data-column name="datum" type="BINARY"/> <timestamp-column name="version" type="BIGINT"/> </string-keyed-table> </string-keyed-jdbc-store> </local-cache> and undeploying distributable application or stopping server with already deployed application, then is following exception thrown: 09:59:31,424 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (MSC service thread 1-5) ISPN000136: Execution error: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.jboss.as.clustering.registry.RegistryService$1' on key: org.jboss.as.clustering.registry.RegistryService$1@11e1584a at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:216) at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87) at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:139) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:186) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeededAndUpdateStats(CacheLoaderInterceptor.java:252) at org.infinispan.interceptors.CacheLoaderInterceptor.visitRemoveCommand(CacheLoaderInterceptor.java:143) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:275) at org.infinispan.interceptors.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:199) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitRemoveCommand(OptimisticLockingInterceptor.java:178) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:255) at org.infinispan.interceptors.TxInterceptor.visitRemoveCommand(TxInterceptor.java:201) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.CacheMgmtInterceptor.visitRemoveCommand(CacheMgmtInterceptor.java:137) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:86) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1186) at org.infinispan.CacheImpl.removeInternal(CacheImpl.java:314) at org.infinispan.CacheImpl.remove(CacheImpl.java:308) at org.infinispan.DecoratedCache.remove(DecoratedCache.java:325) at org.infinispan.AbstractDelegatingCache.remove(AbstractDelegatingCache.java:313) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:165) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:162) at org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34) at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:48) at org.jboss.as.clustering.registry.RegistryService.stop(RegistryService.java:170) at org.jboss.as.clustering.msc.AsynchronousService.stop(AsynchronousService.java:114) [jboss-as-clustering-common-7.2.1.Final-redhat-2-1.jar:7.2.1.Final-redhat-2-1] at org.jboss.msc.service.ServiceControllerImpl$StopTask.stopService(ServiceControllerImpl.java:1911) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1874) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21] 09:59:31,440 WARN [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000004: Failure during stop of service jboss.web.jvm-route.registry: org.infinispan.CacheException: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.jboss.as.clustering.registry.RegistryService$1' on key: org.jboss.as.clustering.registry.RegistryService$1@11e1584a at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:351) at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1186) at org.infinispan.CacheImpl.removeInternal(CacheImpl.java:314) at org.infinispan.CacheImpl.remove(CacheImpl.java:308) at org.infinispan.DecoratedCache.remove(DecoratedCache.java:325) at org.infinispan.AbstractDelegatingCache.remove(AbstractDelegatingCache.java:313) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:165) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:162) at org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34) at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:48) at org.jboss.as.clustering.registry.RegistryService.stop(RegistryService.java:170) at org.jboss.as.clustering.msc.AsynchronousService.stop(AsynchronousService.java:114) at org.jboss.msc.service.ServiceControllerImpl$StopTask.stopService(ServiceControllerImpl.java:1911) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1874) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_21] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_21] Caused by: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.jboss.as.clustering.registry.RegistryService$1' on key: org.jboss.as.clustering.registry.RegistryService$1@11e1584a at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:216) at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87) at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:139) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:186) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeededAndUpdateStats(CacheLoaderInterceptor.java:252) at org.infinispan.interceptors.CacheLoaderInterceptor.visitRemoveCommand(CacheLoaderInterceptor.java:143) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:275) at org.infinispan.interceptors.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:199) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitRemoveCommand(OptimisticLockingInterceptor.java:178) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:255) at org.infinispan.interceptors.TxInterceptor.visitRemoveCommand(TxInterceptor.java:201) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.CacheMgmtInterceptor.visitRemoveCommand(CacheMgmtInterceptor.java:137) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:86) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) ... 16 more
Another variant of this exception on server shutdown is: 17:42:51,621 WARN [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC00004: Failure during stop of service jboss.web.jvm-route.registry: org.infinispan.CacheException: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.infinispan.remoting.transport.jgroups.JGroupsAddress' on key: rhusar/web at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:351) at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1186) at org.infinispan.CacheImpl.removeInternal(CacheImpl.java:314) at org.infinispan.CacheImpl.remove(CacheImpl.java:308) at org.infinispan.DecoratedCache.remove(DecoratedCache.java:325) at org.infinispan.AbstractDelegatingCache.remove(AbstractDelegatingCache.java:313) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:165) at org.jboss.as.clustering.registry.RegistryService$3.invoke(RegistryService.java:162) at org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34) at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:48) at org.jboss.as.clustering.registry.RegistryService.stop(RegistryService.java:170) at org.jboss.as.clustering.msc.AsynchronousService.stop(AsynchronousService.java:114) at org.jboss.msc.service.ServiceControllerImpl$StopTask.stopService(ServiceControllerImpl.java:1911) [jboss-msc-1.0.4.GA.jar:1.0.4.GA] at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1874) [jboss-msc-1.0.4.GA.jar:1.0.4.GA] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] Caused by: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.infinispan.remoting.transport.jgroups.JGroupsAddress' on key: rhusar/web at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:216) at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87) at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:139) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:186) at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeededAndUpdateStats(CacheLoaderInterceptor.java:252) at org.infinispan.interceptors.CacheLoaderInterceptor.visitRemoveCommand(CacheLoaderInterceptor.java:143) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:275) at org.infinispan.interceptors.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:199) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitRemoveCommand(OptimisticLockingInterceptor.java:178) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:255) at org.infinispan.interceptors.TxInterceptor.visitRemoveCommand(TxInterceptor.java:201) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:211) at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:194) at org.infinispan.statetransfer.StateTransferInterceptor.visitRemoveCommand(StateTransferInterceptor.java:151) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.CacheMgmtInterceptor.visitRemoveCommand(CacheMgmtInterceptor.java:137) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:86) at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:67) at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:73) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) ... 16 more
You cannot use a string-keyed-jdbc-store to store session contents, since the keys are not necessarily strings.
binary-keyed-jdbc-store should be used instead, info from rhusar, thanks.