Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-30689

Unable to use latest SAP ASE 16.1 JDBC driver

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • 8.1.0.GA-CR10, 8.1.0.GA
    • JCA, JPA/Hibernate, Logging
    • False
    • Hide

      None

      Show
      None
    • False
    • Release Notes
    • Hide
      Due to an existing incompatibility of the SAP driver, please use an official jconn4 jar provided by SAP until the issue is addressed. Please consult this SAP notice [REQUIRES LOGIN] https://userapps.support.sap.com/sap/support/knowledge/en/3265948 for some more background
      Show
      Due to an existing incompatibility of the SAP driver, please use an official jconn4 jar provided by SAP until the issue is addressed. Please consult this SAP notice [REQUIRES LOGIN] https://userapps.support.sap.com/sap/support/knowledge/en/3265948 for some more background
    • Known Issue

      In short, EAP 8.1.0 (and also older 8.0.x) is unable to configure and use JDBC driver (`jconn42.jar`) bundled in SAP ASE 16.1 database.

      SAP ASE (previously Sybase ASE) 16.0 used to bundle bundle JDBC driver `jconn4.jar` (with package com.sybase.jdbc4.jdbc.*) but starting from 16 SP04 it only bundles newer `jconn42.jar` driver (with package com.sybase.jdbc42.jdbc.*) .

      EAP works ok with older `jconn4.jar` driver bundled in older SAP ASE 16.0 installations, but when trying to use the current `jconn42.jar` driver, this exception is thrown in EAP server log:

      2025-08-12 10:45:03,992 WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (ServerService Thread Pool -- 17) IJ000604: Throwable while attempting to get a new connection: null: jakarta.resource.ResourceException: IJ031084: Unable to create connection
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:532)
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:439)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1381)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:534)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:688)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:653)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:624)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:440)
      	at org.jboss.ironjacamar.impl@3.0.14.Final-redhat-00001//org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:789)
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:152)
      	at org.jboss.as.connector@8.1.0.GA-redhat-00015//org.jboss.as.connector.subsystems.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:47)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:483)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.doTheWork(JtaIsolationDelegate.java:184)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.lambda$delegateWork$3(JtaIsolationDelegate.java:91)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.doInSuspendedTransaction(JtaIsolationDelegate.java:125)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.resource.transaction.backend.jta.internal.JtaIsolationDelegate.delegateWork(JtaIsolationDelegate.java:88)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:336)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.ServiceRegistry.requireService(ServiceRegistry.java:68)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:52)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:136)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:247)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.service.ServiceRegistry.requireService(ServiceRegistry.java:68)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.internal.MetadataBuilderImpl.resolveWrapperArrayHandling(MetadataBuilderImpl.java:1024)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:629)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:139)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:164)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:278)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:199)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:35)
      	at org.hibernate@6.6.18.Final-redhat-00001//org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:102)
      	at org.hibernate.jipijapa-hibernate6@8.1.0.GA-redhat-00015//org.jboss.as.jpa.hibernate.TwoPhaseBootstrapImpl.<init>(TwoPhaseBootstrapImpl.java:27)
      	at org.hibernate.jipijapa-hibernate6@8.1.0.GA-redhat-00015//org.jboss.as.jpa.hibernate.HibernatePersistenceProviderAdaptor.getBootstrap(HibernatePersistenceProviderAdaptor.java:220)
      	at org.jboss.as.jpa@8.1.0.GA-redhat-00015//org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl.createContainerEntityManagerFactoryBuilder(PhaseOnePersistenceUnitServiceImpl.java:239)
      	at org.jboss.as.jpa@8.1.0.GA-redhat-00015//org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:110)
      	at org.jboss.as.jpa@8.1.0.GA-redhat-00015//org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1$1.run(PhaseOnePersistenceUnitServiceImpl.java:89)
      	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
      	at org.wildfly.security.elytron-base@2.6.4.Final-redhat-00001//org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:664)
      	at org.jboss.as.jpa@8.1.0.GA-redhat-00015//org.jboss.as.jpa.service.PhaseOnePersistenceUnitServiceImpl$1.run(PhaseOnePersistenceUnitServiceImpl.java:122)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
      	at java.base/java.lang.Thread.run(Thread.java:842)
      	at org.jboss.threads@2.4.0.Final-redhat-00001//org.jboss.threads.JBossThread.run(JBossThread.java:513)
      Caused by: jakarta.resource.ResourceException: IJ031102: Failed to load XA datasource: com.sybase.jdbc42.jdbc.SybXADataSource
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:663)
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXAManagedConnection(XAManagedConnectionFactory.java:516)
      	... 51 more
      Caused by: java.lang.ExceptionInInitializerError
      	at java.base/java.lang.Class.forName0(Native Method)
      	at java.base/java.lang.Class.forName(Class.java:467)
      	at org.jboss.ironjacamar.jdbcadapters@3.0.14.Final-redhat-00001//org.jboss.jca.adapters.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:648)
      	... 52 more
      Caused by: java.lang.SecurityException: setParent() disallowed
      	at org.jboss.logmanager@2.1.19.Final-redhat-00001//org.jboss.logmanager.Logger.setParent(Logger.java:361)
      	at deployment.jdbc_driver.jar//com.sybase.jdbc42.utils.LogUtil.createLoggerInstance(LogUtil.java:632)
      	at deployment.jdbc_driver.jar//com.sybase.jdbc42.jdbc.SybDataSource.<clinit>(SybDataSource.java:106)
      	... 55 more
      

      Which leads to this code https://github.com/jboss-logging/jboss-logmanager/blob/main/src/main/java/org/jboss/logmanager/Logger.java#L370-L377

              tadamski@redhat.com Tomasz Adamski
              jbliznak@redhat.com Jan Blizňák
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

                Created:
                Updated: