Jump to content

Java Guru Help


tgilders
 Share

This topic is 5733 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I'm certain I've hit a limitation of the jdbc driver that comes with FileMaker 8 (SegueLink 5.4), but I'm wondering what limitation exactly I'm hitting.

I've gotten pretty far, and here is what I'm currently doing:

I'm running FileMaker 8 Server Advanced 8.0v2 with the jdbc driver installed and configured successfully.

I've downloaded WebLogic 9.1 and configured a Data Source successfully to connect to the FileMaker 8 Server.

Once this hurtle was crossed, I made a simple JSP page to pull some data from a sample database and simply display it. This test was quite crude, but established the fact that I had a working connection.

Now, I'm not a java/jsp/weblogic expert by any stretch. I downloaded Sun's Creator 2 IDE and started going through the tutorials. This IDE generated some complicated framework using JSF. I did get a lot of the tutorial examples working with my setup. Then I hit a wall.

In this tutorial (Here) 3/4 down, there is the save_action() implementation. After implementing it and attempting to test it (part 3). I got an error: java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented

I'm just wondering if anyone can take a look at the full stack trace below and determine what this code is asking the Segue driver to do that it can't.

Here is the full stack trace:

java.lang.RuntimeException: java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented

at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorRow(CachedRowSetDataProvider.java:343)

at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorIndex(CachedRowSetDataProvider.java:300)

at com.sun.data.provider.impl.CachedRowSetDataProvider.getRowKeys(CachedRowSetDataProvider.java:245)

at com.sun.data.provider.impl.CachedRowSetDataProvider.cursorFirst(CachedRowSetDataProvider.java:351)

at fm8jdbccrud.Page1.save_action(Page1.java:488)

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:585)

at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)

at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)

at javax.faces.component.UICommand.broadcast(UICommand.java:312)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)

at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3151)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)

at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)

at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)

at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)

java.sql.SQLException: [DataDirect][sequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Expression is not implemented

at com.ddtek.sequelink.ssp.Diagnostic.toSQLException(Unknown Source)

at com.ddtek.sequelink.ssp.Chain.cnvDiagnostics(Unknown Source)

at com.ddtek.sequelink.ssp.Chain.decodeDiagnostic(Unknown Source)

at com.ddtek.sequelink.ssp.Chain.decodeBody(Unknown Source)

at com.ddtek.sequelink.ssp.Chain.decode(Unknown Source)

at com.ddtek.sequelink.ssp.Chain.send(Unknown Source)

at com.ddtek.sequelink.ctxt.stmt.StatementContext.associate(Unknown Source)

at com.ddtek.jdbc.sequelink.SequeLinkImplStatement.prepare(Unknown Source)

at com.ddtek.jdbc.slbase.BaseImplStatement.prepare(Unknown Source)

at com.ddtek.jdbc.slbase.BasePreparedStatement.prepareSQL(Unknown Source)

at com.ddtek.jdbc.slbase.BaseStatement.preProcessSQL(Unknown Source)

at com.ddtek.jdbc.slbase.BasePreparedStatement.(Unknown Source)

at com.ddtek.jdbc.slbase.BaseConnection.prepareStatement(Unknown Source)

at com.ddtek.jdbc.slbase.BaseConnection.prepareStatement(Unknown Source)

at weblogic.jdbc.common.internal.ConnectionEnv.makeStatement(ConnectionEnv.java:1213)

at weblogic.jdbc.common.internal.ConnectionEnv.getCachedStatement(ConnectionEnv.java:993)

at weblogic.jdbc.common.internal.ConnectionEnv.getCachedStatement(ConnectionEnv.java:927)

at weblogic.jdbc.wrapper.Connection.prepareStatement(Connection.java:500)

at com.sun.sql.rowset.internal.CachedRowSetXReader.readData(CachedRowSetXReader.java:140)

at com.sun.sql.rowset.CachedRowSetXImpl.execute(CachedRowSetXImpl.java:950)

at com.sun.sql.rowset.CachedRowSetXImpl.execute(CachedRowSetXImpl.java:1410)

at com.sun.data.provider.impl.CachedRowSetDataProvider.checkExecute(CachedRowSetDataProvider.java:1219)

at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorRow(CachedRowSetDataProvider.java:329)

at com.sun.data.provider.impl.CachedRowSetDataProvider.setCursorIndex(CachedRowSetDataProvider.java:300)

at com.sun.data.provider.impl.CachedRowSetDataProvider.getRowKeys(CachedRowSetDataProvider.java:245)

at com.sun.data.provider.impl.CachedRowSetDataProvider.cursorFirst(CachedRowSetDataProvider.java:351)

at fm8jdbccrud.Page1.save_action(Page1.java:488)

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:585)

