I tried using both:
com.ibm.websphere.rsadapter.WSConnectJDBCDataStoreHelper
and
com.ibm.websphere.rsadapter.ConnectJDBCDataStoreHelper
But they give this error:
[17.01.03 16:09:54:603 CET] 1711436d ConnectionFac W J2CA0122I:
Resource reference jdbc/KMSSGamma could not be located, so default
values of the following are used: [Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: false (UNSHAREABLE)
res-resolution-control: 999 (undefined)
[17.01.03 16:10:40:810 CET] 1711436d FreePool E J2CA0046E: Method
createManagedConnectionWithMCWrapper caught an exception during
creation of the ManagedConnection for resource jdbc/KMSSGamma,
throwing ResourceAllocationException. Original exception:
java.lang.ClassCastException:
com.mysql.jdbc.jdbc2.optional.LogicalHandle
at com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:964)
at com.ibm.ejs.j2c.poolmanager.FreePool.createOrWaitForConnection(FreePool.java:772)
at com.ibm.ejs.j2c.poolmanager.PoolManager.reserve(PoolManager.java:1049)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:507)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:328)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:205)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:180)
at com.tjgroup.kmss.servlets.Login.doPost(Login.java:99)
at com.tjgroup.kmss.servlets.Login.doGet(Login.java:58)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:825)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:443)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:171)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:66)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:430)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:546)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:546)
[17.01.03 16:10:41:070 CET] 1711436d ConnectionMan E J2CA0020E: The
Connection Pool Manager could not allocate a Managed Connection:
javax.resource.spi.ResourceAllocationException: Exception thrown
during creation of the ManagedConnection.
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:507)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:328)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:205)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:180)
at com.tjgroup.kmss.servlets.Login.doPost(Login.java:99)
at com.tjgroup.kmss.servlets.Login.doGet(Login.java:58)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:258)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:825)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:443)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:171)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:199)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:66)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:331)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:430)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:343)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:546)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:546)
.
IBM has implemented JDBC as J2C Resource Adapters. The way that it
works, from what I have gathered is that the DataStoreHelper classes
handles the connection pooling mechanisms. When a call to
DataSource.getConnection is called the class
com.ibm.rsadapter.jdbc.WsJdbcRsaDataSource (or something similar,
doing this off the top of my head) instantiates an instance of the
class who's name you set up in the Data Provider configuration.
Now as for MySQL, my understanding is that there is not a Helper class
as of yet. No idea if anyone is building one.
Hope this helps at least explain what is happening with WASv5
regards,
- Shane