Topic
  • 2 replies
  • Latest Post - ‏2016-08-31T06:03:26Z by ddNils
SystemAdmin
SystemAdmin
532 Posts

Pinned topic FileMaker JDBC provider and datasource

‏2013-01-10T15:56:36Z |
Hi all,

I'm trying to access a FileMaker instance. Connection using vendor test application and from a minimal java program which uses the driver class succeeds, so FM server is not the problem.

I've created a user-defined JDBC provider using the fmjdbc.jar provided by the vendor, and setting the implementation class to com.filemaker.jdbc2.optional.PoolingDataSource. The class path is hardcoded and doesn't depend on variables.

Now I'm trying to create a datasource using this provider. Data store helper class name is set to default value ( com.ibm.websphere.rsadapter.GenericDataStoreHelper ), and specific properties ( username, password, serverName and databaseName ) are set in the datasource custom properties.

Of course, it doesn't work :) Testing the connection shows this error message:

The test connection operation failed for data source ficheroGeneral on server WebSphere_Portal at
node <nodename> with the following exception: java.sql.SQLException: java.lang.IllegalAccessError.
View JVM logs for further details.


Reading the logs doesn't shed much light on, but for completeness, here is the relevant part of the exception:

[1/10/13 15:47:38:025 CET] 0000003b MBeanHelper E Could not invoke an operation on object: WebSphere:name=DataSourceCfgHelper,process=WebSphere_Portal,platform=dynamicproxy,node=<nodename>,version=7.0.0.11,type=DataSourceCfgHelper,mbeanIdentifier=DataSourceCfgHelper,cell=portalin,spec=1.0 because of an mbean exception: java.sql.SQLException: java.lang.IllegalAccessError
[1/10/13 16:25:20:259 CET] 0000003c webapp I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0292I: Servlet Message - [isclite#isclite.war]:.action: DataSourceDetailForm was null.Creating new form bean and storing in session
[1/10/13 16:30:06:478 CET] 00000044 DSConfigurati W DSRA0174W: Warning: GenericDataStoreHelper is being used.
[1/10/13 16:30:06:497 CET] 00000044 DataSourceCon E DSRA8040I: Failed to connect to the DataSource. Encountered "": java.lang.IllegalAccessError
at com.filemaker.jdbc2.optional.PoolingDataSource.<init>(Unknown Source)
at java.lang.J9VMInternals.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1325)
at com.ibm.ws.rsadapter.DSConfigurationHelper.createDataSource(DSConfigurationHelper.java:1408)
at com.ibm.ws.rsadapter.DSConfigurationHelper.testConnectionForGUI(DSConfigurationHelper.java:3432)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:600)
at com.ibm.ws.management.DataSourceConfigHelperMBean.testConnectionToDataSource2(DataSourceConfigHelperMBean.java:549)
at com.ibm.ws.management.DataSourceConfigHelperMBean.testConnection(DataSourceConfigHelperMBean.java:477)
...


So, has anybody succesfully configured a FileMaker provider/datasource within WAS 7.0? how? :)
Thanks in advance,
  • mones
    mones
    1 Post

    Re: FileMaker JDBC provider and datasource

    ‏2013-04-16T08:22:23Z  

    Funny this question is now attributed to other user instead of me... I guess every migration has problems ;-)

  • ddNils
    ddNils
    1 Post

    Re: FileMaker JDBC provider and datasource

    ‏2016-08-31T06:03:26Z  

    Were you able to resolve this? I am having the same issue

     

    However I seem to be getting a positive test result, when working with com.filemaker.jdbc2.optional.ConnectionPool as implementation class in the jdbc provider.

     

    We have a positive test result for connection testing, but cannot implement sql statements against the data source. When we try to, we are getting a NullPointerException (which isn't helpful at all).

    This is part of the StackTrace:

    Caused by: java.lang.NullPointerException
        at com.filemaker.jdbc1.CommonJ1Statement.getMoreResults(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
        at java.lang.reflect.Method.invoke(Method.java:620)
        at com.filemaker.jdbc2.optional.PooledConnectionImpl$StatementHandler.invoke(Unknown Source)
        at com.sun.proxy.$Proxy196.getMoreResults(Unknown Source)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.closeWrapper(WSJdbcPreparedStatement.java:484)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:242)
        at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:195)
        at teamworks.sql.SQLClient.execute(SQLClient.java:219)
        at teamworks.SQLConnector$5.execute(SQLConnector.java:239)
        at teamworks.SQLConnector$5.execute(SQLConnector.java:235)
        at teamworks.sql.SQLExecutor.doExecute(SQLExecutor.java:158)
        at teamworks.sql.SQLExecutor.execute(SQLExecutor.java:102)
        at teamworks.SQLConnector.execute(SQLConnector.java:234)
        at teamworks.SQLConnector.executeFlat(SQLConnector.java:249)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
        at java.lang.reflect.Method.invoke(Method.java:620)
        at teamworks.connector.JavaReflectionConnector$1.execute(JavaReflectionConnector.java:88)
        at com.lombardisoftware.server.core.ManagedAssetClassLoaderUtil.executeWithManagedAssetClassLoader(ManagedAssetClassLoaderUtil.java:58)
        at teamworks.connector.JavaReflectionConnector.execute(JavaReflectionConnector.java:56)
        at com.lombardisoftware.component.javaconnector.worker.JavaConnectorWorker.invokeJavaMethod(JavaConnectorWorker.java:154)
        at com.lombardisoftware.component.javaconnector.worker.JavaConnectorWorker.doJob(JavaConnectorWorker.java:87)
        at com.lombardisoftware.component.common.workflow.ExecutionJob.doJob(ExecutionJob.java:472)
        ... 69 more

     

    Interestingly, we do get specific errors, when we try to get a table or column that does not exist:

    com.lombardisoftware.component.common.workflow.WorkflowProcessItemException: [FileMaker][FileMaker JDBC] FQL0007/(1:7): The column named "KundeName" does not exist in any table in the column reference's scope.

    For me this points to a problem concerning the IBM BPM side, it seems the jdbc driver is working correctly.

    Updated on 2016-08-31T13:20:53Z at 2016-08-31T13:20:53Z by ddNils