Probleme mit JDBC JNDI Datasource

Hi

Ich habe einen Jboss eingerichtet. Seine JNDi Datasource ist eine PostgreSQL Datenbank. HSQL ist mittlerweile komplett entfernt und JBoss läuft soweit.

Nun wollte ich mal eine Webapp installieren, denn ohne macht der Jboss wenig Sinn.

Die Applikation heisst Enonic und greift auf eine JNDI Datasource zurück. Diese ist wie soll es anders sein ebenfalls eine PostgreSQL Datenbank auf dem selben Server.

Der Zugriff an sich funktioniert. Tabellen und Einträge werden beim Depoly automatisch angelegt. Jedoch bricht das dann mit der Fehlermeldung unten anstehend zusammen

23:35:49,968 INFO  [SystemHandler] Database schema does not exist. Creating schema...
23:35:59,189 INFO  [SystemHandler] Database schema created in 9221 ms
23:35:59,386 INFO  [SystemHandler] Populating database with initial values...
23:36:00,033 WARNING [JDBCExceptionReporter] SQL Error: 0, SQLState: 0A000
23:36:00,034 SEVERE [JDBCExceptionReporter] Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.
23:36:00,091 INFO  [XmlBeanDefinitionReader] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
23:36:00,191 INFO  [SQLErrorCodesFactory] SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
23:36:00,238 INFO  [DefaultListableBeanFactory] Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@49e73b28: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,loadedVerticalProperties,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,verticalProperties,com.enonic.cms.server.service.vhost.VirtualHostResolver#0,cacheFacadeManager,com.enonic.cms.core.xslt.saxon.SaxonProcessorManager#0,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,dataSource,dialectFactory,sessionFactory,hibernateTemplate,decoratorManager,connectionFactory,transactionManager,transcationTemplate,baseHandler,binaryDataHandler,contentHandler,commonHandler,categoryHandler,contentObjectHandler,groupHandler,languageHandler,logHandler,menuHandler,pageHandler,pageTemplateHandler,sectionHandler,securityHandler,supportDataHandler,unitHandler,userHandler,systemHandler,key-baseHandler,key-keyHandler,key-commonHandler,siteRepository,binaryDataDao,categoryAccessDao,categoryDao,contentAccessDao,contentBinaryDataDao,contentDao,contentHandlerDao,contentHomeDao,contentIndexDao,contentTypeDao,contentVersionDao,defaultSiteAccessDao,groupDao,languageDao,logEntryDao,menuItemAccessDao,menuItemContentDao,menuItemDao,pageDao,pageTemplateDao,portletDao,preferenceDao,relatedContentDao,rememberedLoginDao,resourceDao,resourceUsageDao,sectionContentDao,siteDao,unitDao,userDao,userStoreDao,virtualFileDao,blobStore,fileResourceService,blobStoreGarbageCollector,usedBlobStoreFinder,keyService,upgradePropertyResolver,upgradeService,dataSourceService,cmsCoreServicesSpringManagedBeansBridge,userServicesService,tightestCacheSettingsResolver,keyEngine,resolverInputXMLCreator,resolverXMLCreator,resolverInputCreator,cookieOrSessionForcedResolverValueService,sessionCachedResolverValueService,deviceClassificationService,deviceClassXsltScriptResolver,localizeService,localizationResourceBundleService,localeResolverService,localeXsltScriptResolver,adminConsoleTranslationService,adminConsoleLoginAccessResolver,sitePropertiesService,urlPathHelperManager,userServicesRedirectHelper,reindexContentToolService,timeService,org.springframework.mail.javamail.JavaMailSenderImpl#0,sendMailService,loginService,countryService,localeService,timeZoneService,captchaService,captchaRepository,logService,previewService,pluginManager,extensionManager,binaryService,calendarService,categoryService,contentService,contentIndexService,contentParserService,importService,indexService,preferenceService,menuItemService,resourceService,securityService,binaryAccessResolver,contentSecurityFilterResolver,groupAccessResolver,resourceAccessResolver,contentValidator,userParser,userStoreParser,contentStorer,importJobFactory,localClient,internalClientRenderService,internalClientContentService,com.enonic.cms.business.client.LocalClientSetter#0,synchronizeUserStoreJobFactory,userStoreConnectorConfigLoader,remoteUserStoreFactory,userStoreConnectorManager,userStoreService,memberOfResolver,userStoreAccessResolver,groupStorageService,userStorageService,createAttachmentUrclFunction,datasourceExecutorFactory,expressionFunctionsFactory,portalRequestService,livePortalTraceService,pageRequestProcessorFactory,portalAccessService,portletXsltViewTransformer,pageTemplateXsltViewTransformer,portalSystemFunctionsService,loginPagePathResolverService,siteRedirectHelper,pageRendererFactory,windowRendererFactory,datasourcesContextXmlCreator,postProcessInstructionExecutor,siteCachesService,imageCache,imageService,adminService,presentationService,abstractBaseEngine,presentationEngine,adminEngine,abstractBaseXMLBuilder,contentBaseXMLBuilder,contentArticle3XMLBuilder,contentCatalogXMLBuilder,contentDiscussionXMLBuilder,contentDocumentXMLBuilder,contentEnhancedImageXMLBuilder,contentFileXMLBuilder,contentLeadsXMLBuilder,contentNewsletterXMLBuilder,contentOrderXMLBuilder,contentPersonXMLBuilder,contentPollXMLBuilder,contentProductXMLBuilder,simpleContentXMLBuilder,contentXMLBuildersSpringManagedBeansBridge,homeService,portalFunctionsFactory,sitePathResolver,sitePathResolverForDebug,sitePathResolverForPreview,siteURLResolver,siteRedirectAndForwardHelper,siteService,urlDecodingUrlPathHelper,standardModelFactory,autoLoginService,adminAjaxService,davConfiguration,originalUrlResolver,mbeanExporter,cacheEntity,cachePage,cacheBinary,cacheXslt,mbeanServerFactory,systemProperties,siteListener,databaseInitializer]; root of factory hierarchy
23:36:00,283 INFO  [MBeanExporter] Unregistering JMX-exposed beans on shutdown
23:36:00,382 INFO  [HibernateConfigurator] Closing Hibernate SessionFactory
23:36:00,382 INFO  [SessionFactoryImpl] closing
23:36:00,383 INFO  [SessionFactoryObjectFactory] Unbinding factory from JNDI name: main
23:36:00,383 INFO  [NamingHelper] JNDI InitialContext properties:{}
23:36:00,384 INFO  [SessionFactoryObjectFactory] Unbound factory from JNDI name: main
23:36:00,387 SEVERE [ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'databaseInitializer' defined in ServletContext resource [/WEB-INF/context/initializationContext.xml]: Invocation of init method failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select userstoree0_.DOM_LKEY as DOM1_37_, userstoree0_.DOM_BISDELETED as DOM2_37_, userstoree0_.DOM_SNAME as DOM3_37_, userstoree0_.DOM_BDEFAULTSTORE as DOM4_37_, userstoree0_.DOM_SCONFIGNAME as DOM5_37_, userstoree0_.DOM_XMLDATA as DOM6_37_ from TDOMAIN userstoree0_ where userstoree0_.DOM_BISDELETED=0]; SQL state [0A000]; error code [0]; Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.; nested exception is org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.

Kurz Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented

hier noch die Konfigurationsdatei

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<datasources>
    <local-tx-datasource>
        <jndi-name>jdbc/cms</jndi-name>
        <rar-name>jboss-local-jdbc.rar</rar-name>
        <use-java-context>true</use-java-context>
        <connection-definition>javax.sql.DataSource</connection-definition>
        <jmx-invoker-name>jboss:service=invoker,type=jrmp</jmx-invoker-name>
        <min-pool-size>0</min-pool-size>
        <max-pool-size>100</max-pool-size>
        <blocking-timeout-millis>30000</blocking-timeout-millis>
        <idle-timeout-minutes>30</idle-timeout-minutes>
        <prefill>false</prefill>
        <background-validation>false</background-validation>
        <background-validation-millis>0</background-validation-millis>
        <validate-on-match>true</validate-on-match>
        <statistics-formatter>org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter</statistics-formatter>
        <isSameRM-override-value>false</isSameRM-override-value>
        <allocation-retry>0</allocation-retry>
        <allocation-retry-wait-millis>5000</allocation-retry-wait-millis>
        <security-domain xsi:type="securityMetaData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <metadata/>
        <local-transaction/>
        <user-name>enonic</user-name>
        <password>enonic</password>
        <prepared-statement-cache-size>0</prepared-statement-cache-size>
        <share-prepared-statements>false</share-prepared-statements>
        <set-tx-query-timeout>false</set-tx-query-timeout>
        <query-timeout>0</query-timeout>
        <use-try-lock>0</use-try-lock>
        <driver-class>org.postgresql.Driver</driver-class>
        <connection-url>jdbc :p ostgresql://192.168.0.60:5432/enonic</connection-url>
    </local-tx-datasource>
</datasources>

Gibt es da einen Workaround?

Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.

Ich sehe zwei Möglichkeiten:

  1. Du kannst der Anwendung irgendwie sagen, dass sie setQueryTimeout() nicht aufrufen soll.
  2. Du änderst den Source code des Treibers und nimmst einfach das werfen der Exception raus und kompilierst neu. Auch wenn dann kein QueryTimeout “funktioniert” sollte die Anwendung trotzdem laufen.

Hi

Danke für die Antwort! Als Alternative drei gibt es noch postgresql-8.2-511.jdbc4.jar

Ich hatte den Communitysupport kontaktiert die haben mir den Tip gegeben. Die wissen das und werkeln dran. Zur Zeit teste ich die OpenSource-Verson. Mommentan glaube ich nicht das mir die Software jedes Jahr 15000 € wert ist. Aber nett, kompetent und freundlich ist immerhin ein Anfang

Bleibt jetzt nur die Frage ob ich mit dem Treiber diverse features oder performance verlustig werde.

Was bitte ist der Communitysupport? Und warum einen derart veralteten Treiber nehmen?

Die haben da ein kleines Forum wo die Entwickler auch selber antworten. Auch kann man sich dort auch Betreff featurerequests melden. Ist noch nicht lange OpenSource.
Ich bin auf der Suche nach etwas wie in der Liega von Magnolia mit longterm Support. Es sollte aber noch einige Sachen zusätzlich können. Das Teil kann zwar nicht alles, aber schon viel von dem was ich brauche.

Ach Du meinst den Support Deiner Anwendung. Ich dachte irgendein Postgres support.

in der Liega von Magnolia

Was auch immer eine Liega ist…

Wovon genau sprichst du da? Von welcher Firma oder Webseite oder was auch immer?