Tim Haley [http://community.jboss.org/people/ymaraner] created the discussion

"MySQL XA Datasource - "No matching credentials in Subject!""

To view the discussion, visit: http://community.jboss.org/message/619728#619728

--------------------------------------------------------------
I am working with JBoss AS 6.0.0.Final and 6.1.0-SNAPSHOT-68, they both have 
the same issue:
I have a MySQL database running on the localhost at port 56838
I configured an xa-datasource.
When I test the datasource via the Admin Console, or when my application 
attemts to access the datasources, I get the following error:


 13:54:53,996 WARN  
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable 
while attempting to get a new connection: null: 
org.jboss.resource.JBossResourceException: No matching credentials in Subject!
        at 
org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnectionFactory.getConnectionProperties(BaseWrapperManagedConnectionFactory.java:506)
 [:6.0.0-Final]
        at 
org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:191)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:648)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:272)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:690)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:403)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:380)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)
 [:6.0.0-Final]
        at 
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
 [:6.0.0-Final]
        at 
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
 [:6.0.0-Final]




The Admin Console reports that a connection was obtained, but the exception 
above appears in the console output. My application is not expecting this 
exception, so it fails when it receives this exception.
My configuration is as follows:

MySQL-ds.xml: 


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE datasources
    PUBLIC -//JBoss//DTD JBOSS JCA Config 6.0//EN
    http://www.jboss.org/j2ee/dtd/jboss-ds_6_0.dtd>    
<datasources>
    <xa-datasource>
        <jndi-name>test/jdbc/XADataSource</jndi-name>
        <use-java-context>false</use-java-context>
        <track-connection-by-tx/>
        
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
        <xa-datasource-property 
name="URL">jdbc:mysql://localhost:56838/testjboss</xa-datasource-property>
        <isSameRM-override-value>false</isSameRM-override-value>
        
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
        <user-name>test</user-name>
        <password>test</password>
        <security-domain>XaTxDb</security-domain>
        <min-pool-size>1</min-pool-size>
        <max-pool-size>120</max-pool-size>
        <blocking-timeout-millis>30000</blocking-timeout-millis>
        <background-validation>false</background-validation>
        <background-validation-millis>0</background-validation-millis>
        <idle-timeout-minutes>30</idle-timeout-minutes>
        <allocation-retry>0</allocation-retry>
        <allocation-retry-wait-millis>5000</allocation-retry-wait-millis>
        <validate-on-match>true</validate-on-match>
        <no-tx-separate-pools/>
        <xa-resource-timeout>0</xa-resource-timeout>
        <track-statements/>
        <prefill>false</prefill>
        <type-mapping>MySQL</type-mapping>
    </xa-datasource>  
</datasources>



My login-config.xml file contains the following application-policy:

 <application-policy name = "XaTxDb">
   <authentication>
     <login-module 
code="org.jboss.resource.security.ConfiguredIdentityLoginModule"
                   flag="required">
 <module-option name="principal">test</module-option>
 <module-option name="userName">test</module-option>
 <module-option name="password">test</module-option>
 <module-option 
name="managedConnectionFactoryName">jboss.jca:service=XATxCM,name=test/jdbc/XADataSource</module-option>
     </login-module>
   </authentication>
 </application-policy>


If I remove the user-name and password tags from the datasource, I get the same 
exception but I also get an error message from mysql:
    Access denied for user  http://community.jboss.org/mailto:''@'localhost' 
''@'localhost' to database 'testjboss'

If restore the credentials in the datasource and remove the security-domain tag 
from the datasource and remove the corresponding application policy from 
login-config.xml, I get the same exception and the admin console reports that a 
connection was not obtained, but I don't get the mysql exception.

I can get a no-transaction datasource to work, but only if I have both 
credentials in the datasource and a valid security-domain.

Isn't the security-domain supposed to replace the credentials in the 
datasource? 
If I have credentials in the datasource I shouldn't need a security domain, 
should I?
And what does "No matching credentials in Subject!" mean?

I have been going around in circles for a couple of days now and any help would 
be greatly appreciated.
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/619728#619728]

Start a new discussion in Datasource Configuration at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2077]

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to