Issue Number1. I am able to see the tables. But records are missing from of the tables. The issue "ORA-00054: resource busy and acquire with NOWAIT" is not happening when I am using tomcat 5.5
Regarding the Issue Number 2: The code excerpt is as follows //The code is converting the image stream to bytes and trying to store in to the database. public void uplodadReportImage(String name, InputStream is) { removeReportImage(name); byte[] bytes; try { bytes = InputStreamHelper.toByteArray(is); } catch (IOException e) { throw new DatabaseException("Could not upload report image " + name); } if (bytes != null) { String query = "INSERT INTO " + TableOfContentsImpl.instance().getReportImageTableName() + " (name, contents) " + "VALUES (?, ?)"; SqlUpdate su = new SqlUpdate(dataSource, query); su.declareParameter(new SqlParameter("name", Types.VARCHAR)); su.declareParameter(new SqlParameter("contents", Types.BLOB)); su.compile(); Object[] parameterValues = new Object[2]; parameterValues[0] = name; parameterValues[1] = new SqlLobValue(bytes, lobHandler); su.update(parameterValues); } else { throw new DatabaseException("Could not upload report image " + name); } } Ivan-65 wrote: > > java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT > specified > is usually caused by while one thread has added a lock on the table ( such > as a sql like "select .. for update" or "alter table ..." are called), > and > another thread wants to do update action on the same table lines. And > oracle > could add a no wait option, which means if the sql fails to add the lock > to > the target, it does not wait. > > 2009/3/14 David Jencks <david_jen...@yahoo.com> > >> I'm not an oracle expert... >> On Mar 13, 2009, at 3:30 AM, Hearty wrote: >> >> >>> The code is responsible for creating the tables. >>> >> >> Is that code succeeding now? Can you see the tables from something other >> than your app? >> >>> >>> Other things I need to bring to your notice is regarding the following >>> issues >>> >>> Issue 1 >>> 18:20:31,046 WARN [GeronimoConnectionEventListener] >>> connectionErrorOccurred >>> called with null >>> java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT >>> specified >>> >>> I have never faced such an issue when I deployed with apache tomcat >>> >> >> I'd guess some transaction is being left open or you are having a >> concurrency/locking problem. It this is not the result of an error maybe >> turning off NOWAIT would help? >> >>> >>> >>> Issue 2 >>> >> >> I thought there was a way to get the underlying "native" connection out >> of >> the tranql connection handle but I'm not seeing it right now. Do you >> know >> what the code is trying to do that is causing this error? >> >> thanks >> david jencks >> >> >>> >>> Mar 12, 2009 6:20:33 PM >>> com.telelogic.focalpoint.bus.report.ReportManagerImpl >>> setDefaultReportImage >>> SEVERE: Error when uploading default report image >>> org.springframework.dao.InvalidDataAccessApiUsageException: >>> OracleLobCreator >>> needs to work on [oracl >>> e.jdbc.OracleConnection], not on >>> [org.tranql.connector.jdbc.ConnectionHandle]: specify a correspondi >>> ng NativeJdbcExtractor; nested exception is >>> java.lang.ClassCastException: >>> org.tranql.connector.jdbc. >>> ConnectionHandle >>> Caused by: java.lang.ClassCastException: >>> org.tranql.connector.jdbc.ConnectionHandle >>> at oracle.sql.BLOB.createTemporary(BLOB.java:531) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>> at java.lang.reflect.Method.invoke(Unknown Source) >>> at >>> >>> org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.prepareLob(OracleL >>> obHandler.java:393) >>> at >>> >>> org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.createLob(OracleLo >>> bHandler.java:340) >>> at >>> >>> org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.setBlobAsBytes(Ora >>> cleLobHandler.java:220) >>> at >>> >>> org.springframework.jdbc.core.support.SqlLobValue.setTypeValue(SqlLobValue.java:175) >>> at >>> >>> org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUti >>> ls.java:128) >>> at >>> >>> org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUti >>> ls.java:76) >>> at >>> >>> org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImp >>> l.setValues(PreparedStatementCreatorFactory.java:271) >>> at >>> >>> org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImp >>> l.createPreparedStatement(PreparedStatementCreatorFactory.java:247) >>> at >>> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:524) >>> at >>> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:736) >>> at >>> org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:759) >>> at >>> org.springframework.jdbc.object.SqlUpdate.update(SqlUpdate.java:163) >>> at >>> >>> com.telelogic.focalpoint.dao.jdbc.ReportDaoJdbc.uplodadReportImage(ReportDaoJdbc.java:109 >>> ) >>> at >>> >>> com.telelogic.focalpoint.bus.report.ReportManagerImpl.uploadReportImage(ReportManagerImpl >>> .java:274) >>> at >>> >>> com.telelogic.focalpoint.bus.report.ReportManagerImpl.setDefaultReportImage(ReportManager >>> Impl.java:301) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>> at java.lang.reflect.Method.invoke(Unknown Source) >>> at >>> >>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281 >>> ) >>> at >>> >>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMe >>> thodInvocation.java:187) >>> at >>> >>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvo >>> cation.java:154) >>> at >>> >>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInte >>> rceptor.java:107) >>> at >>> >>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvo >>> cation.java:176) >>> at >>> >>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210) >>> at $Proxy60.setDefaultReportImage(Unknown Source) >>> at >>> com.telelogic.focalpoint.dom.server.ServerImpl.init(ServerImpl.java:165) >>> at >>> >>> com.telelogic.focalpoint.dom.server.ServerImpl.afterPropertiesSet(ServerImpl.java:112) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMe >>> thods(AbstractAutowireCapableBeanFactory.java:1118) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBe >>> an(AbstractAutowireCapableBeanFactory.java:1085) >>> at >>> >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(A >>> bstractAutowireCapableBeanFactory.java:429) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFac >>> tory.java:250) >>> at >>> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(Defau >>> ltSingletonBeanRegistry.java:141) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory >>> .java:247) >>> at >>> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory >>> .java:161) >>> at >>> >>> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingle >>> tons(DefaultListableBeanFactory.java:273) >>> at >>> >>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicatio >>> nContext.java:346) >>> at >>> >>> org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh( >>> AbstractRefreshableWebApplicationContext.java:156) >>> at >>> >>> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.j >>> ava:246) >>> at >>> >>> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.jav >>> a:184) >>> at >>> >>> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderLis >>> tener.java:49) >>> at >>> >>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3839) >>> at >>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4332) >>> at >>> >>> org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.jav >>> a:63) >>> at >>> >>> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStand >>> ardContext.java:398) >>> at >>> >>> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve >>> .java:47) >>> at >>> >>> org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:251 >>> ) >>> at >>> >>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) >>> at >>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) >>> at >>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) >>> at >>> >>> org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:364) >>> at >>> >>> org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:512) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState. >>> java:268) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:1 >>> 11) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120) >>> at >>> >>> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMon >>> itor.java:176) >>> at >>> >>> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.j >>> ava:44) >>> at >>> >>> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunnin >>> gEvent(BasicLifecycleMonitor.java:254) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState. >>> java:294) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.ja >>> va:124) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555) >>> at >>> >>> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379) >>> at >>> >>> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(Configuratio >>> nUtil.java:456) >>> at >>> >>> org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationMan >>> ager.java:188) >>> at >>> >>> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleCon >>> figurationManager.java:562) >>> at >>> >>> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleCon >>> figurationManager.java:543) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) >>> at java.lang.reflect.Method.invoke(Unknown Source) >>> at >>> >>> org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker. >>> java:34) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124) >>> at >>> >>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832) >>> at >>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) >>> at >>> >>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) >>> at >>> >>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor. >>> java:96) >>> at >>> >>> org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$b90e4867 >>> .startConfiguration(<generated>) >>> at >>> >>> org.apache.geronimo.deployment.plugin.local.RedeployCommand.redeploySameConfiguration(Red >>> eployCommand.java:229) >>> at >>> >>> org.apache.geronimo.deployment.plugin.local.RedeployCommand.run(RedeployCommand.java:101) >>> >>> at java.lang.Thread.run(Unknown Source) >>> >>> >>> >>> djencks wrote: >>> >>>> >>>> This looks ok to me. I think maybe we didn't ship the tranql oracle >>>> wrappers with geronimo until a later geronimo release: I think they >>>> are in 2.1.3. >>>> >>>> The values in your geronimo plan override the defaults in ra.xml, but >>>> don't change the contents of ra.xml. >>>> >>>> If you are still having problems with this you might try changing to >>>> <no-transaction/> and see what happens. Obviously you won't want to >>>> use this in production but if it works it may help figure out what is >>>> wrong. >>>> >>>> Does your code start by creating tables and the problem you are seeing >>>> is that when you try to use them they have not been created? Or are >>>> the tables created by some other process like running a script on the >>>> db by hand? >>>> >>>> thanks >>>> david jencks >>>> >>>> On Mar 13, 2009, at 12:09 AM, Hearty wrote: >>>> >>>> >>>>> I am not using any oracle specific wrapper for the db pool. >>>>> I have used admin console for configuring the db pool. Since admin >>>>> console >>>>> does not provide a way >>>>> to set the property for autocommit, I have modified ra.xml manually. >>>>> >>>>> I have tried one more option by deploying the dbpool using deploy >>>>> command >>>>> deploy >>>>> %GERONIMO_HOME%\repository\org\tranql\tranql-connector-ra\1.4\tranql- >>>>> connector-ra-1.4.rar >>>>> ..\fpconfig\oracle10g-deployment-plan.xml >>>>> >>>>> oracle10g-deployment-plan is as follows >>>>> >>>>> >>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>> <connector >>>>> xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"> >>>>> <dep:environment >>>>> xmlns:dep=" >>>>> http://geronimo.apache.org/xml/ns/deployment-1.2"> >>>>> <dep:moduleId> >>>>> <dep:groupId>console.dbpool</dep:groupId> >>>>> <dep:artifactId>fpdbpool</dep:artifactId> >>>>> <dep:version>1.0</dep:version> >>>>> <dep:type>rar</dep:type> >>>>> </dep:moduleId> >>>>> <dep:dependencies> >>>>> <dep:dependency> >>>>> >>>>> <dep:groupId>com.telelogic.focalpoint.lib</dep:groupId> >>>>> >>>>> <dep:artifactId>ojdbc14</dep:artifactId> >>>>> <dep:version>10.2.0.1.0</dep:version> >>>>> <dep:type>jar</dep:type> >>>>> </dep:dependency> >>>>> </dep:dependencies> >>>>> </dep:environment> >>>>> <resourceadapter> >>>>> <outbound-resourceadapter> >>>>> <connection-definition> >>>>> <connectionfactory-interface> >>>>> javax.sql.DataSource >>>>> </connectionfactory-interface> >>>>> <connectiondefinition-instance> >>>>> <name>fpdbpool</name> >>>>> <config-property-setting >>>>> name="Password"> >>>>> focalpoint >>>>> </config-property-setting> >>>>> <config-property-setting >>>>> name="Driver"> >>>>> >>>>> oracle.jdbc.driver.OracleDriver >>>>> </config-property-setting> >>>>> <config-property-setting >>>>> name="UserName"> >>>>> mobile >>>>> </config-property-setting> >>>>> <config-property-setting >>>>> name="ConnectionURL"> >>>>> >>>>> jdbc:oracle:thin:@192.168.133.96:1521:orcl >>>>> </config-property-setting> >>>>> <config-property-setting >>>>> name="CommitBeforeAutocommit">true</config-property-setting> >>>>> >>>>> <connectionmanager> >>>>> <local-transaction /> >>>>> <single-pool> >>>>> >>>>> <max-size>10</max-size> >>>>> >>>>> <min-size>10</min-size> >>>>> >>>>> <blocking-timeout-milliseconds> >>>>> 60000 >>>>> >>>>> </blocking-timeout-milliseconds> >>>>> >>>>> <idle-timeout-minutes> >>>>> 10 >>>>> >>>>> </idle-timeout-minutes> >>>>> <match-one /> >>>>> </single-pool> >>>>> </connectionmanager> >>>>> </connectiondefinition-instance> >>>>> </connection-definition> >>>>> </outbound-resourceadapter> >>>>> </resourceadapter> >>>>> </connector> >>>>> >>>>> >>>>> But I've observed even I've specified "CommitBeforeAutocommit" as >>>>> true, >>>>> ra.xml contains the value of "CommitBeforeAutocommit" as false. I am >>>>> using >>>>> "Oracle Thin" as the Database Type. >>>>> >>>>> I am not using any specific tranql wrapper for oracle. I am using >>>>> tranql-connector-ra-1.4.rar which I found with >>>>> repository\org\tranql\tranql-connector-ra\1.4 >>>>> >>>>> Please let me know if I am doing some thing wrong. Is there >>>>> documentation >>>>> (with sample code) for creating tranql oracle specific wrapper for >>>>> the db >>>>> pool. >>>>> >>>>> Can I rely on the admin console alone for deploying the database >>>>> pool for >>>>> oracle 10g? >>>>> >>>>> >>>>> djencks wrote: >>>>> >>>>>> >>>>>> Its difficult to do more than guess without more information on what >>>>>> you have deployed. >>>>>> >>>>>> You should be using one of the tranql oracle specific wrappers for >>>>>> your db pool. This should take care of the commit-before-autocommit >>>>>> problem caused by oracle jdbc spec non-compliance. If you aren't >>>>>> using an oracle specific wrapper you do need to set the commit before >>>>>> autocommit property to true, but you should do it in your pool >>>>>> deployment plan, not by modifying the ra.xml. >>>>>> >>>>>> At a minimum I think we'd need to know which tranql wrapper you are >>>>>> using and to see the deployment plan for it. >>>>>> >>>>>> thanks >>>>>> david jencks >>>>>> >>>>>> On Mar 12, 2009, at 6:19 AM, Hearty wrote: >>>>>> >>>>>> >>>>>>> When I have configured database pool with oracle10g and running >>>>>>> against the >>>>>>> apache geronimo v2.1, I am getting some unusual errors where as when >>>>>>> I've >>>>>>> tried with tomcat5.5 it is working smoothly. >>>>>>> Oracle driver I've used is ojdbc14-10.2.0.1.0.jar. >>>>>>> >>>>>>> The following is the error message I am getting. Also I am uploading >>>>>>> the >>>>>>> error log since the error log is a big file >>>>>>> http://www.nabble.com/file/p22476155/errorLog.txt errorLog.txt >>>>>>> I have modified ra.xml with the following entry >>>>>>> <config-property> >>>>>>> <description> >>>>>>> Flag indicating whether the Driver requires a >>>>>>> commit >>>>>>> to be performed >>>>>>> before enabling auto-commit on a Connection. >>>>>>> This >>>>>>> should be set to false for >>>>>>> compliant drivers to avoid an extraneous >>>>>>> commit to >>>>>>> the database. >>>>>>> </description> >>>>>>> >>>>>>> <config-property-name>CommitBeforeAutocommit</config-property-name> >>>>>>> >>>>>>> <config-property-type>java.lang.Boolean</config-property-type> >>>>>>> <config-property-value>true</config-property- >>>>>>> value> >>>>>>> </config-property> >>>>>>> The default value was false >>>>>>> >>>>>>> I am struggling with this issue for more than one week. >>>>>>> >>>>>>> Any help is highly appreciated. I am very new to apache geronimo. >>>>>>> Please let >>>>>>> me know if I've missed out any entries. >>>>>>> >>>>>>> -- >>>>>>> View this message in context: >>>>>>> >>>>>>> http://www.nabble.com/Issues-facing-when-connecting-with-Oracle10g-tp22476155s134p22476155.html >>>>>>> Sent from the Apache Geronimo - Users mailing list archive at >>>>>>> Nabble.com. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> -- >>>>> View this message in context: >>>>> >>>>> http://www.nabble.com/Issues-facing-when-connecting-with-Oracle10g-tp22476155s134p22491260.html >>>>> Sent from the Apache Geronimo - Users mailing list archive at >>>>> Nabble.com. >>>>> >>>>> >>>> >>>> >>>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Issues-facing-when-connecting-with-Oracle10g-tp22476155s134p22493784.html >>> Sent from the Apache Geronimo - Users mailing list archive at >>> Nabble.com. >>> >>> >> > > > -- > Ivan > > -- View this message in context: http://www.nabble.com/Issues-facing-when-connecting-with-Oracle10g-tp22476155s134p22538654.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.