[jboss-user] [JCA/JBoss] - How do you set a boolean property in an XA datasource?

apill do-not-reply at jboss.com
Tue Feb 6 05:35:50 EST 2007


I'm using Jboss 5 Beta1.

I have an XA datasource to DB2 on an AS400. I need to set a property on the datasource called translate binary, to the boolean value true.

Previously the <local-tx-datasource> specified this in the connection URL. i.e.


  | <local-tx-datasource>
  |   <connection-url>jdbc:as400://mydbhost.net;translate binary=true;</connection-url>
  |   <driver-class>com.ibm.as400.access.AS400JDBCDriver</driver-class>
  |   <user-name>guest</user-name>
  |   <password>guest</password>
  | </local-tx-datasource>
  | 

I expect to set this in the XA datasource as follows.


  | <xa-datasource>
  |   <xa-datasource-class>com.ibm.as400.access.AS400JDBCXADataSource</xa-datasource-class>
  |   <xa-datasource-property name="User">guest</xa-datasource-property>
  |   <xa-datasource-property name="Password">guest</xa-datasource-property>
  |   <xa-datasource-property name="ServerName">mydbhost.net</xa-datasource-property>
  |   <xa-datasource-property name="TranslateBinary">true</xa-datasource-property>
  |   <isSameRM-override-value>false</isSameRM-override-value> 
  |   <track-connection-by-tx/>
  |   <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
  |   <metadata>
  |     <type-mapping>DB2/400</type-mapping>
  |   </metadata>
  | </xa-datasource>
  | 

When JBoss starts up I get the error...


  | org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String)))
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:162)
  |         at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:579)
  |         at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:247)
  |         at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:563)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
  |         at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:351)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:394)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:838)
  |         at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)
  |         at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:44)
  |         at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
  |         at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
  |         at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
  |         at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
  |         at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
  |         at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:237)
  |         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:589)
  |         at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
  |         at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:108)
  |         at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
  |         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:71)
  |         at org.jboss.kernel.plugins.dependency.LifecycleAction.installAction(LifecycleAction.java:147)
  |         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:96)
  |         at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
  |         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709)
  |         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:429)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:538)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:472)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:274)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:177)
  |         at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:83)
  |         at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:77)
  |         at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:141)
  |         at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:473)
  |         at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:324)
  |         at org.jboss.ejb3.deployers.EJBStage2Deployer.deploy(EJBStage2Deployer.java:48)
  |         at org.jboss.deployers.plugins.deployer.AbstractSimpleDeployer.commitDeploy(AbstractSimpleDeployer.java:52)
  |         at org.jboss.deployers.plugins.deployer.DeployerWrapper.commitDeploy(DeployerWrapper.java:145)
  |         at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:440)
  |         at org.jboss.deployers.plugins.deployment.MainDeployerImpl.process(MainDeployerImpl.java:381)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:366)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:246)
  |         at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
  |         at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:401)
  |         at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:340)
  |         at org.jboss.Main.boot(Main.java:210)
  |         at org.jboss.Main$1.run(Main.java:508)
  |         at java.lang.Thread.run(Thread.java:626)
  | Caused by: org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String))
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:289)
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:154)
  |         ... 51 more
  | Caused by: java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String)
  |         at java.lang.Class.getMethod(Class.java:1594)
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:259)
  |         ... 52 more
  | 10:29:58,417 WARN  [SettingsFactory] Could not obtain connection metadata
  | org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String))); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String))))
  |         at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:109)
  |         at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:44)
  |         at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
  |         at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
  |         at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
  |         at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
  |         at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
  |         at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:237)
  |         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:589)
  |         at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
  |         at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:108)
  |         at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
  |         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:71)
  |         at org.jboss.kernel.plugins.dependency.LifecycleAction.installAction(LifecycleAction.java:147)
  |         at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.install(KernelControllerContextAction.java:96)
  |         at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
  |         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709)
  |         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:429)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:538)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:472)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:274)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:177)
  |         at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:83)
  |         at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:77)
  |         at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:141)
  |         at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:473)
  |         at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:324)
  |         at org.jboss.ejb3.deployers.EJBStage2Deployer.deploy(EJBStage2Deployer.java:48)
  |         at org.jboss.deployers.plugins.deployer.AbstractSimpleDeployer.commitDeploy(AbstractSimpleDeployer.java:52)
  |         at org.jboss.deployers.plugins.deployer.DeployerWrapper.commitDeploy(DeployerWrapper.java:145)
  |         at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:440)
  |         at org.jboss.deployers.plugins.deployment.MainDeployerImpl.process(MainDeployerImpl.java:381)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:366)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:246)
  |         at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
  |         at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:401)
  |         at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:340)
  |         at org.jboss.Main.boot(Main.java:210)
  |         at org.jboss.Main$1.run(Main.java:508)
  |         at java.lang.Thread.run(Thread.java:626)
  | Caused by: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String)))
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:162)
  |         at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:579)
  |         at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:247)
  |         at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:563)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
  |         at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:351)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:394)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:838)
  |         at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)
  |         ... 43 more
  | Caused by: org.jboss.resource.JBossResourceException: Could not find accessor on XADataSource: ; - nested throwable: (java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String))
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:289)
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAManagedConnectionFactory.java:154)
  |         ... 51 more
  | Caused by: java.lang.NoSuchMethodException: com.ibm.as400.access.AS400JDBCXADataSource.setTranslateBinary(java.lang.String)
  |         at java.lang.Class.getMethod(Class.java:1594)
  |         at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.getXADataSource(XAManagedConnectionFactory.java:259)
  |         ... 52 more
  | 

It looks as though the xa-datasource-property tag is treating the text "true" as a string and not a boolean since it is looking for the method 

  | setTranslateBinary(String translate)
  | 

instead of 


  | setTranslateBinary(boolean translate)
  | 

Is there anyway to set this property as a boolean as otherwise I cannot use the database from JBoss with XA?

Thanks for your help.
Adrian

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4011813#4011813

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4011813



More information about the jboss-user mailing list