Bug 991012
Summary: | Cannot use Sybase db as cache jdbc-store | ||
---|---|---|---|
Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Tomas Remes <tremes> |
Component: | Clustering | Assignee: | Paul Ferraro <paul.ferraro> |
Status: | CLOSED NOTABUG | QA Contact: | Jitka Kozana <jkudrnac> |
Severity: | low | Docs Contact: | Russell Dickenson <rdickens> |
Priority: | low | ||
Version: | 6.1.1 | CC: | jkudrnac, myarboro, rhusar, smumford, tremes |
Target Milestone: | --- | ||
Target Release: | EAP 6.3.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-02-10 17:32:15 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Tomas Remes
2013-08-01 11:59:47 UTC
Created attachment 781545 [details]
driver
This needs an upstream jira. Infinispan should consult the JDBC driver's DatabaseMetaData when determining things like quote characters, what kind of quoting is supported for which kind of statements, etc. Upstream issue created. Is the Sybase instance configured with the quoted_identifier option enabled? http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/CACIIHCI.htm Yes quoted_identifier is on. Try appending the following to the jdbc url of the testDS datasource: ?SQLINITSTRING=set quoted_identifier on Hmm It seems the table was successfully created, but I'm getting following weird exception: ERROR [org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore] (OOB-13,shared=udp) ISPN008012: Sql failure while inserting bucket: Bucket{entries={perf19/web=ImmortalCacheEntry{key=perf19/web, value=ImmortalCacheValue {value=perf19=null}}}, bucketId='1768992768'}: java.sql.SQLException: Implicit conversion from datatype 'IMAGE' to 'VARBINARY' is not allowed. Use the CONVERT function to run this query. at com.sybase.jdbc4.jdbc.SybConnection.getAllExceptions(SybConnection.java:2780) at com.sybase.jdbc4.jdbc.SybStatement.handleSQLE(SybStatement.java:2665) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:295) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:272) at com.sybase.jdbc4.jdbc.SybStatement.updateLoop(SybStatement.java:2515) at com.sybase.jdbc4.jdbc.SybStatement.executeUpdate(SybStatement.java:2499) at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeUpdate(SybPreparedStatement.java:297) at org.jboss.jca.adapters.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:115) at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:493) at org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore.insertBucket(JdbcBinaryCacheStore.java:214) at org.infinispan.loaders.bucket.BucketBasedCacheStore.storeLockSafe(BucketBasedCacheStore.java:94) at org.infinispan.loaders.bucket.BucketBasedCacheStore.storeLockSafe(BucketBasedCacheStore.java:49) at org.infinispan.loaders.LockSupportCacheStore.store(LockSupportCacheStore.java:213) at org.infinispan.loaders.AbstractCacheStore.applyModifications(AbstractCacheStore.java:126) at org.infinispan.loaders.AbstractCacheStore.commit(AbstractCacheStore.java:163) at org.infinispan.interceptors.CacheStoreInterceptor.commitCommand(CacheStoreInterceptor.java:161) at org.infinispan.interceptors.CacheStoreInterceptor.visitCommitCommand(CacheStoreInterceptor.java:143) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.EntryWrappingInterceptor.visitCommitCommand(EntryWrappingInterceptor.java:116) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.visitCommitCommand(AbstractTxLockingInterceptor.java:101) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.NotificationInterceptor.visitCommitCommand(NotificationInterceptor.java:65) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.TxInterceptor.visitCommitCommand(TxInterceptor.java:153) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitCommitCommand(TransactionSynchronizerInterceptor.java:73) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:216) at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:189) at org.infinispan.statetransfer.StateTransferInterceptor.visitCommitCommand(StateTransferInterceptor.java:121) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128) at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120) at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:92) at org.infinispan.commands.AbstractVisitor.visitCommitCommand(AbstractVisitor.java:136) at org.infinispan.commands.tx.CommitCommand.acceptVisitor(CommitCommand.java:60) at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343) at org.infinispan.transaction.TransactionCoordinator.commit(TransactionCoordinator.java:182) at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:81) at org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:285) at org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:334) at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:91) at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102) at org.infinispan.statetransfer.StateConsumerImpl.doApplyState(StateConsumerImpl.java:477) at org.infinispan.statetransfer.StateConsumerImpl.applyState(StateConsumerImpl.java:421) at org.infinispan.statetransfer.StateResponseCommand.perform(StateResponseCommand.java:85) at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:101) at org.infinispan.remoting.InboundInvocationHandlerImpl.handleWithWaitForBlocks(InboundInvocationHandlerImpl.java:122) at org.infinispan.remoting.InboundInvocationHandlerImpl.handle(InboundInvocationHandlerImpl.java:86) at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommandFromLocalCluster(CommandAwareRpcDispatcher.java:247) at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:220) at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:484) at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:391) at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:249) at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:600) at org.jgroups.blocks.mux.MuxUpHandler.up(MuxUpHandler.java:130) at org.jgroups.JChannel.up(JChannel.java:707) at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1025) at org.jgroups.protocols.RSVP.up(RSVP.java:172) at org.jgroups.protocols.FRAG2.up(FRAG2.java:181) at org.jgroups.protocols.FlowControl.up(FlowControl.java:418) at org.jgroups.protocols.FlowControl.up(FlowControl.java:400) at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896) at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:245) at org.jgroups.protocols.UNICAST2.handleDataReceived(UNICAST2.java:765) at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:420) at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:645) at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:147) at org.jgroups.protocols.FD.up(FD.java:253) at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288) at org.jgroups.protocols.MERGE3.up(MERGE3.java:290) at org.jgroups.protocols.Discovery.up(Discovery.java:359) at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2607) at org.jgroups.protocols.TP.passMessageUp(TP.java:1260) at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1822) at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1795) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_40] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_40] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_40] Have you tried using IMAGE as the datum column type? I've just tried that and it works! But shouldn't Infinispan handle this property setting - SQLINITSTRING=set quoted_identifier by itself? The IMAGE data type is the correct one to store binary data (i.e. the session data): http://dcx.sybase.com/index.html#1201/en/dbreference/image.html Lowering priority and keeping this open to track fix for ISPN-3486. Marking for exclusion from Release Notes documentation as not a bug |