at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)

at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)

at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:57)

at javax.faces.component.UICommand.broadcast(UICommand.java:312)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)

at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)

at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3151)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)

at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1973)

at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1880)

at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1310)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)

And here is the code page1.java

public String save_action() {

try {

// Get the next key, using result of query on MaxTrip data provider

CachedRowSetDataProvider maxTrip = getSessionBean1().getMaxTripDataProvider();

maxTrip.refresh();

[color:red]maxTrip.cursorFirst(); // <------Line 488 where error occurred.

int newTripId = ((Long) maxTrip.getValue("MAXTRIPID")).intValue();

// Navigate through rows with data provider

if (tripDataProvider.getRowCount() > 0) {

tripDataProvider.cursorFirst();

do {

if (tripDataProvider.getValue("TripID").equals(new Integer(0))) {

tripDataProvider.setValue("TripID", new Integer(newTripId));

newTripId++;

}

} while (tripDataProvider.cursorNext());

};

tripDataProvider.commitChanges();

} catch (Exception ex) {

log("Error Description", ex);

error("Error :"+ex.getMessage());

}

return null;

}

Here is the metadata that lists the SegueLink drivers capabilities:

Connection Established

getMetaData() Succeeded.

All Procedures Are Callable: false

All Tables Are Selectable: true

Data Definition Causes Transaction Commit: false

Does Max Row Size Include Blobs: false

Catalog Separator:

Catalog Term:

// JDBC 3.0

Database Major Version: 7

// JDBC 3.0

Database Minor Version: 0

Database Product Name: FileMaker

Database Product Version: 07.00.0000 Filemaker

Default Transaction Isolation: 2

Driver Major Version: 5

Driver Minor Version: 4

Driver Name: SequeLink

Driver Version: 5.4.0034

Extra Name Characters: [email protected]#$%^&*_-+=}{;:?/><,.![]

Identifier Quote String: "

Max Binary Literal Length: 0

Max Catalog Name Length: 0

Max Char Literal Length: 0

Max Column Name Length: 100

Max Columns In Group By: 0

Max Columns In Index: 0

Max Columns In Order By: 0

Max Columns In Select: 0

Max Columns In Table: 1024

Max Connections: 0

Max Cursor Name Length: 18

Max Index Length: 100

Max Procedure Name Length: 0

Max Row Size: 200000

Max Schema Name Length: 0

Max Statement Length: 0

Max Statements: 0

Max Table Name Length: 100

Max Tables In Select: 31

Max User Name Length: 0

Numeric Functions: FLOOR,MOD,POWER,ROUND

Procedure Term:

// JDBC 3.0

ResultSet Holdability: 2

SQL Keywords:

// JDBC 3.0

SQL State Type: 1

Schema Term:

Search String Escape: ~

String Functions: CHAR,CONCAT,LCASE,LEFT,LENGTH,LTRIM,RIGHT,RTRIM,SPACE,SUBSTRING,UCASE

System Functions: IFNULL,USERNAME

Time Date Functions: CURDATE,DAYOFMONTH,DAYOFWEEK,MONTH,YEAR

