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); } } djencks wrote: > > 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. >> > > > -- View this message in context: http://www.nabble.com/Issues-facing-when-connecting-with-Oracle10g-tp22476155s134p22538694.html Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.