[jboss-user] [Datasource Configuration] - MySQL problem with multiple instances of JBOSS

Unmesh Kulkarni do-not-reply at jboss.com
Mon Jan 31 07:44:03 EST 2011

Unmesh Kulkarni [http://community.jboss.org/people/unmesh_kulkarni] created the discussion

"MySQL problem with multiple instances of JBOSS"

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

I have setup two IPs on my machine.

eth0      Link encap:Ethernet  HWaddr 00:0C:29:B3:6B:25
          inet addr:  Bcast:  Mask:
          inet6 addr: fe80::20c:29ff:feb3:6b25/64 Scope:Link
          RX packets:921323 errors:0 dropped:0 overruns:0 frame:0
          TX packets:127221 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:721968842 (688.5 MiB)  TX bytes:12898679 (12.3 MiB)

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:B3:6B:25
          inet addr:  Bcast:  Mask:

I am starting up two instances of JBOSS AS 6.0.0 Final on the same server using -b option.

/etc/jboss-as/testenv1/bin/run.sh -c testenv1 -b
/etc/jboss-as/testenv2/bin/run.sh -c testenv2 -b

I have two databases, *testenv1* & *testenv2* on MySQL Server installed on same machine.

| Database           |
| information_schema |
| mysql              |
| test               |
| testenv1           |
| testenv2           |

Also I have two dedicated users testenv1 and testenv2 for connecting those databases.

| user     | host          |
| admin    | %             |
| root     |     |
| *testenv1 | |*
| *testenv2 | |*
|          | JBOSS-SS      |
| root     | JBOSS-SS      |
|          | localhost     |
| root     | localhost     |

They have been setup such a way that testenv1 user will have access to tesnv1 database from and
testenv2 user will have access to testenv2 databse from

I have attached datasource files which I am using.

Here is a code which i have deployed on both the servers for testing JDBC connectivity


  DataSource ds = null;
  Connection con = null; 
  PreparedStatement pr = null; 
  InitialContext ic; 
  try {
  ic = new InitialContext();
  ds = (DataSource)ic.lookup( "java:/MySqlDS" );
  con = ds.getConnection(); 
  pr = con.prepareStatement("SELECT * FROM jdbctest");
  ResultSet rs = pr.executeQuery();
  while (rs.next()) {
  out.println("<br> " +rs.getString("comp_inst_status")); 
  }catch(Exception e){
  out.println("Exception thrown " +e); 
  if(con != null){
} %> 

When I access my JSP from first instance (i.e. ) it works fine but when I access it from other server it fails. It gives following exception

*Caused by: java.sql.SQLException: Access denied for user 'testenv2'@'****' (using password: YES)*
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) [:]
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) [:]
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) [:]
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931) [:]
        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031) [:]
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296) [:]
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338) [:]
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371) [:]
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163) [:]
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) [:]
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) [:]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [:1.6.0_23]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [:1.6.0_23]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [:1.6.0_23]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [:1.6.0_23]
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) [:]
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378) [:]
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) [:]

As the user testenv2 is not having access rights from ** it throws exception.

But I have bound testenv2 instance on but still it tries to access MySQL from

Any idea if I am missing anything in configuration?

Reply to this message by going to Community

Start a new discussion in Datasource Configuration at Community

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110131/bfdada95/attachment.html 

More information about the jboss-user mailing list