URL: jdbc:datadirect:sequelink://MIFHFMTEST01:2399;MAXPOOLEDSTATEMENTS=0;NETWORKPROTOCOL=socket;LOGINTIMEOUT=0;INSENSITIVERESULTSETBUFFERSIZE=2048

User Name: Admin

Catalog At Start: false

Read Only: false

// JDBC 3.0

Locators Update Copy: true

Null + Non Null Is Null: false

Nulls Are Sorted At End: false

Nulls Are Sorted At Start: true

Nulls Are Sorted High: false

Nulls Are Sorted Low: false

Stores Lower Case Identifiers: false

Stores Lower Case Quoted Identifiers: false

Stores Mixed Case Identifiers: false

Stores Mixed Case Quoted Identifiers: false

Stores Upper Case Identifiers: true

Stores Upper Case Quoted Identifiers: false

Supports ANSI92 Entry Level SQL: true

Supports ANSI92 Full SQL: false

Supports ANSI92 Intermediate SQL: false

Supports Alter Table With Add Column: true

Supports Alter Table With Drop Column: true

Supports Catalogs In Data Manipulation: false

Supports Catalogs In Index Definitions: false

Supports Catalogs In Privilege Definitions: false

Supports Catalogs In Procedure Calls: false

Supports Catalogs In Table Definitions: false

Supports Column Aliasing: true

Supports Convert: false

Supports Core SQL Grammar: false

Supports Correlated Subqueries true

Supports Data Definition & Manipulation: false

Supports Data Manipulation Only: true

Supports Different Table Correlation Names: false

Supports Expressions In Order By: true

Supports Extended SQL Grammar: false

Supports Full Outer Joins: false

// JDBC 3.0

Supports Get Generated Keys: false

Supports Group By: true

Supports Group By Beyond Select: true

Supports Group By Unrelated: false

Supports Integrity Enhancement: false

Supports Like Escape Clause: false

Supports Limited Outer Joins: true

Supports Minimum SQL Grammar: true

Supports Mixed Case Identifiers: false

Supports Mixed Case Quoted Identifiers: true

// JDBC 3.0

Supports Multiple Open Results: true

Supports Multiple Result Sets: false

Supports Multiple Transactions: false

// JDBC 3.0

Supports Named Parameters: false

Supports Non-Nullable Columns: true

Supports Open Cursors Across Commit: false

Supports Open Cursors Across Rollback: false

Supports Open Statements Across Commit: false

Supports Open Statements Across Rollback: false

Supports Order By Unrelated: true

Supports Outer Joins: true

Supports Positioned Delete: false

Supports Positioned Update: false

// JDBC 3.0

Supports ResultSetHoldability Hold Cursors Over Commit: false

// JDBC 3.0

Supports ResultSetHoldability Close Cursors At Commit: true

// JDBC 3.0

Supports Savepoints: false

Supports Schemas In Data Manipulation: false

Supports Schemas In Index Definitions: false

Supports Schemas In Priviledge Definitions: false

Supports Schemas In Procedure Calls: false

Supports Schemas In Table Definitions: false

Supports Select For Update: false

Supports Stored Procedures: false

Supports Subqueries In Comparisons: true

Supports Subqueries In Exists: true

Supports Subqueries In Ins: true

Supports Subqueries In Quantifieds: true

Supports Table Correlation Names: true

Supports Transactions: true

Supports Union: true

Supports Union All: true

Uses Local File Per Table: false

Uses Local Files: false

// JDBC 2.0

Supports Batch Updates: true

Link to comment
Share on other sites

  • 2 weeks later...

Though I'm not sure what you are trying to achieve, Creator 2 wouldn't be what you want.

Here's the list of DB servers and JDBC drivers supported by Creator 2 (in case you have not checked yet).

http://developers.sun.com/prodtech/javatools/jscreator/reference/docs/2/Installation_ReleaseNotes.html#databaseservers

I guess it's 'scrollable result sets' which caused the error but it may be just one of the other unimplemented functions Creator 2 will require.

Hope this helps.

Link to comment
Share on other sites

This topic is 5733 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.