[JBoss Cache: Core Edition] - JDBCCacheLoader with Oracle 10g problem
by niuxuetao_fiserv
Hi,
I am using JBossPojo Cache 3.0.0.GA and evicting cache to oracle 10g using JDBCCacheLoader shipped with JBoss. But when I run it with 1 thread, I always see such exception:
| Caused by: java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
|
| at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
| at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
| at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
| at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
| at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
| at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
| at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
| at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.insertNode(AdjListJDBCCacheLoader.java:501)
| ... 69 more
| [2009-06-26 18:23:55,046] [Detection1] WARN PojoCacheImpl - Could not end transaction for operation on: /RTDE/pattern-matching-threshold/663330655
| javax.transaction.RollbackException: outcome is false status: 1
| at org.jboss.cache.transaction.DummyTransaction.commit(DummyTransaction.java:98)
| at org.jboss.cache.transaction.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:99)
| at org.jboss.cache.pojo.impl.PojoCacheImpl.endTransaction(PojoCacheImpl.java:152)
| at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:116)
| at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:93)
| at org.jboss.cache.pojo.impl.PojoCacheImpl.attach(PojoCacheImpl.java:88)
| ...
|
If I run it with multiple threads, I get this exception, which looks like jboss is trying to recreate the same table for twice:
|
| Caused by: org.jboss.cache.pojo.PojoCacheException: init org.jboss.cache.config.Configuration@777dc9f6 failed
| at org.jboss.cache.pojo.impl.PojoCacheImpl.<init>(PojoCacheImpl.java:75)
| at org.jboss.cache.pojo.PojoCacheFactory.createCache(PojoCacheFactory.java:54)
| at com.fiserv.detection.eventcache.jboss.JBossPojoCacheStorage.<init>(JBossPojoCacheStorage.java:26)
| at com.fiserv.detection.eventcache.jboss.JBossPojoCacheStorageFactory.getCacheStorage(JBossPojoCacheStorageFactory.java:100)
| at com.fiserv.detection.eventcache.statemachine.CacheAccessorFactory.createAccessor(CacheAccessorFactory.java:38)
| at com.fiserv.detection.eventcache.api.EventCacheService.createCacheAccessor(EventCacheService.java:62)
| at com.fiserv.detection.patternmatching.PatternMatching.init(PatternMatching.java:100)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
| at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
| ... 41 more
| Caused by: org.jboss.cache.CacheException: java.lang.reflect.InvocationTargetException
| at org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:148)
| at org.jboss.cache.factories.ComponentRegistry$PrioritizedMethod.invoke(ComponentRegistry.java:970)
| at org.jboss.cache.factories.ComponentRegistry.internalStart(ComponentRegistry.java:746)
| at org.jboss.cache.factories.ComponentRegistry.start(ComponentRegistry.java:610)
| at org.jboss.cache.invocation.CacheInvocationDelegate.start(CacheInvocationDelegate.java:355)
| at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:121)
| at org.jboss.cache.pojo.impl.PojoCacheImpl.<init>(PojoCacheImpl.java:71)
| ... 54 more
| Caused by: java.lang.reflect.InvocationTargetException
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.cache.util.reflect.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:144)
| ... 60 more
| Caused by: org.jboss.cache.CacheException: Unable to start cache loaders
| at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:467)
| ... 65 more
| Caused by: java.sql.SQLException: ORA-00955: name is already used by an existing object
|
| at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
| at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
| at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
| at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
| at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
| at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
| at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
| at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
| at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:989)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.createDummyTableIfNeeded(AdjListJDBCCacheLoader.java:296)
| at org.jboss.cache.loader.AdjListJDBCCacheLoader.start(AdjListJDBCCacheLoader.java:269)
| at org.jboss.cache.loader.JDBCCacheLoader.start(JDBCCacheLoader.java:376)
| at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:461)
| ... 65 more
|
My jboss cache configuration file is as below:
| <?xml version="1.0" encoding="UTF-8"?>
| <jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xmlns="urn:jboss:jbosscache-core:config:3.0">
|
| <locking isolationLevel="READ_COMMITTED"
| lockParentForChildInsertRemove="false" lockAcquisitionTimeout="4294967"
| nodeLockingScheme="mvcc" writeSkewCheck="false" concurrencyLevel="500" />
|
| <transaction
| transactionManagerLookupClass="org.jboss.cache.transaction.GenericTransactionManagerLookup"
| syncRollbackPhase="false" syncCommitPhase="false" />
|
| <jmxStatistics enabled="false" />
|
| <startup regionsInactiveOnStartup="true" />
|
| <shutdown hookBehavior="DEFAULT" />
|
| <listeners asyncPoolSize="1" asyncQueueSize="100000" />
|
| <invocationBatching enabled="false" />
|
| <eviction wakeUpInterval="5000">
|
| <!-- Cache wide default -->
| <region name="/_default_" algorithmClass="org.jboss.cache.eviction.LRUAlgorithm">
|
| <property name="maxNodes">100000</property>
| <property name="timeToLiveSeconds">300</property>
| </region>
| </eviction>
|
| <loaders passivation="false" shared="true">
|
| <preload>
| <node fqn="/" />
| </preload>
|
|
| <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false"
| fetchPersistentState="false" ignoreModifications="false"
| purgeOnStartup="false">
|
| <properties>
|
| cache.jdbc.table.name=Cached_Events
| cache.jdbc.table.create=true
| cache.jdbc.table.drop=false
| cache.jdbc.table.primarykey=jbosscache_pk
| cache.jdbc.fqn.column=fqn
| cache.jdbc.fqn.type=varchar2(255)
| cache.jdbc.node.column=node
| cache.jdbc.node.type=blob
| cache.jdbc.parent.column=parent
|
| cache.jdbc.sql-concat=concat(1,2)
|
| cache.jdbc.connection.factory=org.jboss.cache.loader.C3p0ConnectionFactory
| c3p0.maxPoolSize=20
| c3p0.checkoutTimeout=5000
|
| location=tmp/jbosscache
| </properties>
|
| </loader>
|
|
| </loaders>
|
| </jbosscache>
|
|
I didn't manually create the table in Oracle at all. Has anyone encountered this before?
Regards,
Xuetao
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240409#4240409
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4240409
15 years
[JBoss jBPM] - jbpm-4.0.CR1 can be used already or is only for testing???
by jwerkmeister
Many of the examples only work when you run them with JUNIT and are excluded from the ANT file. So CR1 is only for testing for now???
| <jar destfile="${jbpm.home}/examples/target/examples.bar">
| <fileset dir="${jbpm.home}/examples/src">
| <include name="**/*.jpdl.xml" />
| <exclude name="org/jbpm/examples/task/swimlane/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/task/candidates/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/concurrency/graphbased/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/timer/repeat/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/script/text/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/decision/handler/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/mail/template/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/script/expression/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/task/assignee/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/mail/inline/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/mail/template/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/eventlistener/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/timer/event/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/task/assignmenthandler/process.jpdl.xml" />
| <exclude name="org/jbpm/examples/java/JavaInstantiateTest.java" />
| </fileset>
| </jar>
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240406#4240406
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4240406
15 years
[JBoss Messaging] - Re: Thread Pool questions
by andy.miller@jboss.com
"andy.miller(a)jboss.com" wrote : "gaohoward" wrote : Inside the AS container, a MDB's connection to JBM is handled by JCA layer, which has its own pooling of connections.
| |
| | JBM_clientMaxPool is not about connection pool, it's about thread pool size at the remoting client side.
| |
| | I don't see what do you refer to the TCP connection pool, can you clarify it? thanks
|
| Well, the JBM_clientMaxPool is a thread pool for TCP connections, so that is what I was referring to, and you confirmed it.
|
| I was under the impression that there was a thread pool for JBM underneath the JCA pool, and that the clientMaxPool setting in the documentation is how you configure that.
I meant maxPoolSize in the documentation.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4240400#4240400
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4240400
15 years